Como encontro o valor umask para um determinado usuário do sistema?

Como encontro o valor umask para um determinado usuário do sistema?

Gostaria de encontrar o valor umask para um usuário específico do sistema, aquele que é aplicado quando um script em execução enquanto esse usuário cria um novo diretório. Estou usando os sistemas Ubuntu 16.04 e 20.04.

A resposta mais próxima que posso encontrar para isso éessa questão. Não entendo uma palavra, mas tentei o script

for user in $(awk -F: '{print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

dado na resposta aceita; imprimiu a palavra "root" e congelou o sistema.

Como encontro o valor umask para um determinado usuário do sistema?

Responder1

Para determinar a umask de um usuário em um determinado momento, basta executar o umaskcomando como esse usuário. O script que você forneceu na pergunta busca uma lista de usuários do /etc/passwdarquivo e executa o umaskcomando em cada um deles sucessivamente. Mas ele tem alguns problemas, entre os quais ele irá travar, aguardando uma senha, se for executado como um usuário não root.

Um usuário pode alterar sua umask a qualquer momento (na verdade, um usuário nem precisateruma umask, o umask é específico do processo), então você não deveria depender disso para ser sempre o mesmo. Se você precisar saber qual umask um usuário tem quando está executando um script de shell, basta adicionar o umaskcomando a esse script de shell. Ou simplesmente ignore completamente o umask e chmodo diretório para o modo que você deseja.

informação relacionada