PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NFS - immer als nobody schreiben



wurf
20.07.03, 20:31
Hallo!

Ich habe einen Dateiserver mit Samba für die Windows- und NFS für die Linuxclients. Außer den Homeverzeichnisse der User ist noch ein gemeinsames Verzeichnis freigegeben. In diesem Verzeichnis soll jeder schreiben können und auch Dateien, die ein anderer geschrieben hat, löschen können.

Das alles funktioniert schon mal mit Samba, jedoch nicht mit NFS. Schreibe ich über NFS in das allgemeine Verzeichnis dann kann ein anderer Benutzer, der von Windows über Samba zugreift die von mir geschriebene Datei nicht löschen (soll er aber können).

Das Verzeichnis ist unter Samba so freigegeben (Auszug aus smb.conf):

[DATEN]
comment = Daten
path = /home/daten/
public = yes
only guest = yes
writable = yes
printable = no


Und das selbe Verzeichnis ist mit NFS so freigegeben (exports):

/home/daten pcmichi(rw)


Wenn jetzt ein Samba-Nutzer als Gast (der ja Schreibrechte hat) eine Datei schreibt, gehört die Datei nobody und der Gruppe nobody, jeder der Samba benutzt kann sie also wieder löschen.

Wenn ich jetzt aber über NFS eine Datei schreibe gehört sie mir (michi) und auch der Gruppe michi. Wie kann ich das ändern, dass meine Dateien dann auch vom User nobody sind?


Oder haltet ihr es für gescheiter ich greife auch vom Linux-PC über Samba zu? Welchen Eintrag muss ich dann in die /etc/fstab setzen, damit er mir das Daten-Verzeichnis vom Server mountet?


Danke für eure Hilfe,

Michi

HangLoose
20.07.03, 20:42
wie sehen denn die rechte vom verz. /home/daten aus?

wurf
20.07.03, 20:47
/home/daten:

drwxrwxrwt 9 nobody nobody 4096 Jul 20 21:05 daten

der inhalt:

drwxrwxrwt 4 nobody nobody 4096 Jul 20 10:54 Filme
drwxrwxrwt 97 nobody nobody 4096 Jul 20 10:54 Musik
drwxrwxrwt 2 nobody nobody 4096 Jul 20 10:54 Musikvideos
drwxrwxrwx 4 nobody nobody 4096 Jul 20 17:52 Programme
drwxr-xr-x 2 nobody nobody 4096 Jul 20 18:39 Regenerationsabend
drwxrwxr-x 2 michi michi 4096 Jul 20 18:23 unbenannter Ordner




Michi

HangLoose
20.07.03, 20:58
hast du das sticky bit beim verzeichnis selbst gesetzt?

drwxrwxrwt 9 nobody nobody 4096 Jul 20 21:05 daten

das sorgt nämlich dafür, das nur der eigentümer/ersteller der datei diese auch löschen kann. ein chmod 777 auf das verz. sollte die rechte entsprechend ändern.


Gruß HL

jean_luc_picard
21.07.03, 05:13
http://www.linuxforen.de/forums/showthread.php?threadid=89766

wurf
21.07.03, 18:45
Hallo!

Danke für eure Hilfe!

@Hangloose: Stimmt das Sticky Bit war falsch, ich habs gesetzt weil ich geglaubt hab, dass dadurch die alle Objekte im Verzeichnis nur die Rechte bekommen können wie das Verzeichnis selbst, aber das war ja ein Irrtum -> habs wieder weggegeben


@jean_luc_picard: Danke, ich habs zwar jetzt nicht wie ichs wollte (wollte ja eigentlich das NFS seine Sachen als nobody schreibt) aber es ist mir so genauso recht. Habe nämlich aus deinem Link

create mask = 0777
force create mode = 0777
directory mask = 777
force directory mode = 777

übernommen und in smb.conf eingefügt, jetzt werden einfach alle dateien auch für other freigegeben und darunter ist ja auch michi, der über nfs zugreift und auch sachen löschen will die nobody (=samba-typ) geschrieben hat.


Langer Rede kurzer Sinn: create mask = 0770
| force create mode = 0660
| directory mask = 770
| force directory mode = 770

Langer Red kurzer Sinn: Vielen Dank, es geht jetzt :)

Michi

jean_luc_picard
21.07.03, 18:54
bei nfs müsste das dann so gehen:

/export (rw, all_squash, uid=nobody,gid=nobody)


wobei du glaube ich die nummern angeben musst für gid und uid... wobei, wenn ich mich nicht irre leitet squash standardmässig zu nobody weiter...

... ich will mich ja nicht einmischen ;) , aber dein rechtekonzept (wenn man das überhaupt so nennen kann :D) ist alles andere als sicher... ich würde mir an deiner stelle lieber nochmal überlegen, was ich brauche und wie ich es realisiere ;) ...

wurf
21.07.03, 21:13
Also och bin druafgekommen es geht doch nicht, denn wenn ich mit meiner vorherigen Konfiguration als michi über NFS Dateien/Ordner schreibe, können andere SMB-User ihn nicht löschen, wie kann ich das machen? (Außer jedesmal die Berechtigungen zu ändern)

Unc wenn ich es so mache wie du dann kann ich nur einen ordner machen auf daten, aber in den ordner kann ich nichts mehr reinschreiben, aber der ordner ist trotzdem von nobody. (Rechte des Ordners: 775)

Ja die Sicherhheit kann ich vergessen aber wie kann ich das am besten realisieren:

Ein Fileserver für drei Benutzer (gigi, michi, uschi), soll den Benutzern jeweils ein eigenes Laufwerk und ein zusätzliches gemeinsames Laufwerk anbieten. gigi und uschi sind win-user und brauchen samba, michi ist win, lin, und mac user und braucht daher auch samba, aber auch nfs (oder wie mounte ich mit der fstab das Datenverzeichnis über smb? smb.conf -> oben)
Die User können am eigenen Laufwerk alles auf Laufwerke von anderen können sie nicht mal lesen, im gemeinsamen Verzeichnis dürfen sie alles (Daten schreiben, löschen, anderer User ihre Daten überschreiben und löschen)

Das alles funktioniert zur Zeit nur über Samba, es wäre daher naheliegend auch unter Linux Samba zu verwenden, doch wie mounte ich mit der /etc/fstab das Netzlaufwerk //server/daten, schreiben soll drauf auch gehen.

Und hier nochmal der Teil der smb.conf mit dem //server/daten freigegeben ist:

[DATEN]
comment = Daten
path = /home/daten/
public = yes
only guest = yes
writable = yes
printable = no
create mask = 0777
force create mode = 0777
directory mask = 777


Bitte helft mir!

Michi

jean_luc_picard
21.07.03, 21:51
Original geschrieben von wurf
Das alles funktioniert zur Zeit nur über Samba, es wäre daher naheliegend auch unter Linux Samba zu verwenden, doch wie mounte ich mit der /etc/fstab das Netzlaufwerk //server/daten, schreiben soll drauf auch gehen.

... also das ist erstmal ne schlechte idee ;) ... aber gut. versuchen wir dem problem mal beizukommen, ich weiß das es nicht soo einfach ist ein durchdachtes rechtesystem im netz aufzubauen, aber es gibt kompliziertere fälle als deinen, die sich auch realisieren lassen...

zuerst sollten alle benutzer auch im linux-system erstellt werden (samba nicht vergessen).
fangen wir mit den homeverzeichnissen an, das ist am einfachsten:

für nfs exportierst du einfach das komplette home verzeichnis, welches du auch fem client auch als /home mountest:



# /etc/exports

/home 192.168.0.*(rw, root_squash)


für samba gibst du einfach die homeverzeichnisse weiter:



# /etc/samba/smb.conf

[homes]
comment = Home Directories
valid users = %S
browseable = No
read only = No
create mask = 0600
directory mask = 0700


das mit den zugriffsrechten bei nfs erledigt sich ja von selbst, aufgrund der dateisystemrechte. dabei ist natürlich wichtig, das auf dem server und auf dem client die gleichen user mit den gleichen benutzer-id's existieren. am besten du verwendest nis, damit würde das sichergestellt werden.

jetzt zu dem verzeichnis, welches sich die user teilen. nehmen wir exemplarisch /export. alles wird über den user michi laufen zunächst die dateisystemrechte:



drwx------ michi:users /export


nun zur smb.conf


[shared]
path = /export
comment = Gemeinsame Dateien
browseable = Yes
read only = No
create mask = 0600
directory mask = 0700
force user = michi
force group = users


etwas schwieriger wird es für nfs, zunächst die /etc/exports



# /etc/exports
/export 192.168.0.*(rw, all_sqash, anonuid=michi, anongid=users)


somit agieren alle, die das export mounten als michi:users. du musst hier aber die zahlenwerte angeben. siehe auch man 5 exports. es gibt dann allerdings noch probleme, wenn man am server selbst dateien in /export schreibt, da wieder die normalen benutzerrechte gesetzt werden. deshalb würde ich das /export nicht nur auf allen rechnern, sondern auch auf dem server z.b. in /srv/shared mounten.

... ich habe noch nicht alles, was ich hier geschrieben habe selbst getestet, ich bin selbst gerade am umbauen ;) ... sollte aber so funktionieren ;)

HangLoose
21.07.03, 22:07
wenn mich nicht alles täuscht gibt es für win auch nfs-clients. wenn du dann die 3 user in eine gruppe steckst, sollte sich deine probleme auch lösen lassen.


Gruß HL

jean_luc_picard
21.07.03, 22:16
Original geschrieben von HangLoose
wenn mich nicht alles täuscht gibt es für win auch nfs-clients. wenn du dann die 3 user in eine gruppe steckst, sollte sich deine probleme auch lösen lassen.


Gruß HL

das wird wohl nicht ausreichen, denn wenn michi einen ordner erstellt bekommt dieser die rechte drwxr-x-r-x . ein anderer benutzer aus der gleichen gruppe kann in diesem verzeichnis nicht schreiben.
es gäbe auch die möglichkeit, die create-mask unter linux global einzustellen. in der /etc/profiles gibt es die option umask, default ist diese auf 022. setzt man diese auf 007 :D, würden erstellte verzeichnisse die rechte drwxrwx--- und erstellte dateien -rw-rw---- bekommen. allerdings gefällt es mir nicht so gut, der gruppe standardmässig schreibrechte auf meine dateien zu verpassen. die dateien sind zwar eigentlich trotzdem sicher im home-verzeichnis, aber wenn man woanders dateien hinschreibt... leider habe ich bisher keine verzeichnisabhängige einstellung für umask gefunden, ich glaube so etwas gibt es leider nicht... wäre aber froh, wenn mich jemand eines besseren belehrt ;)

HangLoose
21.07.03, 22:33
ja ja man kann sich leicht im linux *rechte-dschungel* verirren ;).


Gruß HL

wurf
22.07.03, 17:38
Juhu!! Danke jean_luc_picard!!!

Ich hab es jetzt genauso gemacht wie du geschrieben hast und es funktioniert wunderbar!

Ich versteh es dank deiner antwort jetzt halbwegs, aber bis ich auf sowas allein drauf komme muss ich mich wohl noch etwas länger mit linux beschäftigen :)


Vielen Dank nochmal,

Michi

jean_luc_picard
22.07.03, 18:23
ich denke das ist ganz normal. mit dem rechtesystem setzte ich mich auch nocht nicht soo lange intensiv auseinander... ich hab mit linux vor ca. 3-4 jahren angefangen ;) , vorher kannte ich nur windows, da gibt es ja praktisch kein rechtesystem :D ... daran muß man sich dann erstmal gewöhnen ;)