Es gibt drei normale Möglichkeiten, die umask eines Benutzers festzulegen.
- Setze
UMASK
in/etc/login.defs
- Fügen Sie
pam_umask.so
hinzu zu Ihrer PAM-Konfiguration in/etc/pam.d
- Stellen Sie es in den Startdateien der Shell ein, z.
/etc/profile
Diesbezüglich gibt es keinen Unterschied zwischen Systembenutzern und normalen Benutzern.
Aber ich nehme an, Sie versuchen, einen Daemon mit einer benutzerdefinierten umask zu starten?
Das Problem ist:Alle oben genannten Optionen werden ausgeführt, wenn sich ein Benutzer anmeldet. Wenn Sie einen Daemon ausführen, meldet er sich nie an. Er wird von init gestartet, läuft dann entweder als root oder ruft setuid
auf als der von Ihnen angegebene Systembenutzer auszuführen.
Ihre Hauptoptionen sind:
- geben Sie
umask
ein in Ihrem Init-Skript (machen Sie einegrep umask /etc/init.d/*
als Beispiel) - init so konfigurieren, dass das Programm mit einer benutzerdefinierten umask gestartet wird (systemd.exec upstart umask)
- bei Verwendung von
start-stop-daemon
, übergeben Sie die umask-Option - Ändern Sie das Programm selbst, um die umask-Funktion oder den Systemaufruf aufzurufen
Systembenutzer unterscheiden sich von „normalen“ Benutzern in dreierlei Hinsicht:Ablauf des Passworts, Home-Verzeichnis (Systembenutzer haben keins) und UID (Systembenutzer sind normalerweise unterhalb einer willkürlichen Schwelle).
Im allgemeinen Fall haben Sie fast kein Glück. Sie können PAM verwenden, um die umask festzulegen, aber PAM wählt Verhaltensweisen basierend auf anderen Dingen als diesen drei Unterschieden aus.
Mit anderen Worten, Sie können PAM nicht dazu bringen, zwischen „System“- und „Nicht-System“-Benutzern zu unterscheiden. Damit haben Sie zwei Möglichkeiten:
-
Entweder Sie verwenden PAM, um die Umask für alle festzulegen (z. B.
/etc/login.defs
einchecken ), dann legen Sie explizit die umask für Nicht-Systembenutzer in/etc/bash.bashrc
fest (oder ähnliches); -
Oder Sie schreiben dafür Ihr eigenes PAM-Modul. Ich denke, dies würde von vielen Leuten begrüßt werden, da das Setzen der umask eine häufige Anfrage ist.
Bitte nehmen Sie diese Antwort mit einer großzügigen Prise Salz. Diese Art von Anfrage ist ziemlich häufig und ich wäre nicht überrascht, wenn es jetzt einen besseren/richtigeren Weg gibt.