Ich habe einen http-Daemon-Serverprozess (yaws), bei dem der Server neue Dateien mit einer Umask von 002 schreiben soll, damit ein anderer Benutzer in derselben Gruppe vom Daemon-Prozess erstellte Dateien ändern, verschieben oder löschen kann. Dies ist unter Ubuntu 10.04.
Im Gegensatz zu Apache verfügt yaws nicht über eine Konfigurationsoption für umask. Welche Methoden gibt es also, um die umask eines Daemon-Prozesses festzulegen?
Ich habe diese Antwort zum Ändern des hinzuzufügenden Init-Skripts gefunden umask 002
. Dies hat funktioniert, aber ich bin nicht sicher, ob das Bearbeiten des Init-Skripts der beste Weg ist, um dies auf mehreren Computern einfach zu dokumentieren und zu konfigurieren.
Ich habe hier auch einen Verweis auf das Modul pam_umask gefunden . Es sieht so aus, als könnten pro Benutzer Einstellungen der Umask im GECOS-Feld von / etc / passwd konfiguriert werden.
Gibt es andere Möglichkeiten, die Umask für Daemon-Prozesse festzulegen? Und was wäre der empfohlene Weg?
sudo
zum Lesen/etc/passwd
. Odercat
für diese Angelegenheit (grep
akzeptiert einen Dateinamen als Argument oder verwendet nur,getent
wie Janne betont hat).sudo -u daemon bash -c umask
. Ich habe nicht interaktiv getestet, indem ich Einstellungen geändert, den Dämon neu gestartet und die Berechtigungen für die von ihm erstellten Dateien überprüft habe.dash
,umask
sollte aber darin arbeiten.Unter Ubuntu 10.04 können globale Standard-Umask-Einstellungen mit dem Modul pam_umask gesteuert werden.
In diesem Blog wurden einige Details zu Debian im Allgemeinen gefunden: http://muzso.hu/2008/01/22/default-permissions-with-libpam-umask
Das Modul pam_umask ist standardmäßig unter Ubuntu 10.04 installiert, muss jedoch konfiguriert werden.
Bearbeiten Sie /etc/pam.d/common-session und fügen Sie die folgende Zeile hinzu:
Dann können die Einstellungen pro Benutzer durch Ausführen des Befehls geändert werden:
um dem GECOS-Feld in / etc / passwd eine umask-Einstellung hinzuzufügen.
Dies funktioniert nur für nicht interaktive Shells ohne Anmeldung, z. B. wenn beim Booten ein Daemon-Startskript ausgeführt wird.
Für Login-Shells müssen die umask-Einstellungen aus anderen Shell-Konfigurationsdateien wie / etc / profile, /etc/login.defs oder dem Home-Verzeichnis des Benutzers .profile, .bashrc usw. entfernt werden. Andernfalls werden die pam_umask-Einstellungen überschrieben. Die Konfigurationsreihenfolge finden Sie in der Manpage pam_umask.
quelle
Wenn der Dienst über das Tool "start-stop-daemon" gestartet wird, kann die umask auf Befehlszeilenebene mit dem Parameter "--umask" angegeben werden, z.
Das Anpassen des Startskripts zum Lesen solcher Details aus einer Konfigurationsdatei ist möglicherweise transparenter als das Hinzufügen benutzerbasierter Einstellungen - dies hängt natürlich von der Startprozedur ab, die für den Dämon verwendet wird.
Weitere Informationen finden Sie auf der Manpage: man start-stop-daemon
quelle