Listar todos os arquivos de propriedade raiz em pastas não raiz

1

Eu tenho que fazer uma auditoria sobre a remoção de privilégios de root para um servidor. Para minimizar o risco de algo quebrar ou seguir o caminho do dodo, eu quero procurar por todos os arquivos / pastas de propriedade da raiz dentro de pastas que não são de propriedade da raiz.

Existe uma maneira de encontrar e listar os arquivos como:

> ls -la
drwxr-xr-x. 24 admin users     4096 Sep 27 12:53 .      [non root folder]
dr-xr-xr-x. 28 root root       4096 Mar 15  2017 ..
drwxrwxr-x.  2 admin users     4096 Sep 27 13:00 bin
drwxr-xr-x.  6 root  root      4096 Feb  9  2017 monit  [root file/folder]

como

/bin/opt/monit
...

Obrigado.

    
por calaedo 27.09.2017 / 14:41

1 resposta

1

1

find /starting/path -type d ! -user root -exec find {} -maxdepth 1 -user root \;

Para todos os diretórios que não são de propriedade do root, um find separado é executado, listando os filhos diretos de propriedade do root.

2

find /starting/path -user root -execdir sh -c 'test 'stat -c %U ./' != root' \; -print

Para cada arquivo possuído pelo root, um shell separado é executado, o que testa se o diretório pai não é de propriedade do root.

Os dois comandos têm desempenho diferente. O primeiro cria um processo filho para cada diretório não pertencente ao root. O segundo comando cria dois processos para cada arquivo de propriedade do root. Se você espera relativamente poucos diretórios e muitos desses arquivos, use (1). Se você espera muitos desses diretórios e poucos desses arquivos, use (2) talvez.

Em geral, você geralmente tem mais arquivos que diretórios, então você deve preferir (1).

    
por 27.09.2017 / 15:10