NFS Rechtevergabe auf gemounteten Verzeichnissen klappt nich

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
mikel65
Beiträge: 260
Registriert: 08.01.2005 15:23:09

NFS Rechtevergabe auf gemounteten Verzeichnissen klappt nich

Beitrag von mikel65 » 13.11.2007 09:25:42

Habe auf einem Etch Server den nfs-kernel-server und portmap installiert und möchte im Familiennetzwerk Verzeichnisse freigeben. Für die Rechtezuordnung habe ich die Gruppen angelegt, die User den Gruppen zugeordnet und mit chown die Gruppen den exportierten Verzeichnissen zugeordnet. Die uid und gid sind für alle Gruppen und User auf dem Server und den Clients (Debian Sid) identisch. Die Datei- und Verzeichnisrechte sind mit chmod 775 und 770 gesetzt. Um Fehlerquellen auszuschließen, habe ich in hosts.allow alles erlaubt und in hosts.deny nichts verboten. Ich habe das Problem, dass alle Verzeichnisse mit den Rechten 775 nicht beschreibbar sind.
exports:
---------------------------------------------------------------------------------------------------------------
/home 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
/samba_public/var/tmp 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
/samba_public/md1/dos 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check,no_root_squash)
/samba_public/md1/texte 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
/samba_public/md1/dwg 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
/samba_public/md1/media 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
/samba_public/md1/mp3 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
/samba_public/md1/fotos 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
/samba_public/sam 192.168.50.0/255.255.255.0(async,rw,nohide,subtree_check)
---------------------------------------------------------------------------------------------------------------
Die uid und gid für den User sind auf dem Server und Client gleich:
---------------------------------------------------------------------------------------------------------------
uid=1110(musicman) gid=1110(musicman) Gruppen=1110(musicman),201(winsec),202(winpriv),203(winpub),204(winmusic),205(windos)
---------------------------------------------------------------------------------------------------------------
Ein ls -l der gemounteten Verzeichnisse auf dem Server sieht so aus:
---------------------------------------------------------------------------------------------------------------
drwxrwxr-x 19 root windos 4096 2007-10-22 22:56 dos
drwxrwx--- 11 root winpub 4096 2007-11-13 08:45 dwg
drwxrwx--- 31 root winpriv 4096 2007-11-13 08:55 fotos
drwxrwx--- 5 root winpub 4096 2007-11-13 08:56 media
drwxrwxr-x 36 root winmusic 4096 2007-11-11 14:28 mp3
drwxrwx--- 23 mpiroth mpiroth 4096 2007-10-02 22:03 sam
drwxrwx--- 23 root winpub 4096 2007-11-11 14:32 texte
---------------------------------------------------------------------------------------------------------------
Ich blicke nicht mehr durch, habe schon Google leergesaugt und alle Howtos verschlungen, aber ich bekomme die Rechtegeschichte mit NFS nicht hin. Wenn ich mich mit den Useraccounts lokal auf dem Server einlogge, klappt alles prächtig: Lesen, Schreiben und Freigabe. Und auf Samba will ich im Linux-Netzwerk nicht ausweichen, das hatte ich testweise in 10 Minuten richtig konfiguriert ;-(. Wo steckt mein Denkfehler, was muss ich ändern damit die Verzeichnisfreigabe von gemounteten Laufwerken funktioniert?
Im Voraus vielen Dank für alle Tipps.

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 13.11.2007 10:27:26

Es koennte zB sein dass du zu dem Zeitpunkt zu dem du versuchtst auf das Share zuzugreifen das fuer die Gruppe winpub beschreibbar ist mit deiner Gruppe gid=1110(musicman) unterwegs bist.

versuch also mal den Befehl newgrp

Code: Alles auswählen

newgrp winpub

und dann einen Schreibzugriff auf dwg

mikel65
Beiträge: 260
Registriert: 08.01.2005 15:23:09

Beitrag von mikel65 » 13.11.2007 12:35:40

Vielen Dank für die Antwort. Grundsätzlich klappt es mit newgrp. Meine Vorgehensweise: In einer Shell als User musicman rufe ich "newgrp - winmusic" auf. Innerhalb der Shell kann ich dann schreibend auf die entsprechende Freigabe zugreifen, soweit super. Allerdings klappt das nicht im Konqueror und auch nur nach Aufruf des Befehls. Was mich dabei auch wundert ist, dass der User musicman schon Mitglied bei der Group winmusic ist, warum klappt es mit dem Schreibzugriff erst nachdem der User explizit der Gruppe winmusic mit newgrp zugeordnet wird? Wie kann ich denn erreichen, dass musicman mit allen Gruppennummern "unterwegs" ist, für die er in groups eingetragen ist?

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 13.11.2007 13:28:43

mikel65 hat geschrieben: Wie kann ich denn erreichen, dass musicman mit allen Gruppennummern "unterwegs" ist, für die er in groups eingetragen ist?
Die Standartgruppe in der sich ein user nach dem login befindet kannst du mit usermod einstellen.

Code: Alles auswählen

usermod -g <gruppenname> <username>

mikel65
Beiträge: 260
Registriert: 08.01.2005 15:23:09

Beitrag von mikel65 » 13.11.2007 14:39:15

Habe ich probiert, leider löst es mein Problem nicht. Beispiel: Ich habe dem User musicman mit dem Befehl "usermod -g windos musicman" die Group windos als primäre Gruppe zugeteilt. Der User musicman ist allerdings auch in der Group winmusic und hat dort auch die gleichen Rechte entsprechend den Einträgen in der Datei groups, sollte als entsprechend dem Beispiel in der Freigabe "mp3" auch Schreiben dürfen. Obwohl nun in der Freigabe "dos" alles klappt, kann er in der Freigabe "mp3" immer noch nicht lesen. Also müsste ich dem User "theoretisch gesehen" mehrere "initial login groups" mitgeben können. Und ich verstehe nicht, warum die Rechte, die ich in groups definiert habe, nicht vom System umgesetzt werden. In den Freigaben mit 770, wo also die "Others" gar nichts machen dürfen, kann der User musicman Lesen, Schreiben und Verzeichnisse wechseln, er wird also offensichtlich als Mitglied der Group vom System erkannt. In Freigaben mit 775, wo die "Others" nur lesen und Verzeichnis wechseln können, kann er trotz Mitgliedschaft in der entsprechenden Group nur Lesen, nicht jedoch Schreiben. Er wird also vom System behandelt wie ein "Others".
Oder mache ich da einen Denkfehler bzw. fehlt mir eine wichtige Information bzgl. Definition von Gruppen unter NFS?

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 13.11.2007 17:52:57

Ich habe jetzt einen kleine Vorfuehrung gemacht....

Code: Alles auswählen

ca@m:/tmp/grptst$ id
uid=1000(ca) gid=1000(ca) groups=1001(mp3),1002(txt)
ca@m:/tmp/grptst$ ls -lR
.:
total 8.0K
drwxrwx--- 2 root mp3 4.0K 2007-11-13 17:29 mp3
drwxrwx--- 2 root txt 4.0K 2007-11-13 17:34 txt

./mp3:
total 0

./txt:
total 0
ca@m:/tmp/grptst$ > mp3/u
ca@m:/tmp/grptst$ > txt/p
ca@m:/tmp/grptst$ ls -lR
.:
total 8.0K
drwxrwx--- 2 root mp3 4.0K 2007-11-13 17:35 mp3
drwxrwx--- 2 root txt 4.0K 2007-11-13 17:35 txt

./mp3:
total 0
-rw-r--r-- 1 ca ca 0 2007-11-13 17:35 u

./txt:
total 0
-rw-r--r-- 1 ca ca 0 2007-11-13 17:35 p
Durch diese Vorfuehrung ist mir bewusst geworden wo vielleicht dein Problem liegt. Wenn du sagst dass du keine Schreibrechte hast, was genau hast du versucht
a) neue Datei angelegt
b) bestehende Datei geloescht
c) bestehende Datei editiert

Wenn a und b funktionieren c aber nicht dann hast du die Rechte auf dem Ordner korrekt, die Dateien im Ordner gehoeren aber nicht der gewollten Gruppe an. Dateien werden immer mit der primaeren Gruppe angelegt. ZB koennen die im konkreten Fall angelegten Dateien mp3/u und txt/p nicht von Gruppenmitgliedern der txt und mp3 Gruppen veraendert werden. Wieso? Weil diese Files nicht dieser Gruppe gehoeren. Sie duerfen aber von Gruppenmitgliedern geloescht werden.
Falls dies dein Problem ist so wird die das GUID Bit am Ordner helfen.

Wenn das Problem damit noch nicht beseitigt ist mache bitte ein konkretes Beispiel mit id und ls -l output und paste es in code Tags oder auf nopaste.df.de.

C_A

PS: Bitte formatiere deinen Text etwas, eine lange "Wurst" ist sehr anstrengend zu lesen.

mikel65
Beiträge: 260
Registriert: 08.01.2005 15:23:09

Beitrag von mikel65 » 14.11.2007 09:09:27

Vielen Dank für Deine Geduld ;-) Habe Deine Vorführung nachvollzogen, bei meiner "Problemfreigabe" komme ich zu folgendem Ergebnis:

Code: Alles auswählen

musicman@den-ws155:/media$ id
uid=1110(musicman) gid=1110(musicman) Gruppen=20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),
44(video),46(plugdev),100(users),101(fuse),108(vdr),110(netdev),113(powerdev),
201(winsec),202(winpriv),203(winpub),204(winmusic),205(windos),1110(musicman)

musicman@den-ws155:/media$ ls -l
drwxrwxr-x 36 root    winmusic 4096 2007-11-13 11:01 mp3
Ein kurzes Beispiel aus dem Unterverzeichnis von /media/mp3/

Code: Alles auswählen

/media/mp3/0-9/50 Cent:
insgesamt 4
drwxrwxr-x 2 root winmusic 4096 2006-01-23 15:51 2Hot4U - Get Rich Or Die Tryin
Was ich nicht nachvollziehen konnte, sind Deine Angaben zum Unterverzeichnis /tmp, bei mir sieht das so aus:

Code: Alles auswählen

musicman@den-ws155:/tmp$ ls -lR
.:
insgesamt 32
drwx------ 2 musicman musicman 4096 2007-11-14 08:50 flashgot.2577610.default
drwx------ 3 musicman musicman 4096 2007-11-14 08:50 gconfd-musicman
drwx------ 2 musicman musicman 4096 2007-11-14 08:51 kde-musicman
drwx------ 2 musicman musicman 4096 2007-11-14 08:36 ksocket-musicman
drwx------ 2 musicman musicman 4096 2007-11-14 08:50 orbit-musicman
drwx------ 2 vdr      vdr      4096 2007-11-14 08:35 radio.wmFSBc
drwx------ 2 musicman musicman 4096 2007-11-14 08:35 ssh-uMXGHc3755
-rw------- 1 root     root       53 2007-11-14 08:34 vdr-err.CC3454

./flashgot.2577610.default:
insgesamt 8
-rwx------ 1 musicman musicman 587 2007-11-14 08:50 flashgot.fgt
-rw-r--r-- 1 musicman musicman 103 2007-11-14 08:50 flashgot.sh.test

./gconfd-musicman:
insgesamt 4
drwx------ 2 musicman musicman 4096 2007-11-14 08:50 lock

./gconfd-musicman/lock:
insgesamt 4
-rwx------ 1 musicman musicman 617 2007-11-14 08:50 ior

./kde-musicman:
insgesamt 16
-rw-r--r-- 1 musicman musicman 11940 2007-11-14 08:35 de..xkm
-rw------- 1 musicman musicman   194 2007-11-14 08:36 konqueror-crash-EpSUcc.log
lrwxrwxrwx 1 musicman musicman    34 2007-11-14 08:35 ksycoca -> /var/tmp/kdecache-musicman/ksycoca

./ksocket-musicman:
insgesamt 4
srw------- 1 musicman musicman  0 2007-11-14 08:35 kdeinit__0
srw------- 1 musicman musicman  0 2007-11-14 08:35 kdeinit-:0
srwxr-xr-x 1 musicman musicman  0 2007-11-14 08:35 klauncherx4ijpb.slave-socket
-rw-r--r-- 1 musicman musicman 41 2007-11-14 08:35 KSMserver__0

./orbit-musicman:
insgesamt 0
srwxr-xr-x 1 musicman musicman 0 2007-11-14 08:50 linc-f1d-0-27989c2dec4a1
srwxr-xr-x 1 musicman musicman 0 2007-11-14 08:50 linc-f1d-0-6e457bb169936
srwxr-xr-x 1 musicman musicman 0 2007-11-14 08:50 linc-f2b-0-34a6d20e2ede
ls: ./radio.wmFSBc: Keine Berechtigung

./ssh-uMXGHc3755:
insgesamt 0
srw------- 1 musicman musicman 0 2007-11-14 08:35 agent.3755
Datei oder Verzeichnis anlegen klappt nicht, löschen oder bearbeiten einer bestehenden Datei ebenfalls nicht:

Code: Alles auswählen

musicman@den-ws155:/media/mp3$ mkdir test
mkdir: kann Verzeichnis „test“ nicht anlegen: Keine Berechtigung
musicman@den-ws155:/media/mp3$ touch test.conf
touch: kann „test.conf“ nicht berühren: Keine Berechtigung
Kannst Du mit diesen Informationen etwas anfangen?
Ich verstehe nicht wo das Problem ist, es ist gegen meine Logik. Das einzige was ich mir denken könnte, dass für NFS-Freigaben andere Gruppen angelegt werden müssen als nur in der Datei groups. Gerade da klemmt es scheinbar, da der User musicman offensichtlich nicht die Rechte hat, die ihm in groups zugeteilt wurden und die per id auch bestätigt werden.
Nochmals vielen Dank für Deine Hilfe!

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 14.11.2007 13:23:05

mikel65 hat geschrieben:Was ich nicht nachvollziehen konnte, sind Deine Angaben zum Unterverzeichnis /tmp, bei mir sieht das so aus:
/tmp hat damit ueberhaupt nichts zu tun, dort waren nur meine Testordner (/tmp/grptst/mp3, /tmp/grptst/txt)

Versuchst du das jetzt lokal auf der Maschine oder ist das schon per nfs gemountet? (zuerst lokal das "Problem" loesen)

output von:

Code: Alles auswählen

ls -lnd /media/mp3
touch /media/mp3/blub-bbb
(als user: musicman)

in einer chat session oder "screen -x" waere das Problem evt. leichter behoben

mikel65
Beiträge: 260
Registriert: 08.01.2005 15:23:09

Beitrag von mikel65 » 14.11.2007 15:20:38

Das ist ja das verrückte, lokal auf dem Server klappt es einwandfrei, das hatte ich zuerst getestet, aber auf den Clients nicht. Es klappt lediglich auf den Clients, wenn ich wie von Dir beschrieben mit newgrp temporär dem User eine andere primäre Gruppe zuweise. Das deutet doch darauf hin, dass die Gruppenmitgliedschaft auf dem Client aus irgend welchen Gründen nicht funktioniert. Das verstehe ich aber auch nicht, da id auf dem Server und auf dem Client für den User genau das gleiche Ergebnis ausgibt.
Ein Vergleich des Verzeichniszugriffes lokal auf dem Server und auf dem Client sieht so aus:

User musicman auf dem Server, alles klappt wie es soll:

Code: Alles auswählen

musicman@den-serv01:~$ ls -lnd /samba_public/md1/mp3
drwxrwxr-x 36 0 204 4096 2007-11-13 11:01 /samba_public/md1/mp3
musicman@den-serv01:~$ touch /samba_public/md1/mp3/blabla
musicman@den-serv01:~$
User musicman auf dem Client, Schreibzugriffe werden abgewiesen, er wird wie ein "other" behandelt, obwohl er Mitglied der Group "winmusic" ist:

Code: Alles auswählen

musicman@den-ws155:/media$ ls -lnd /media/mp3
drwxrwxr-x 36 0 204 4096 2007-11-13 11:01 /media/mp3
musicman@den-ws155:/media$ touch /media/mp3/blabla
touch: kann „/media/mp3/blabla“ nicht berühren: Keine Berechtigung
musicman@den-ws155:/media$
Die Rechte auf dem Server und auf dem Client sind ebenfalls gleich, nachfolgend die Ausgabe vom Client:

Code: Alles auswählen

musicman@den-ws155:/media$ ls -l
drwxrwxr-x 36 root    winmusic 4096 2007-11-14 15:10 mp3
Und die id von User winmusic:

Code: Alles auswählen

musicman@den-ws155:/media$ id musicman
uid=1110(musicman) gid=1110(musicman) Gruppen=1110(musicman),20(dialout),24(cdrom),25(floppy),27(sudo),
29(audio),30(dip),44(video),46(plugdev),100(users),101(fuse),108(vdr),
110(netdev),113(powerdev),201(winsec),202(winpriv),203(winpub),
204(winmusic),205(windos)
Gibt es ein Debugger für nfs wo man genau beobachten kann, was Client und Server so miteinander austauschen? Oder hast Du sonst irgend eine Idee?

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 14.11.2007 15:36:21

ok wenn es auf dem Server direkt funktioniert lass uns zu NFS spezifischeren Sachen bzw. zum Client gehen...

a) wie mountest du es
b) ist der NFS Share rw oder ro freigegeben (gegen ro spricht aber bereits dass es nach newgrp funktioniert)
c) "mount" und showmount Richtung Server output am client


..langsam wirds eng :wink:

mikel65
Beiträge: 260
Registriert: 08.01.2005 15:23:09

Beitrag von mikel65 » 14.11.2007 15:48:43

Die Ausgaben sehen für mich normal aus.
showmount auf dem Server:

Code: Alles auswählen

192.168.50.0/255.255.255.0:/samba_public/md1/mp3
mount auf dem Client:

Code: Alles auswählen

root@den-ws155:~# mount -l -t nfs
192.168.50.1:/samba_public/md1/mp3 on /media/mp3 type nfs (rw,rsize=8192,wsize=8192,soft,intr,addr=192.168.50.1)
?????

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 15.11.2007 18:06:29

momentan faellt mir mal nichts mehr ein...
Was ich aber noch testen wuerde: Anstatt direkt /samba_public/md1/mp3 zu mounten mal das Verzeichnis drueber zu mounten also /samba_public/md1
Oft ist es so dass der direkte mountpoint root gehoert...

viel Glueck
C_A

mikel65
Beiträge: 260
Registriert: 08.01.2005 15:23:09

Gelöst: NFS Rechtevergabe auf gemounteten Verzeichnissen kla

Beitrag von mikel65 » 18.11.2007 20:23:56

Hallo C_A,
nach weiteren unendlichen Versuchen habe ich den Fehler nun hoffentlich gefunden ;-) Auf dem Server habe ich die Rechte immer mit "chmod 770" gesetzt. Das ist aber offensichtlich falsch, wenn ich die Rechte mit "chmod 0770" setzte, klappt alles so wie es soll. Ich habe testweise ein Etch-System aufgesetzt, damit hat es dann auch mit der alten Rechtevergabe einwandfrei funktioniert. Verrückt, dass keine eindeutige Fehlermeldung ausgegeben wurde und nichts im Log stand, weder beim Client noch beim Server, so dass man hätte zielgerichtet suchen können.
Auf jeden Fall nochmals vielen Dank für Deine unermüdliche Hilfe und die vielen Tipps!

Antworten