As possibilidades de definir umask diferem strongmente entre as distro Linux e Unix.
A maneira como você está tentando fazer isso (no campo "gecos" em /etc/passwd
) depende de pam_umask
sendo instalado e configurado. AFAIK este é pelo menos o caso por padrão no Debian e provavelmente distro é baseado no Debian como Ubuntu, Mint, etc ...
Sem pam_umask
, você poderia colocar uma linha umask 002
no perfil do shell ou no arquivo rc no diretório inicial dos usuários (por exemplo, .bashrc
ou .profile
). Ou algo parecido com isso no arquivo de configuração do sistema, por exemplo /etc/profile
(para sh
e bash
) ou /etc/bashrc
(apenas para o bash):
if [ "$USER" = "souser" ] ; then
umask 0002
else
umask 0022
fi
Você pode verificar se foi bem-sucedido de qualquer forma com apenas um comando umask
simples, que produzirá a umask efetiva atual.
Observe que ainda cabe ao aplicativo definir as permissões. Se você usar algum outro programa ou comando que, em seu código, nunca permite definir permissões de gravação de grupo na pasta criada, será necessário alterar o código desse programa ou definir manualmente as permissões posteriormente. É assim que o UNIX / Linux deve funcionar.