Altere a propriedade do diretório de propriedade do root

1

Como usuário não privilegiado, possuir um diretório em um sistema de arquivos EXT4 no qual tenho todos os direitos necessários ( rwx ) me dá a possibilidade de alterar o conteúdo e a propriedade dos arquivos (por exemplo, vim file e :w! ) dentro dele mesmo que sejam de propriedade do root e mesmo que eu não tenha o direito de alterá-los ( root:root e 0644 ).

Isso é de alguma forma possível com um diretório de propriedade do root, se esse diretório estiver dentro de um diretório de propriedade do meu usuário não privilegiado?

    
por chevallier 05.01.2018 / 19:59

2 respostas

3

O proprietário de um diretório pode alterar o conteúdo do diretório da maneira que quiser. Mesmo que haja um arquivo no diretório que não seja permitido ao proprietário do diretório gravar, o proprietário do diretório poderá remover esse arquivo e criar um novo arquivo com o mesmo nome.

Mais geralmente, se você tiver permissão de gravação em um diretório, poderá remover e criar arquivos nesse diretório. Assim, você pode alterar os arquivos nesse diretório, não escrevendo para eles se não tiver permissão de gravação no arquivo, mas excluindo o arquivo existente e criando um novo arquivo com o mesmo nome.

Se você possui um diretório parent e ele contém um subdiretório child de propriedade de root e você não tem permissão de gravação em child , não é possível modificar arquivos em child . No entanto, você pode renomear child e criar um novo subdiretório chamado child , que será de sua propriedade e, portanto, poderá conter o que você quiser.

É por isso que verificações de segurança que verificam o controle de arquivos (por exemplo, as verificações de integridade que o OpenSSH faz em arquivos de chaves privadas) verificam toda a cadeia de diretórios até a raiz. Da mesma forma, se você der a um usuário sudo direitos para executar um arquivo, todo o caminho para o arquivo deve ser controlado por root. Por exemplo, não conceda a um usuário sudo direitos para executar um programa que esteja em seu diretório pessoal. (Por outro lado, um programa raiz setuid em qualquer lugar é bom, porque o setuid é anexado ao próprio arquivo, não ao seu caminho.) Qualquer um que controle qualquer etapa intermediária no caminho do diretório pode substituir seu próprio conteúdo, não editando arquivo, mas renomeando um diretório no ponto no caminho.

    
por 06.01.2018 / 12:32
0

Não consigo replicar sua premissa declarada.

Diretório de propriedade de mim contendo um arquivo de propriedade de root:

$ ls -ld mydir mydir/file2
drwxrwxr-x 2 user1 user1 4096 Jan  5 13:52 mydir
-rw-rw-r-- 1 root  root     0 Jan  5 13:52 mydir/file2

Tente reivindicar a propriedade do arquivo root em mydir :

$ chown user1 mydir/file2
chown: changing ownership of 'mydir/file2': Operation not permitted
    
por 05.01.2018 / 21:56