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

Могу ли я изменить владельца всех файлов определенного пользователя?

Есть ли способ рекурсивно найти все файлы, принадлежащие пользователю, и изменить их на другого пользователя / группу в 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 /


More specifically I'm migrating a server from OpenSuse to debian, and the user and group of apache2 differ between the distributions. In OpenSuse its user 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/