Estou executando o RHEL6. Eu tenho um requisito para ter "umask 077" no meu /etc/bashrc que não tenho permissão para alterar. Temos uma pasta designada para colaboração em grupo onde gostaríamos que todos no mesmo grupo pudessem rwx. Portanto, os usuários devem definir "umask 002" manualmente ou em seu arquivo .bashrc local ou lembrar de chmod. Eles geralmente esquecem e o administrador é chamado para "consertar" as permissões porque o proprietário do arquivo não está disponível.
Existe uma maneira de forçar a pasta para "umask 002"? Eu li que deveria usar setfacl, mas acho que umask substitui isso.
Consulte Como forço grupos e permissões para arquivos criados dentro de um diretório específico?
O que testei foi criar um diretório /var/test. Eu configurei o grupo para ser tgroup01. Certifiquei-me de que qualquer coisa criada em /var/test seria definida para o grupo tgroup01. Em seguida, certifiquei-me de que as permissões de grupo padrão para qualquer coisa abaixo de /var/test fossem rwx.
Se eu criar um diretório foo ou tocar em um arquivo blah, eles terão as permissões corretas
O bit setgid não o ajudará - afeta apenas a propriedade, não o que o proprietário pode fazer com o arquivo.
O que pode funcionar é se a área de armazenamento compartilhada estiver montada em um sistema de arquivos diferente. Você precisará fazer com que o administrador o monte com o umask apropriado definido explicitamente para que você possa compartilhar arquivos. Ou os arquivos são montados por um compartilhamento de samba apenas interno - meio que um exagero, mas o samba permite facilmente um grupo específico e um modelo de permissão versus o que o sistema operacional fornece.
Em suma - alguns de nós pensam que o "S" em "ITS" significa serviço. Se eles têm o requisito de uma 077 umask, eles precisam encontrar uma maneira eficiente de compartilhar os arquivos para você.
(e para o bit setgid não funcionar)
Você pode conseguir isso usando a permissão especial " setgid bit ".
O bit setgid tem efeito em arquivos e diretórios. No primeiro caso, o arquivo que tem o bit setgid definido, quando executado, ao invés de rodar com os privilégios do grupo do usuário que o iniciou, roda com os do grupo que possui o arquivo.
Ao invés disso, quando usado em um diretório, o bit setgid altera o comportamento padrão para que o grupo de arquivos criados dentro desse diretório não seja o do usuário que os criou, mas o do próprio diretório pai. Isso geralmente é usado para facilitar o compartilhamento de arquivos (os arquivos serão modificáveis por todos os usuários que fazem parte do referido grupo).
Se quisermos definir o bit setgid em um diretório, use o comando abaixo.
com este comando acima, demos privilégios totais sobre ele ao proprietário e ao usuário que são membros do grupo ao qual o diretório pertence, além de permissão de leitura e execução para todos os outros usuários.
Podemos definir isso de outra maneira, conforme mencionado abaixo
Exemplo
Criamos vários usuários com o nome user1 , user2 , user3 :
Também criei um grupo com o nome group :
Grupo adicionado como um grupo secundário em usuários criados:
Criado test_dir e adicionado a permissão de bit setgid :
Arquivos e diretórios criados em test_dir usando usuários criados:
Aqui está a listagem do diretório test_dir :
Espero que esta solução funcione para você.