Wenn die Dienste über Upstart oder /etc/init.d gestartet werden, bearbeiten Sie die entsprechenden Initscripts.
- init.d:
umask 02
am Anfang des Skripts (dies sind gewöhnlichesh
Skripts) - Upstart :
umask 02
überall
Linux hat keine strikte Definition von "login", und ein Konto ist lediglich eine UID, die einem Namen / homedir / etc zugeordnet werden kann (oder nicht) kann.
Wenn Sie sich an der Konsole / über SSH anmelden, verwendet das Anmeldeprogramm (oder der SSH-Dämon) PAM, um die Umgebung (möglicherweise pam_umask
) einzurichten, und startet Ihre Shell mit dem Flag "login". Das /etc/profile
Skript gehört zu den sh- und bash- Shells, die es nur für "login" -Aufrufe lesen.
Wenn Sie sudo touch ...
oder verwenden sudo /etc/init.d/foo start
, ruft sudo immer noch PAM für die Einrichtung von auth / account / session auf, startet jedoch die Shell überhaupt nicht, dh alle "profile" - oder "bashrc" -Dateien werden ignoriert. (Das heißt, es sei denn, Sie verwenden sudo -i ...
.)
Wenn Upstart einen Dienst ausführt, wird die UID einfach auf die Ihres Dienstes umgestellt, wobei "Profil" -Skripts oder die PAM-Konfiguration übersprungen werden. Die einzige gelesene Konfiguration ist die Datei des Dienstes, in /etc/init
der Sie die umask-Einstellung vornehmen sollten.