linux / setfacl - Define todos os arquivos / diretórios atuais / futuros no diretório pai para 775 com o proprietário / grupo especificado

34

Eu tenho um diretório chamado "membros" e sob ele há pastas / arquivos. Como posso recursivamente definir todas as pastas / arquivos atuais e os futuros criados lá por padrão tem 775 permissões e pertencem ao proprietário / grupo nobody / admin respectivamente? Eu habilitei o ACL, montado, mas parece que não consigo obter o comando setfacl para fazer isso corretamente. Alguma idéia de como fazer isso?

    
por Maverick 02.11.2012 / 18:37

4 respostas

50

Na verdade, encontrei algo que até agora faz o que solicitei, compartilhando aqui para que qualquer pessoa que encontre esse problema possa experimentar essa solução:

sudo setfacl -Rdm g:groupnamehere:rwx /base/path/members/
sudo setfacl -Rm g:groupnamehere:rwx /base/path/members/

R é recursivo, o que significa que tudo sob esse diretório terá a regra aplicada a ele.
d é o padrão, o que significa que para todos os itens futuros criados sob esse diretório, essas regras se aplicam por padrão. m é necessário para adicionar / modificar regras.

O primeiro comando, é para novos itens (daí o d), o segundo comando, é para itens antigos / existentes sob a pasta. Espero que isso ajude alguém, já que esse material é um pouco complicado e não muito intuitivo.

    
por 03.11.2012 / 17:36
12

Para acompanhar sua resposta aceita ...

Você pode combinar esses comandos como:

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/
    
por 20.05.2016 / 17:05
2

setfacl no linux tem as opções -d e -k para manipular as permissões padrão, que são provavelmente o que você está procurando (veja man para mais informações).

    
por 02.11.2012 / 20:12
1

É fácil definir recursivamente permissões simples do UNIX sob demanda de um usuário devidamente autorizado, as permissões de diretórios e arquivos. Não é possível impor automaticamente isso.

Você pode dizer aos usuários para usarem o conjunto do umask de 0002, e isso ajuda a criar novos arquivos em 0775 (dependendo do aplicativo). Mas não é aplicável.

Meu entendimento é que as ACLs não são herdadas em sistemas UNIX / Linux. Eles são definidos sob demanda.

Quanto à propriedade de arquivos / diretórios, você está sem sorte aqui.

Quanto à propriedade do grupo de arquivos / diretórios, definindo o diretório set-gid bit (ou seja, g + s em DIRECTORIES), isso faz com que a propriedade do grupo seja herdada.

O que eu fiz em tais situações é executar um cron script raiz periódico que redefine permissões / propriedades não conformes ao padrão em tais diretórios.

Outro processo (NÃO RECOMENDADO) é ter o mesmo user-id a ser usado ao trabalhar com esses arquivos. Isso pode ser feito pelo usuário que está efetuando login no sistema com seu próprio UID e usando sudo ou su para executar como o ID. Isso ainda não é 100%, especialmente sobre ACLs e bits de permissão.

    
por 02.11.2012 / 18:56