Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

NFS, keine umask möglich?

Alles rund um die Server (Web-, Mail-, Datenbank-, Datenaustausch-, etc.) die man unter Linux betreiben kann

Moderator: Moderatoren

Antworten
pixel
Hacker
Hacker
Beiträge: 250
Registriert: 30. Mär 2004, 13:26
Wohnort: Bühl

NFS, keine umask möglich?

Beitrag von pixel » 28. Feb 2013, 16:30

Hallo zusammen,

ich habe den ganzen Mittag damit verbracht nach einem Problem bzw. dessen Lösung zu suchen dass mich schon länger quält. Gegeben ist ein FileServer mit OpenSuSE 12.2 und ein Client mit gleichem OS. Als Filesystem im Netz kommt NFS4 zum Einsatz. Wenn ich vom Client aus auf einem NFS-Share eine Datei anlege hat diese die Rechte:

- rw-r--r--

Nun versuche ich das zu ändern dass neue Dateien mit

-rw-rw---

erzeugt werden. Im Wen habe ich hierzu verschiedene Ansätze gefunden:

"/etc/export mit ownmask=value und othmask=value"

Allerdings kennt der NFS diese Optionen nicht und in der Manpage habe ich davon auch nicht gefunden. Meine /etc/fstab am Server:

Code: Alles auswählen

/dev/vda1            swap                 swap       defaults              0 0
/dev/vda2            /                    ext4       acl,user_xattr        1 1
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/vdb1            /data                ext4       acl,user_xattr        1 2
# NFS-Root zusammen stellen
/data/backup            /nfs4root/backup                none    bind  0 0
/data/bibli             /nfs4root/bibli         none    bind    0 0 
/data/dokus             /nfs4root/dokus            none    bind    0 0
/data/home              /nfs4root/home             none    bind    0 0
/data/download          /nfs4root/download         none    bind    0 0
/data/isoimages         /nfs4root/isoimages        none    bind    0 0
/data/korrespondenz     /nfs4root/korrespondenz none    bind    0 0
/data/texte             /nfs4root/texte            none    bind    0 0
/data/mdaten            /nfs4root/mdaten            none    bind    0 0
Meine exports auf dem Server:

Code: Alles auswählen

/nfs4root               *(fsid=0,crossmnt,ro,all_squash,sync,no_subtree_check,insecure)
/nfs4root/backup        *(rw,all_squash,async,no_subtree_check,insecure,anonuid=50000,anongid=10000)
/nfs4root/bibli         *(rw,all_squash,async,no_subtree_check,insecure,anonuid=50000,anongid=10000)
/nfs4root/dokus         *(rw,all_squash,async,no_subtree_check,insecure,anonuid=50000,anongid=10000)
/nfs4root/home          *(rw,no_root_squash,async,no_subtree_check,insecure)
Die /etc/fstab am Client:

Code: Alles auswählen

tux.local.lan:/ /nfs4root       nfs4    rw,rsize=16384,wsize=16384 0 0
Ich habe dann mal am Client die Datei /etc/profile.local angelegt und dort:

umask 007

eingetragen. Reboot aber dass hat nichts geändert. Ist es wirklich so dass man dies nicht auf Server-Seite festlegen kann. Ich kann das bei einem Server-OS irgendwie nicht glauben.

Viele Grüsse
pixel
Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

Werbung:
stka
Moderator
Moderator
Beiträge: 3301
Registriert: 1. Jun 2004, 13:56
Wohnort: 51°58'34.91"N 7°38'37.47"E
Kontaktdaten:

Re: NFS, keine umask möglich?

Beitrag von stka » 28. Feb 2013, 19:10

Du hast zwei Möglichkeiten:
1. über bindfs. Dazu habe ich das hier für dich:
http://forum.linhes.org/viewtopic.php?f=24&t=20622
http://code.google.com/p/bindfs/
2. Du verwendest die default ACLs, damit kannst du Rechte an Verzeichnissen setzen und alle Dateien die du DANACH neu anlegst erhalte dann die Rechte, die du als default ACL gesetzt hast.
Du hörst nicht auf zu laufen weil du alt wirst. Du wirst alt weil du aufhörst zu laufen.
Das neue Buch http://www.kania-online.de/fachbuecher

pixel
Hacker
Hacker
Beiträge: 250
Registriert: 30. Mär 2004, 13:26
Wohnort: Bühl

Re: NFS, keine umask möglich?

Beitrag von pixel » 2. Mär 2013, 11:36

Danke für die Tipps. Ich werde es mit BINDFS machen. Zunächst mal ohne NFS4 getestet und auf dem Server bindfs installiert. Ein Verzeichnis:

Code: Alles auswählen

/data/test
angelegt. Hier sollen die eigentlich Daten liegen. Dieses Verzeichnis wird mit bindfs unter:

Code: Alles auswählen

/nfs4root/test
eingebunden. Hierzu habe ich den Befehl:

Code: Alles auswählen

bindfs -u flexshare -g allusers --perms=0000:u+rwD:g+rwD:o-rD /data/test /nfs4root/test/
ausgeführt. Klappt wunderbar. Lege ich im Verzeichnis Dateien/Verzeichnisse an haben diese exakt die Rechte die ich möchte:

Code: Alles auswählen

tux:/nfs4root/test # mkdir test
tux:/nfs4root/test # touch test2
tux:/nfs4root/test # l
insgesamt 12
drwxrwx---  3 flexshare allusers 4096  2. Mär 11:29 ./
drwxrwxrwt 12 root      root     4096  2. Mär 10:40 ../
drwxrwx---  2 flexshare allusers 4096  2. Mär 11:29 test/
-rw-rw----  1 flexshare allusers    0  2. Mär 11:29 test2
Nun brauche ich einen entsprechenden fstab-Eintrag. In der Manpage steht als Beispiel:

Code: Alles auswählen

bindfs#/home/bob/shared /var/www/shared/bob fuse perms=0000:u+rD 0 0
bzw unter dem Link den du gepostet hast:

Code: Alles auswählen

bindfs#/mnt/mythwrong /myth fuse owner=mythtv,group=mythtv,perms=0000:u+rwD:g+rwD:o+rD   0   0
Übertragen auf mein Beispiel sollte der Eintrag doch nun:

Code: Alles auswählen

bindfs#/data/test /nfs4root/test fuse owner=flexshare,group=allusers,perms=0000:u+rwD:g+rwD:o-rD   0   0
sein. Wenn ich den in die fstab schreibe und versuchen diesen zu mounten erhalte ich den Fehler:

Code: Alles auswählen

mount /nfs4root/test/
mount: wrong fs type, bad option, bad superblock on bindfs#/data/test,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try                                                         
       dmesg | tail or so
Was habe ich falsch gemacht??

Gruss pixel
Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

pixel
Hacker
Hacker
Beiträge: 250
Registriert: 30. Mär 2004, 13:26
Wohnort: Bühl

Re: NFS, keine umask möglich?

Beitrag von pixel » 2. Mär 2013, 11:48

pixel hat geschrieben:Was habe ich falsch gemacht??l
Das Paket "fuse" hat gefehlt. Das klappt nun.
Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

pixel
Hacker
Hacker
Beiträge: 250
Registriert: 30. Mär 2004, 13:26
Wohnort: Bühl

Re: NFS, keine umask möglich?

Beitrag von pixel » 2. Mär 2013, 14:09

ich versuche mich gerade an den erweiterten Posix-ACL's Zum testen benutze ich das Verzeichnis /data/backup. /data ist eine ext4-Partition die mit der Option 'acl' gemountet ist.
Die Ausgangssituation bezogen auf die Rechte ist:

Besitzer: flexshare
Gruppe: allusers
Zugriffs-Bits Directory: 770
Zugriffs-Bits Files: 660

Erreichen möchte ich dass neue Dateien und Verzeichniss dem User 'flexshare' und der Gruppe 'allusers' gehören. Beide sollen für neu erstellte Dateien automatisch rw und für neu erstellte Verzeichnisse rwx erhalten. Durch die ACL's wäre ich dann später flexibler wenn eine Gruppe oder User Zugriff auf ein bestimmtes File/Directory benötigt.

Zu Beginn habe ich die Default-ACL's mit:

Code: Alles auswählen

setfacl -d -m u:flexshare:rwx,g:allusers:rwx,o:- backup
gesetzt. Wenn ich diese nun überprüfe sieht dass für mich auch richtig aus:

Code: Alles auswählen

getfacl backup/
# file: backup/
# owner: flexshare
# group: allusers
user::rwx
group::rwx
other::---
default:user::rwx
default:user:flexshare:rwx
default:group::rwx
default:group:allusers:rwx
default:mask::rwx
default:other::---
Nun wechsle ich als normaler User in das Verzeichnis /data/backup und erstelle ein Verzeichnis 'test'. Anschliessend prüfe ich die Rechte:

Code: Alles auswählen

touch test
getfacl test 
# file: test
# owner: sven
# group: allusers
user::rw-
user:flexshare:rwx              #effective:rw-
group::rwx                      #effective:rw-
group:allusers:rwx              #effective:rw-
mask::rw-
other::---
Warum hier die Maske rw- gesetzt wird weiss ich (noch) nicht aber im Falle einer Datei wäre dass ja gewünscht. Allerdings unterscheidet die Maske ja nicht zwischen Directorys und Files was bei einem neu erstellten Directory zu folgenden Rechten führt:

Code: Alles auswählen

md test2
getfacl test2
# file: test2
# owner: sven
# group: allusers
user::rwx
user:flexshare:rwx              #effective:r-x
group::rwx                      #effective:r-x
group:allusers:rwx              #effective:r-x
mask::r-x
other::---
default:user::rwx
default:user:flexshare:rwx
default:group::rwx
default:group:allusers:rwx
default:mask::rwx
default:other::---
Dies besagt doch dass der User 'flexshare' und die Gruppe 'allshare' kein Schreibrecht besitzen, oder?

Des weiteren ist der Owner sowohl bei dem neu angelegten Verzeichnis wie auch bei der Datei 'sven' also der User der es/sie angelegt hat. Genau dieses Verhalten wollte ich doch mit den ACL's verändern.

Habe ich da einen grundsätzlichen Fehler in der Denkweise. Kann mir jemand einen Tipp geben?

Viele Grüsse
pixel
Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

stka
Moderator
Moderator
Beiträge: 3301
Registriert: 1. Jun 2004, 13:56
Wohnort: 51°58'34.91"N 7°38'37.47"E
Kontaktdaten:

Re: NFS, keine umask möglich?

Beitrag von stka » 2. Mär 2013, 15:30

ACHTUNG Wen du ACKs gesetzt hast darfst du NIEMALS mehr die Rechte über "chmod" ändern, denn dann änderst du die Maske! Die Rechte für Besitzer und Gruppe MUSST du dann auch über "setfacl" ändern. So kommen die "effectif rights" zustande. Die Man-page zu setfacl ist da falsch.
Du hörst nicht auf zu laufen weil du alt wirst. Du wirst alt weil du aufhörst zu laufen.
Das neue Buch http://www.kania-online.de/fachbuecher

pixel
Hacker
Hacker
Beiträge: 250
Registriert: 30. Mär 2004, 13:26
Wohnort: Bühl

Re: NFS, keine umask möglich?

Beitrag von pixel » 2. Mär 2013, 15:56

stka hat geschrieben:ACHTUNG Wen du ACKs gesetzt hast darfst du NIEMALS mehr die Rechte über "chmod" ändern, denn dann änderst du die Maske!
ja das habe ich gelesen aber im konkreten Fall hatte ich chmod nicht benutzt.
stka hat geschrieben:Die Rechte für Besitzer und Gruppe MUSST du dann auch über "setfacl" ändern. So kommen die "effectif rights" zustande. Die Man-page zu setfacl ist da falsch.
Das ist klar. Die Kernfrage ist aber wie kann ich steuern dass beim neu anlegen von Dateien/Verzeichnissen der owner und die Gruppe auf:

flexshare:allusers

gesetzt werden?
Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

spoensche
Moderator
Moderator
Beiträge: 7492
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: NFS, keine umask möglich?

Beitrag von spoensche » 2. Mär 2013, 17:08

Lege das Verzeichnis, das du per NFS freigibst als User flexshare an. Dann ist der Eigentümer immer flexshare.

pixel
Hacker
Hacker
Beiträge: 250
Registriert: 30. Mär 2004, 13:26
Wohnort: Bühl

Re: NFS, keine umask möglich?

Beitrag von pixel » 2. Mär 2013, 17:38

spoensche hat geschrieben:Lege das Verzeichnis, das du per NFS freigibst als User flexshare an. Dann ist der Eigentümer immer flexshare.
Äh dass war nicht die Frage. Eingangs ging es darum die umsak zu setzen und zwar serverseitig dass das alle Dateien die vom Client aus NEU angelegt werden 660 und die Verzeichnisse 770 haben. Das erzwingen der Besitzverhältnisse über NFS war nie das Problem. Dass kann ich über die /etc/exports machen.

Unter dem Gesichtspunkt verstehe ich deinen Post überhaupt nicht :???:

Es kamen dann die Themen 'bindfs' und ACL's in's Spiel. bindfs scheidet aus da es sich hierbei nur um einen "übergestülpte" Sicht auch die Rechte handelt. ACL's scheinen dieses Problem nichht zu lösen denn hier kann ich zwar die Datei- und Verzeichns- Rechteflags erzwingen. Nicht jedoch Besitzer/Gruppe (man möge mich korrigieren wenn dass falsch ist).

Nachdem es auf diese Wege nicht funktioniert war mein Gedanke es mit einem mount -o bind ..... zu machen und dabei uid und gid zu erzwingen. Klappt bei NTFS aber nicht bei den üblichen LinuxFS-Varianten.

Wir lassen jetzt mal NFS und Samba ausser Acht. Gegeben eine lokale Linux-Maschine mit einer Partition /data (ext4). Darin gibt es ein Verzeichnis 'test' mit chmod 770 und es gehört flexshare:allusers

Wie schaffe ich es das:

- alle neuen Dateien oder Verzeichnisse die von jedem beliebigen User IN diesem Verzeichnis angelegt werden flexshare:allusers gehören
- im Falle einer Datei die Maske 660 haben
- Im Falle eines Verzeichnisses die Maske 770 haben

Das ist die Frage die ich mir stelle und bin ein wenig erstaunt dass dies nicht funktionieren soll.
Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

stka
Moderator
Moderator
Beiträge: 3301
Registriert: 1. Jun 2004, 13:56
Wohnort: 51°58'34.91"N 7°38'37.47"E
Kontaktdaten:

Re: NFS, keine umask möglich?

Beitrag von stka » 3. Mär 2013, 09:07

Setze doch das SGID-Bit am Verzeichnis "chmod g+s verz" bevor du die ACLs setzt und dann gehören alle Einträge immer der Gruppe, der auch das Verzeichnis gehört. Den Besitzer kannst du nicht vorbelegen. Immer derjenige, der den Eintrag erzeugt ist der Besitzer. Das geht nur unter Windows bzw. Samba.
Du hörst nicht auf zu laufen weil du alt wirst. Du wirst alt weil du aufhörst zu laufen.
Das neue Buch http://www.kania-online.de/fachbuecher

Antworten