Применение схем владения с другого сервера

Допустим, есть два недавно установленных выделенных сервера, с одинаковым программным обеспечением и пользователями на обоих.

Предположим, что по какой-то причине я хотел бы скопировать схемы владения с одного из этих серверов на другой. Возможно ли это?

1
задан 26 June 2017 в 08:48
1 ответ

Первый абзац не имеет смысла, но ваш настоящий вопрос:

Могу ли я восстановить и настроить права доступа к файлам и владения с использованием другого сервера в качестве эталона / шаблона?

Краткий ответ: возможно ...

Более длинный ответ заключается в том, что такая стратегия не сработает для каждого файла, который не существует на обоих серверах. Что касается сценариев, вам нужно будет особенно внимательно относиться к специальным файлам, (символьным) ссылкам, специальным символам в именах файлов / каталогов и т. Д. Команды chown поддерживают флаг - ссылка . Вы можете указать на существующий файл, и chmod будет использовать разрешения этого файла вместо того, чтобы указывать значения MODE при изменении режима файла.
Аналогично chown будет использовать владельца и группу этого справочного файла / каталога, а не указывать значения OWNER: GROUP.

Тогда упражнение:

  1. Сделайте источник, деревья справочных каталогов, которые вам нужны, доступными в качестве шаблона на целевом сервере. (Если у вас достаточно свободного места, просто скопируйте исходный каталог, сохранив права собственности и настройки режима, или, в качестве альтернативы, используйте, например, NFS, чтобы экспортировать дерево исходных каталогов и смонтировать его как шаблон.)
  2. Затем запустите эти грубые find команды, выполняющие chown и chmod :

( Обратите внимание, что это только концептуальные и непроверенные. Добавьте ограничения для find для поиска только файлов и каталогов, например, и опускания следующих символических ссылок и тому подобного ... )
Чтобы сбросить права собственности и режимы на поврежденном / etc / :

cd /template/etc
find . -exec chmod -v --reference='{}' /etc/'{}' \;
find . -exec chown -v --reference='{}' /etc/'{}' \;
1
ответ дан 3 December 2019 в 23:29

Теги

Похожие вопросы