Se os serviços forem iniciados via Upstart ou /etc/init.d, edite os initscripts apropriados.
- init.d:
umask 02
na parte superior do script (eles são scripts comuns desh
) -
Upstart :
umask 02
em qualquer lugar
O Linux não possui uma definição estrita de "login", e uma conta é meramente um UID que pode (ou não pode) ser associado a um nome / homedir / etc.
Quando você efetua login no console / over SSH, o programa de login (ou o daemon SSH) usa o PAM para configurar o ambiente (possivelmente pam_umask
) e, em seguida, inicia seu shell com o sinalizador "login". O script /etc/profile
pertence aos shells sh e bash , que apenas o lêem para invocações de "login".
Quando você usa sudo touch ...
ou sudo /etc/init.d/foo start
, o sudo ainda chama o PAM para configuração auth / account / session, mas não inicia o shell, significando todos "profile" ou "bashrc" "arquivos serão ignorados. (Isto é, a menos que você use sudo -i ...
.)
Quando o Upstart executa um serviço, ele simplesmente alterna o UID para o do seu serviço, ignorando qualquer script de "perfil" ou configuração do PAM. A única configuração que é lida é o arquivo do serviço em /etc/init
, que é onde você deve colocar a configuração do umask.