ubuntuusers.de

NFS, UID,GID und UMAKS erzwingen wie bei Samba

Status: Ungelöst | Ubuntu-Version: Server 18.04 (Bionic Beaver)
Antworten |

pixel24

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

Hallo zusammen,

wir nutzen hier NFS-Freigaben im Büro welche auf Gruppen-Ebene organisiert sind:

1
2
drwxrwx---  8 Administrator Domain Users  4096 Nov  9 15:49 Bilder
drwxrwx--- 15 Administrator Buchhaltung 12288 Dez  5 17:19 Buchhaltung

Der Besitzer ist also immer "Administrator" und die Gruppe die darauf zugreifen soll. Unter Samba kann beim Share definieren das Dateien und Verzeichnisse immer mit einer bestimmten Benutzer/Gruppe erzeugt werden und auch die Dateimaske (770 für Verzeichnisse, 660 für Dateien).

Kann man so etwas irgendwie auch mit NFS umsetzen?

viele Grüße pixel24

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Du kannst mittels

chmod g+s <Pfad> 

das setgid-Bit auf ein Verzeichnis setzen. In der Zukunft würden dann alle darin liegenden Dateien und Unterverzeichnisse die besitzende Gruppe von dem ursprünglichen Verzeichnis übernehmen. Vielleicht reicht das in deinem Fall bereits, was die besitzende Gruppe angeht.

In Sachen umask habe ich auf die Schnelle nur herausgefunden, dass du die bestenfalls über das Benutzerprofil setzen kannst (z.B. ~/.profile), da NFS keine entsprechenden Mount-Optionen bietet.

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

ich komme der Sache näher ☺ um es besser reproduzieren zu können habe ich am lokalen Client ein Testverzeichnis angelegt und das Stick-Bit gesetzt:

1
drwxrws---   3 Administrator Domain Users       4096 Dez 11 11:39 test

In der login.defs und profile die UMASK auf 007 gesetzt. Jetzt werden die Dateien oder Verzeichnisse wie gewünscht angelegt:

1
2
3
4
5
6
7
root@pc001:/# cd test
root@pc001:/test# touch test.txt
root@pc001:/test# mkdir test
root@pc001:/test# ls -l
insgesamt 4
drwxrws--- 2 root Domain Users 4096 Dez 11 11:47 test
-rw-rw---- 1 root Domain Users    0 Dez 11 11:47 test.txt

Was ich nicht nicht hinbekommen ist dass Dateien die ich im Gnome (also im GUI) anlege diese auch so bekommen. Im Netz habe ich gefunden ich soll in der /etc/pam.d/common-session die Zeile:

1
session optional                        pam_umask.so

die so ja schon drin ist einfach entsprewchend ergänzen:

1
session optional                        pam_umask.so umask=0007

aber das ändert nichts. Neu angelegte Dateien (Nautilus, Texteditor) in /test

1
2
3
4
root@pc001:/test# ls -l
insgesamt 8
drwxr-sr-x 2 s.gehr Domain Users 4096 Dez 11 11:50 Test_Nautilus
-rw-r--r-- 1 s.gehr Domain Users    4 Dez 11 11:51 Text_Gedit.txt

Hat jemand vielleich noch eine Idee worher er diese UMASK zieht?

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

pixel24 schrieb:

…Was ich nicht nicht hinbekommen ist dass Dateien die ich im Gnome (also im GUI) anlege diese auch so bekommen…

Weil gnome das nicht kann → 1685754

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

Also was ich herausfinden konnte ist dass dies über Systemd angepasst werden muss:

https://www.freedesktop.org/software/systemd/man/systemd.exec.html#UMask=

Da gibt es eine entsprechende Option. Nur da gibt es ja unzählige Dateien und ich konnte nicht herausfinden welche für den Desktop zuständig ist.

Hat da jemand einen Tipp für mich?

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Du kannst in jeder systemd/unit UMask setzen. Im Falle des gnome-terminals funktioniert das, für Nautilus nicht, so wie der Bugreport sagt. Generell funktioniert nach wie vor der Weg über /etc/profile - nur eben nicht in GNOME. Aussitzen oder so lange auf eine funktionierende Oberfläche wechseln.

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

ChickenLipsRfun2eat schrieb:

Du kannst in jeder systemd/unit UMask setzen. Im Falle des gnome-terminals funktioniert das, für Nautilus nicht, so wie der Bugreport sagt. Generell funktioniert nach wie vor der Weg über /etc/profile - nur eben nicht in GNOME. Aussitzen oder so lange auf eine funktionierende Oberfläche wechseln.

ok, habe mir den Bugreport durchgelesen. Besteht ja erst seit 2017 das Problem 😮 ... Schade aber dann muss ich zumindest nicht weiter suchen. Danke für die Info.

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

Muss nochmal stören .... gibt es unter Linux keine Möglichkeit das Datein&Ordner die in einem Verzeichnis angelegt werden eine erzwungene UMASK haben. Geht das vielleicht wenn man es mit einem virtuellen Dateisystem o.ä. einbindet?

Wenn ich auf dem NFS-Share mit Nautilus einen Ordner anlege bekommt der:

1
drwxr-xr-x  2 s.gehr   Domain Users       4096 Dez 11 19:55 test

Den kann doch meine Kollegin - die ebenfalls in der Gruppe "Domain Users" ist nicht löschen, oder?

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Nochmal: Das funktioniert schon, aber nicht in Nautilus.

Du setzt deine umask entsprechend pam_umask in /etc/pam.d/login mit session optional pam_umask.so umask=007 und in /etc/login.defs mit UMASK 007. Das wäre systemweit für JEDEN Nutzer und JEDE Datei. (Gibt auch noch andere Umgebungen, die eine default-umask eingestellt haben, man kann das also speziell einrichten für bspw.SSH.)

Siehe man pam_umaskff. für mehr Infos.

Du könntest aber als Workaround mit FUSE/sshfs und PublicKeys arbeiten. Dort gibt es auch usermapping und du kannst das bei jedem Benutzer anpassen.

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Den kann sie nicht löschen, ja.

Ist der Workaround in dem verlinkten Bug-Report ein weiterer Lösungsansatz für dich? Zusätzlich gibt es im Wiki einen Artikel, der noch auf die Dateien ~/.xinitrc und ~/.gnomerc als mögliche Workarounds hinweist. Hier kann ich allerdings nicht sagen, ob diese Informationen überhaupt noch zeitgemäß sind. Zumindest die .xinitrc wird es in einer Wayland-Session schwer haben. 😉

Könnten NFSv4 ACL dir vielleicht weiterhelfen?

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

Ich werde mich die Tage nochmal damit auseinander setzen. Habe aber Nautilus ohnehin deinstalliert. Der kann einfach ... wenig. Bin im Wiki auf nemo gestoßen. Den Fork bevor Nautilus "verschlimmbessert" wurde. Langzeiterfahrung habe ich damit natürlich noch keine aber da funktioniert vieles einfach einfacher. Werde das mit der UMASK nochmal damit testen.

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

Ich versuche es gerade auf einer Test-Installation (Ubuntu 19.10) nochmal zu reproduzieren aber ich bekomme die Umask nun überhaupt nicht mehr gesetzt. Folgende Dateien bearbeitet:

[/etc/login.defs]

1
2
UMASK           007
USERGROUPS_ENAB no

[/etc/profile]

1
2
# Am Ende angefügt
umask 007

[/etc/pam.d/common-session]

1
session optional                        pam_umask.so umask=0007

Rechner neu gestartet und geprüft:

1
2
s.gehr@pc001:~$ umask
0022

Was habe ich übersehen?

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

pixel24 schrieb:

Was habe ich übersehen?

Gnome ist die falsche Oberfläche dafür: 1685754

pixel24

(Themenstarter)

Anmeldungsdatum:
20. Februar 2008

Beiträge: 473

ich spreche im Moment aber vom Terminal und lokal (nicht NFS). Dass es Gnome nicht kann habe ich ja verstanden. Aber vorher ging es zumindest im Terminal. Der Workaround aus dem BugTracker funktioniert unter Ubuntu 19.10 nicht da es die Dateien:

1
2
$HOME/.config/systemd/user/gnome-terminal-server.service.d/umask.conf
/etc/systemd/user/gnome-terminal-server.service.d/umask.conf

nicht gibt

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Versuch es doch mal mit einem alternativen Terminal-Emulator, wie lxterminal.

Antworten |