Назад | Перейти на главную страницу

Как в Linux составить список файлов, принадлежащих определенному владельцу, а затем исправить группу и владельца?

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

Я играю с такими командами, как:

find /folder -type f | xargs ls -l | grep "root root" 

но выходит тоже много мусора.

Я хочу сначала составить список, а затем после подтверждения изменить только файлы в этом списке.

find /folder -type -f -uid 0 

найдет все файлы в каталоге, принадлежащем пользователю root, -user root тоже будет работать, естественно.

Если все файлы ниже /folder должен принадлежать тому же пользователю / группе, вы можете просто выполнить рекурсивный chown:

chown -R user:group /folder

Использовать

find /folder -uid 0 >/tmp/root.files

чтобы получить список файлов, принадлежащих пользователю root. После просмотра списка вы можете использовать

while read file 
do
    chown user:group "$file"

done </tmp/root.files

Как и в других ответах, используйте find либо с -uid 0 или -user root найти файлы, принадлежащие корню. Затем используйте -execдействие:

find /folder -type f -uid 0 -exec chown root:root {} \;