Список всех файлов, принадлежащих root, в некорневых папках

Список всех файлов, принадлежащих root, в некорневых папках

Мне нужно провести аудит, касающийся удаления привилегий root для сервера. Чтобы свести к минимуму риск того, что что-то сломается или пойдет по пути додо, я хочу найти все файлы/папки, принадлежащие root, внутри папок, не принадлежащих root.

Есть ли способ найти и перечислить такие файлы, как:

> 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]

как

/bin/opt/monit
...

Спасибо.

решение1

1

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

findДля каждого каталога, не принадлежащего пользователю root, выполняется отдельный вызов , в котором перечисляются прямые дочерние каталоги, принадлежащие пользователю root.

2

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

Для каждого файла, владельцем которого является root, запускается отдельная оболочка, которая проверяет, не принадлежит ли родительский каталог пользователю root.


Две команды имеют разную производительность. Первая создает дочерний процесс для каждого каталога, не принадлежащего root. Вторая команда создает два процесса для каждого файла, принадлежащего root. Если вы ожидаете относительно немного таких каталогов и много таких файлов, используйте (1). Если вы ожидаете много таких каталогов и мало таких файлов, используйте (2) может быть.

Как правило, файлов у вас больше, чем каталогов, поэтому вам следует предпочесть (1).

Связанный контент