Право собственности на файлы в целевом каталоге полностью определяется целевой учетной записью, используемой для их создания / передачи. (Для обычных учетных записей невозможно изменить владельца файлов.)
Если вы хотите, чтобы целевые файлы принадлежали apache
, на ум приходят четыре варианта
Перенести файлы, вход в целевую учетную запись как пользователь apache
. С сертификатом ssh
вы можете избежать необходимости встраивать пароль. Вы также можете настроить соединение ssh
, чтобы запрещать любые операции, кроме запуска службы rsync
.
Извлечь файлы с целевого хоста.Вы можете настроить это задание на частое выполнение под cron ( rsync
без работы может быть относительно дешевым вариантом), или вы можете проверить его на наличие триггера, такого как создание файла, и только если который активируется, запускает полный процесс rsync
.
В этой ситуации я бы запустил cron
на вашем целевом хосте, проверяя наличие файла локально каждые пять минут с помощью такого фрагмента
test -f "$ HOME" /. Rsync_trigger && rsync ... && rm -f "$ HOME" /. rsync_trigger
Используйте inotifywait
для исправления прав собственности на файлы после того, как файлы были скопированы. Это потребовало бы, чтобы процесс запускался от имени пользователя root, но он мог бы быть полностью автономным, чтобы он мог изменять права собственности только на файлы, принадлежащие centos
в целевом каталоге apache
.
Скопируйте файлы с rsync
, запущенным от имени пользователя root. Не идеально, но может понадобиться, если все остальное не поможет.
Вы можете проверить, включен ли он или отключен, используя эту команду:
systemctl list-unit-files --type=service
Где "--type=service
" поможет вам сузить список только до служб.
И вы можете включить/выключить службы с помощью команд:
systemctl enable httpd
systemctl disable httpd