Alterando o valor de umask

0

Eu quero alterar o valor umask de 022 para 002 para um usuário em particular jboss . No momento, ele é definido da seguinte forma em / etc / profile:

if [ $UID -gt 199 ] && [ "'id -gn'" = "'id -un'" ]; then
umask 002
 else
umask 022
fi

Se eu alterar /etc/profile , isso afetará todos os usuários, mas desejo alterar a configuração apenas para jboss user. Para isso, posso editar .basrhrc/.bash_profile no diretório inicial do usuário. Mas o problema para mim é que o usuário não tem um shell. Qualquer maneira de definir umask para usuários sem shell.

    
por Zama Ques 05.11.2017 / 07:29

1 resposta

3

O umask é uma propriedade de um processo, não um usuário.

Ele é herdado por crianças e preservado através da execução de comandos, mesmo os setuid.

É definido com a chamada do sistema umask() . A interface do shell para essa chamada de sistema umask() é o comando umask builtin.

Não existe uma maneira mágica de alterar o umask sempre que um processo é alterado, mas alguns programas que normalmente são usados para alterar os uids podem ser configurados para. Esse é o caso de quem usa a pilha do PAM no Linux, pelo menos (geralmente programas de login), usando o módulo pam_umask ou sudo .

Mas aqui, dado que aquele usuário não tem um shell, eu suponho que não é aquele que efetua login, e você realmente quer que um software específico seja executado como aquele usuário para ter aquela umask. Então, isso deve ser apenas uma questão de iniciar o software com:

(umask 002; exec that-software)

Em um script de shell.

    
por 05.11.2017 / 09:06