chown não é permitido, mas tenho acesso de gravação. Como posso ter propriedade recursiva?

5

Considere o seguinte cenário:

  1. Eu tenho rwx acesso a um diretório como membro do id do grupo do diretório.
  2. O administrador do sistema não permite que os usuários executem chown (consulte este tópico para detalhes)

Como posso obter a propriedade recursiva do diretório?

Acredito que posso fazer o seguinte, supondo que eu queira possuir A

cp -R A B
rm -R A
mv B A

mas isso é entediante e pode exigir uma grande quantidade de espaço se A for grande.

    
por Amelio Vazquez-Reina 29.07.2012 / 23:11

3 respostas

1

Você só precisa realmente se apropriar dos diretórios. Arquivos comuns cuidarão de si mesmos da próxima vez que você modificá-los, links simbólicos e pipes não importam, e eu vou assumir que não existem dispositivos ou outros tipos exóticos.

Você pode fazer uma cópia recursiva dos diretórios, mas criar links físicos a partir dos arquivos regulares, em vez de copiá-los. Com GNU coreutils (Linux, Cygwin):

cp -al A B

Todos os arquivos regulares A/dir/file têm hard-link como B/dir/file . Você pode então remover a árvore de fontes.

Se você não tem o GNU coreutils, você pode usar o rsync:

cd A
rsync -a --link-dest=$PWD . ../B

Para garantir que a exclusão de A não remova realmente nenhum arquivo, verifique se todos os arquivos regulares têm uma contagem de links físicos de pelo menos 2 - o seguinte comando não deve produzir nada:

find A -type f -links 1
    
por 02.08.2012 / 19:10
4

Você pode se apropriar assim:

$ mv A A.old
$ mkdir A
$ mv A.old/* A.old/.[!.]* A.old/..?* A/
$ rmdir A.old
    
por 29.07.2012 / 23:49
0

Qualquer forma de fazer isso que não envolva cópia será executada na regra no-chown. Peça root bem para fazer isso por você.

Se você for ambicioso, poderá criar um novo utilitário semelhante ao chown, projetado para instalação com raiz setuid, que realiza suas próprias verificações de segurança e decide com base em uma regra mais flexível se um chown deve ser permitido.

Se é principalmente sobre o espaço em disco, você só precisa de uma ferramenta que intercala o cp com o rm ...

    
por 29.07.2012 / 23:50