High, high ... * saimo@bluemail.ch <saimo@bluemail.ch> 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: gerhard@ws01:/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
Attachment:
pgpKjt2i1qD3t.pgp
Description: PGP signature