[ sspasic @ 01.05.2004. 00:30 ] @
Pokušavam da napravim cvs server sa pserver autentikacijom koji radi u chroot jail-u.
Chroot jail postavljam malim c programom koji postavi chroot, uid i gid,
tako da se sve izvršava pod korisnikom cvsserver i grupom cvs.

Korisnici cvs-a nisu unix korisnici vec su u CVSROOT/passwd postavljeni da rade
kao unix korisnik cvsserver.

Međutim, kada sve ovo pokrenem cvs javlja gresku da ne može da pronađe sistemskog
korisnika cvsserver i imam utisak da funkcija getpwnam ne uspeva da pronađe korisnika.
U cvs source-u je to u fajlu src/server.c u funkciji switch_to_user.
U jail-u /etc/passwd postoji a man getpwnam spominje samo ovaj fajl kao bitan.

Sve ovo sam privremeno rešio tako sto sam izmenio switch_to_user funkciju da
ne radi ništa, pošto u tom trenutku sve već radi pod tim korisnikom,
ali me zanima šta ovde moze da pravi problem funkciji getpwnam?

Imam utisak da sve ovo ima neke veze sa PAM ali ne uspeva mi da postavim
sve fajlove tako da getpwnam radi.

Sve ovo je rađeno na Fedori Core 1.
[ Gojko Vujovic @ 20.08.2004. 21:43 ] @
Steta da je ova tema ostala bez odgovora...
[ sspasic @ 21.08.2004. 00:28 ] @
Ispostavilo se da su mi u lib direktorijumu chroot-a nedostajale biblioteke: libnss_files-2.3.2.so i libnss_files.so.2 a /etc/nsswitch.conf treba da ima sledeći sadržaj:
Code:

passwd:     files
shadow:     files
group:      files
hosts:      files


Naime, libnss_* biblioteke se učitavaju dinamički čak i kada je program linkovan statički.

Ovaj recept je pomogao kod cvs programa kompajliranog sa dinamičkim linkovanjem,
naravno pošto se dodaju i sve biblioteke koje prijavi ldd.

Statički linkovan cvs izgleda da zahteva još neku dinamičku biblioteku (!), ali nisam uspeo da pronadjem koju.
[ B o j a n @ 21.08.2004. 17:19 ] @
???
Jesi li ti proverio to?
ldd ?
u nsswitch.conf postavi sve na "files"

postavio sam u jednoj situaciji cvsd sa pserver auth na netbsd 1.6_STABLE prateci guide na netu i nikakvih problema nisam imao.