Como posso alterar a umask para um usuário quando ele faz logon em um grupo alternativo?

4

Eu quero que o umask seja mais permissivo para os usuários quando eles alternarem para um grupo não padrão. Apenas para demonstrar o que quero dizer:

$ id
uid=500(beamin) gid=500(beamin) groups=10(wheel)

$ umask
0022

$ sg wheel

$ umask # I want this to now be 0002 instead
0022 

Eu estava pensando em adicionar um script para /etc/profile.d/ que seria assim:

if [ "'id -u'" -ge 500 ] && [ "'id -g'" -ne "'id -u'" ]; then
   umask 0002
fi

Eu tenho 500 porque todos os nossos usuários uid s são maiores ou iguais a isso. Esse é o melhor jeito de fazer isso? Ou alguém tem algo que faz mais sentido?

    
por Belmin Fernandez 14.12.2011 / 19:50

2 respostas

1

Eu acho que sua solução está bem. Em um shell script você pode usar:

(umask 022;exec sg wheel )

Teste com:

umask 002
umask
( umask 022; exec sg wheel umask)
umask

Para uma solução alternativa, consulte o meu post semelhante: Como defino a estrutura de permissões para vários usuários que estão editando vários sites em / var / www no Ubuntu 9.10?

    
por 15.12.2011 / 23:00
0

Você pode criar um script mysg que execute sg arg seguido por umask X, onde X é 002 ou 022, dependendo de qual grupo foi digitado. Provavelmente não é a solução mais elegante ...

    
por 15.12.2011 / 22:38