Usando setfacl para permitir que membros do grupo gravem em qualquer arquivo em um diretório

10

Gostaria de usar o setfacl para que qualquer pessoa no grupo 'app' possa editar qualquer arquivo contido em / usr / local / users / app, independentemente do que as permissões tradicionais do UNIX digam. Eu tenho dois usuários john e ben. Tentei seguir a instrução de outro pergunta , mas john não é capaz de escrever em alguns arquivos. Parece que isso é por causa da máscara acl. No entanto, eu configurei a máscara padrão no diretório do rwx, então os arquivos dentro dela não devem herdar quando criados?

Por exemplo john não pode escrever no arquivo abaixo, mas ele é um membro do grupo 'app' que escreveu o acls no arquivo, então estou surpreso que ele não possa editar o arquivo.

ben@app1:/usr/local/users$ ls -la app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
-rw-r--r--+ 1 ben users 38326 Apr  2 10:21 app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar

ben@app1:/usr/local/users/app$ getfacl app-1.0-SNAPSHOT/lib/
# file: app-1.0-SNAPSHOT/lib/
# owner: ben
# group: users
user::rwx
group::rwx          #effective:r-x
group:app:rwx       #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::rwx
default:group:app:rwx
default:mask::rwx
default:other::r-x

ben@app1:/usr/local/users$ getfacl app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
# file: app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar
# owner: ben
# group: users
user::rw-
group::rwx          #effective:r--
group:app:rwx       #effective:r--
mask::r--
other::r--
    
por Ben McCann 08.04.2013 / 21:43

2 respostas

6

Você notará o comentário "efetivo" que o getfacl está descartando para você. A questão é que as permissões estão calculando para que "app" não esteja recebendo o bit de gravação definido. Isso está acontecendo porque a máscara no arquivo está definida como somente leitura. A máscara é usada para limitar a quantidade de permissões que poderiam ser fornecidas em um determinado arquivo ou diretório.

Um exemplo de por que você gostaria que esse comportamento fosse como se soubesse que o arquivo poderia legitimamente precisar de diferentes usuários / grupos para ter acesso a ele, mas por algum motivo as coisas estavam ficando complicadas com permissões e você queria uma maneira de dizer " Quaisquer que sejam as outras permissões padrão, seja qual for a participação de seus grupos, ou qualquer setfacl recursivo executado posteriormente, DEFINITIVAMENTE NÃO DÊ ISSO ! " O usuário proprietário tem um status especial no mundo POSIX, ele tem direitos que outros usuários não têm, como a capacidade de ser não-root e alterar permissões em um arquivo e ter seus direitos não limitados pela máscara (o que seria inútil de qualquer maneira por causa do primeiro privilégio que o sistema lhes dá). É por isso que eles ainda obtêm o rwx mesmo que a máscara seja restrita.

Para responder à sua pergunta específica, : adicione o bit de gravação à máscara no arquivo e tente novamente como o john user.

aqui é uma versão de linha de comando da explicação acima, observe como os direitos "efetivos" mudam quando tudo que eu modifico é a máscara.

    
por 08.04.2013 / 22:29
0

É impossível. cp, rsync, etc. cria arquivos ignorando as ACLs padrão

link

    
por 09.04.2013 / 08:15