Posso permitir que os usuários façam um chmod de um arquivo que não pertence a eles?

13

Eu gostaria de permitir que os usuários chmod um arquivo que é de propriedade de root ou algum usuário que não é eles próprios. Eu tenho chmod'ed o arquivo para 777 e recebo "operação não permitida". Eu adicionei o usuário ao grupo do arquivo e recebo o mesmo. Por que um usuário não pode chmodar um arquivo para o qual ele tem acesso de gravação?

    
por ashleysmithgpu 15.05.2013 / 10:55

2 respostas

6

Why can't a user chmod a file they have write access to?

Para os direitos de acesso normais, essa é uma decisão de design. Você precisa de richacls : WRITE_ACL e talvez WRITE_OWNER .

    
por 15.05.2013 / 14:19
9

As permissões do Unix são projetadas para serem simples. Você precisa da permissão de leitura para ler um arquivo, a permissão de gravação para gravar em um arquivo e a permissão de execução para executar um arquivo. Você precisa possuir um arquivo para modificar seus metadados¹.

Permitir que um usuário que possa ler um arquivo conceder a outras pessoas a permissão de leitura, ou permitir que um usuário que possa gravar um arquivo para conceder a permissão de gravação a outras pessoas, não mude muito o modelo de segurança. Isso porque as permissões unix são discricionárias: um usuário que pode ler um arquivo pode expor seu conteúdo a outros usuários, mesmo que esses outros usuários não possam ler o arquivo (e, da mesma forma, o usuário pode atuar como proxy e escreva em nome de outros).

Por outro lado, permitir que um usuário conceda permissão que ele não tenha seria completamente quebrar o sistema de permissões: o usuário pode conceder todas as permissões para si mesmo.

É muito raro precisar alterar as permissões de um arquivo que você não possui. Normalmente você deve providenciar para que o arquivo tenha as permissões certas assim que for criado. Se você realmente precisar disso, poderá conceder ao usuário sudo chmod direitos para um modo específico e um arquivo específico (por exemplo, joe: ALL = (ALL) chmod g+r /path/to/file ).

¹ Exceto pelos horários de acesso e modificação, que são específicos porque ler ou gravar no arquivo também os define.

    
por 16.05.2013 / 01:34