chown - Operação não permitida


37

Estou logado como minime.

Não entendo por que não me permite exibir o arquivo que possuo sem privilégios. Obviamente, posso usar o sudo, mas gostaria de entender por que? por causa do grupo de dados www?

chown minime:www-data user-functions.php

ls -lh

-rw-r--r--  1 minime minime    24K Jan  6 16:11 user-functions.php

Error:

chown: changing ownership of `user-functions.php': Operation not permitted

Respostas:


51

Usuários não privilegiados (não raiz) não podem chownarquivar para outros nomes de usuário. Para usar chown, um usuário deve ter os privilégios do usuário de destino. Em outras palavras, apenas rootpode dar um arquivo para outro usuário.

Como explicado aqui (obrigado @slhck):

Somente processos com um ID de usuário efetivo igual ao ID do usuário do arquivo ou com privilégios apropriados podem alterar a propriedade de um arquivo. Se _POSIX_CHOWN_RESTRICTED estiver em vigor para o caminho:

  • A alteração do ID do usuário é restrita a processos com privilégios apropriados.

  • É permitido alterar o ID do grupo para um processo com um ID do usuário efetivo igual ao ID do usuário do arquivo, mas sem privilégios apropriados, se e somente se o proprietário for igual ao ID do usuário do arquivo ou (uid_t) -1 e o grupo for igual ao ID do grupo efetivo do processo de chamada ou a um de seus IDs de grupo suplementares.

A lógica por trás disso tem sido muito bem explicado por @Gilles em esta resposta Unix e Linux:

O motivo dessa restrição é que a distribuição de um arquivo a outro usuário pode permitir que coisas ruins aconteçam em situações incomuns, mas ainda importantes. Por exemplo:

  • Se um sistema tiver cotas de disco ativadas, Alice poderá criar um arquivo gravável em mundo em um diretório acessível apenas por ela (para que ninguém mais possa acessar esse arquivo gravável em mundo no diretório) e, em seguida, executar chown para tornar esse arquivo pertencente a outro usuário Bill. O arquivo será contado na cota de disco de Bill, embora apenas Alice possa usá-lo.
  • Se Alice distribuir um arquivo para Bill, não há vestígios de que Bill não criou esse arquivo. Isso pode ser um problema se o arquivo contiver dados ilegais ou comprometedores.
  • Alguns programas exigem que seu arquivo de entrada pertença a um usuário específico para autenticar uma solicitação (por exemplo, o arquivo contém algumas instruções que o programa executará em nome desse usuário). Geralmente, esse não é um design seguro, porque, mesmo que Bill tenha criado um arquivo contendo instruções sintaticamente corretas, ele pode não ter a intenção de executá-las nesse momento específico. No entanto, permitir que Alice crie um arquivo com conteúdo arbitrário e recebê-lo como entrada de Bill só pode piorar as coisas.


Obrigado @slhck Verifiquei a manpágina e não consegui encontrar uma menção explícita, resposta atualizada.
terdon

ótimo! muito claro agora ... e se minime fizer parte do grupo www-data?

@SandroDzneladze não, você precisa ter o mesmo ID de usuário que o usuário que deseja escolher.
terdon
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.