Existem três formas normais de definir a umask do usuário.
- Defina
UMASKem/etc/login.defs - Adicione
pam_umask.soà sua configuração do PAM em/etc/pam.d - Defina nos arquivos de inicialização do shell, por exemplo %código%
Não há diferença entre usuários do sistema e usuários normais em relação a isso.
Mas suponho que você esteja tentando iniciar um daemon com uma umask personalizada?
O problema é: todas as opções acima acontecem quando um usuário efetua login. Se você estiver executando um daemon, ele nunca efetuará login. Ele será iniciado pelo init e executado como root ou chama /etc/profile para ser executado como o usuário do sistema que você especificar.
Suas principais opções são:
- coloque
setuidno seu script de inicialização (faça umumaskpara um exemplo) - configure o init para iniciar o programa com uma umask customizada ( systemd.exec < umsk="http://upstart.ubuntu.com/wiki/Stanzas#umask"> umask upstart )
- se estiver usando
grep umask /etc/init.d/*, passe a opção umask - modifique o próprio programa para chamar a função umask ou a chamada do sistema