Posso definir o umask em um diretório específico?

7

Eu tenho uma configuração umask bastante restritiva (0077). Isso é bom, exceto que eu tenho um diretório no qual eu gostaria de uma configuração mais permissiva (0002) para todos os arquivos criados em qualquer lugar sob esse diretório. Existe uma maneira de definir um umask em um diretório específico, para que todos os arquivos criados sob ele herdem as mesmas permissões?

mipadi
fonte

Respostas:

4

Use o ACL

setfacl -d -m mask: 002 / sua / dir / here /

http://man-wiki.net/index.php/1:setfacl

Se quiser ter um padrão para um login, basta adicionar uma "umask 002" ao seu .bashrc (ou qualquer shell que você use). Todos os novos dirs usarão isso se estiverem logados sob esse env.

bshea
fonte
Apenas um heads up: as ACLs não se traduzem em uma rede. (Samba / NFS) ... Você precisará adicionar isso ao arquivo de configuração de rede individual para o diretório específico. (isto é, smb.conf - create mask = 775)
bshea
1
Na verdade, AFAIU NFS3 & amp; O NFS4 suporta (algumas?) ACLs (pelo menos no linux)?
JanC
1
E o Samba também ...
JanC
Não tive que tentar isso em muito, muito tempo. Melhor prevenir do que remediar (!) É bom saber. Obrigado.
bshea
1
serverfault.com/questions/6607/… Parece que você terá que usar 'chmod' se setfacl não estiver disponível no bash.
bshea