High, high ... * [EMAIL PROTECTED] <[EMAIL PROTECTED]> schrieb am [30.06.03 01:10]:
> >Also immer die Mountquelle so wie sie auch in den exports am Server
> >festgelegt ist.
>
> Autsch, habe ich die Doku doch nicht richtig gelesen ...
>
> mounten ging so, allerdings bekam ich, als ich das Verzeichnis oeffnen wollte,
> wieder ein :Permission denied. Mittlerweilen geht aber gar nichts mehr.
Dann solltest du deinem Rechner Beine machen ;-)
Spa� beiseite.
Grunds�tzlich: der nfs-server erlaubt es bestimmten *Rechnern*
Verzeichnisse des Servers zu mounten. Diese Verzeichnisse und die
*Rechner* bzw Netzwerke werden am Server durch die /etc/exports
festgelegt, plus Optionen die dann das Arbeiten mit diesen
Verzeichnissen bestimmen.
Nach dem Mounten greift dann die Benutzerverwaltung. D.h. der User
vom Client mu� *auf* dem Server die Rechte haben, um bestimmte
Datei-Aktionen ausf�hren zu k�nnen.
Bei Unixen sind Namen Schall und Rauch, letztendlich entscheidend
sind die User-Id(uid) und die Group-Id(gid) auf dem jeweiligen System. Das
setzt f�r die Berechtigungen also (ganz wichtig) voraus, das die uid
und die gid f�r den jeweiligen Benutzer sowohl auf dem Server wie
auch den Clients die gleichen sind.
Gesichert ist das in der Regel nur bei root (uid 0, gid 0). Und root
genie�t bei nfs eine Sonderbehandlung. Per default verliert der root
vom Client in den vom Server gemounteten Verzeichnissen seine
root-Rechte, darf also nicht alles sehen/schreiben.
> Ich wollte von einem zweiten Client auf den Server zugreiffen und habe die
> Berechtigungen und /etc/exports entsprechend geaendert. Nach einem exportfs
> -ra ist jedoch einfach nichts passiert. Die neuen Daten wurden nicht in
> /var/lib/nfs/xtab uebernommen.
exportfs -rav gibt mehr Informationen.
> Auch nach einem Loeschen und einem Neustart
> tauchten die alten Einstellungen wieder auf. Schliesslich habe ich noch
> einen Eintrag in /var/lib/nfs/rmtab gefunden. Darauf habe ich die Files
> unter /var/lib/nfs/ geloescht (rmtab, etab, xtab, state) und neu erstellt
> (touch, chmod 644).
644 f�r alle ist falsch.
Diese Dateien/Dirs sollten so aussehen:
[EMAIL PROTECTED]:/var/lib/nfs$ ls -l
insgesamt 20
-rw-r--r-- 1 root root 149 2003-06-30 19:41 etab
-rw-r--r-- 1 root root 87 2003-05-17 13:42 rmtab
drwxr-xr-x 2 root root 4096 2003-03-23 23:55 sm
drwxr-xr-x 2 root root 4096 2003-03-23 23:55 sm.bak
-rw------- 1 root root 4 2003-06-30 19:41 state
-rw-r--r-- 1 root root 0 2003-06-30 19:41 xtab
> Leider habe ich vergessen, vor dieser Aktion den NFS-Server
> zu stoppen. Jedenfall kriege ich jetzt bei einem Mount-Versuch auf den zweiten
> Client den folgenden Fehler:
>
> mount: RPC - Fehler des Portmappers - RPC : kann nicht empfangen
>
> Der zweite Client ist in /etc/hosts.allow eingetragen. Die Files /var/lib/nfs/xtab
> und /proc/fs/nfs/exports bleiben nach einem exportfs -ra weiter leer. Der
> Befehl exportfs gibt die shares korrekt an. Was habe ich mit dieser Aktion
> gekillt? Wie wuerde man in einem solchen Fall korrekt vorgehen?
>
Also mach mal folgendes (ich gehe davon aus das du am Server
schalten und walten kannst wie du willst ohne jemand zu st�ren):
1. /etc/init.d/nfs-kernel-server stop
2. /etc/init.d/portmap stop
3. Datein u. Dirs aus /var/lib/nfs wieder wie oben in Form bringen
So. Jetzt zu deinen exports. In deinem ersten Posting war dein
export:
/home/user/data/test client(ro,all_squash,anonuid=1000,anongid=1000)
Du willst dieses Verzeichniss also
-schreibgesch�tzt (ro),
-anonym (uid/gid als nobody) (all_squash),
-und dieser nobody soll auf dem Server der user 1000 / gid 1000 sein
dem Rechner client zum mounten geben.
Auf dem Server mu� dann das Verzeichniss die Rechte
drwxr-x--- 1 1000 1000
oder
drwxrwx--- 1 root 1000
haben. Weil du ja explizit auf diese id mappen willst.
Alle SubDirs und Files m�ssen lat�rnich auch f�r 1000/1000 lesbar
sein.
/etc/hosts.allow ist IMHO f�r nfs nicht relevant.
auch mit exportfs w�rde ich mich erstmal nicht rumschlagen. Nach
�nderungenen an den exports ein beherztes stop/start des
nfs-kernel-servers langt.
Jetzt 4. /etc/init.d/portmap start
5. /etc/init.d/nfs-kernel-server start
Jetzt auf dem Client mounten.
Jeder User und root vom Client sollte jetzt lesend auf den mount
zugreifen k�nnen. Schreiben verbietest du ja.
Falls das nicht funktionieren sollte:
bitte mal folgende Infos zeigen:
ls -la /home/user/data/test
exportfs -v
Auch kannst du ja testweise mal den share offenmachen.
in die /etc/exports:
/home/user/data/test 192.168.0.0/255.255.255.0(rw,no_root_squash)
Jeder client aus dem Subnet sollte mounten k�nnen.
Root sollte nach dem mounten root alles d�rfen.
Ein normaler Userr, wenn uid/gid auf client und server
�bereinstimmen, kann das tun, was er auch auf dem Server tun k�nnte.
> Merci und Gruss
> Simon
Gru�
Gerhard
pgp00000.pgp
Description: PGP signature

