Existem três formas normais de definir a umask do usuário.
- Defina
UMASK
em/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
setuid
no seu script de inicialização (faça umumask
para 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