Я шукаю команду Linux, яка може змінити право власності на всі файли, що належать даному користувачеві, бажано в цільовому каталозі, на іншого вказаного користувача.
Моя команда мрії виглядала б приблизно так ...
chuser -R --olduser tom --newuser jerry
або
chuser -R --olduser 1066 --newuser 1492
Це мій сценарій ... У мене є резервний файл (.tgz) із збереженою в ньому інформацією про користувачів та групи. Це було взято з веб-сервера під управлінням Apache та MySQL. Файли в резервній копії представлені з усієї системи і містять файли від кількох різних користувачів та декількох облікових записів системного типу, і важливо, щоб після відновлення на новому сервері налаштування не втрачалися. Проблема полягає в тому, що користувачі на машині відновлюють файли, щоб вони не відповідали тим, які є у файлі резервного копіювання. Наприклад, обидві машини мали користувача MySQL, але вони мають різні ідентифікаційні дані користувачів, і є кілька ідентифікаторів користувачів, які існували на обох машинах, які належать різним користувачам. Це означає, що немає можливості синхронізувати користувачів на новій машині з тими на старій машині.
Я можу знайти всі файли користувачів за допомогою команди find, як це ...
find /decompressed-backup-dir -uid 1050
або
find /decompressed-backup-dir -user tom
Якщо, як я підозрюю, немає можливості зробити те, що я хочу, за допомогою однієї команди, можливо, є спосіб передавати результати команди find до іншої команди для обробки зміни власності?
Я міг би зробити це за допомогою PHP-скрипту, але в резервній копії є 4 ГБ і десятки тисяч файлів, тому я не хочу використовувати PHP або Perl, але я був би задоволений сценарієм оболонки, який міг би це обробити.
-uid
я використав-user