Есть ли способ рекурсивно найти все файлы, принадлежащие пользователю, и изменить их на другого пользователя / группу в Gnu / Linux?
Я предполагаю, что должен быть какой-то волшебный лайнер, но мои навыки волшебства в командной строке не подходят для этого :)
Спасибо!
Использовать find
команда с -user
вариант. Что-то вроде:
find / -user john
в конечном итоге откроет все файлы, принадлежащие пользователю "john".
Если вы хотите сменить владельца (я бы запустил find
без выполнения, чтобы убедиться, что у вас есть нужный список), затем что-то вроде:
find / -user john -exec chown harry {} \;
сделаю это.
Уже поздно, но сегодня я наткнулся на этот вопрос, потому что мои rsync
не имеет --usermap
вариант.
Мой chown
(v. chown (GNU coreutils) 8.13) предлагает встроенную рекурсию (-R
) и --from
вариант, чтобы ваша (и моя) проблема также могла быть решена с помощью
chown -R --from=john harry /
wwwrun (id:30)
and group www (id:8)
, in debian www-data (id: 33)
for both. After I copied the files using rsync -az /path/to/files me@debian:/path/to/
я использовал
chown -R --from=30 33 /path/to/files/
chown -R --from=:8 :33 /path/to/files/
на целевой (debian) машине.
Примечание: rsync version 3.1.0 protocol version 31
имеет вышеупомянутый --usermap
поэтому, если бы у меня было это, я мог бы выполнить все три шага с помощью одной команды на исходной машине:
rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/