Я использую Rsync для развертывания на удаленном сервере, который работает. Однако владелец файла и каталога всегда заменяет старые файлы на root: root
Мне нужно, чтобы право собственности на все файлы и папки, переданные в папку назначения на удаленном сервере, было изменено на www-data: www-data.
Мне нужно получить доступ к серверу как root через ssh, так как у меня нет пароля для www-data. На данный момент мне нужно передать все файлы, а затем запустить команду chown в Терминале, но я бы хотел автоматизировать это.
На данный момент я пытаюсь сделать следующее, но это не работает и не передает файлы.
'rsync -rlDvz -e "ssh -o StrictHostKeyChecking = no -o UserKnownHostsFile = / dev / null" --progress --exclude exclude
--exclude .htaccess --exclude site / accounts source
корень @ip
:dest
&& chown -R user
:group
dest
'
Спасибо
Rsync имеет --usermap и --groupmap в версии 3.1.0 и выше.
https://rsync.samba.org/ftp/rsync/src/rsync-3.1.0-NEWS
Итак, если у вас версия 3.1 или выше, вы можете использовать либо --usermap = www-data: www-data или --chown = www-data: www-data в команде rsync, как показано ниже
rsync --chown=user:group -rlDvz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress source user@ip:dest
Пытаться rsync -aAX
Это должно передать как право собственности / группу, так и расширенный атрибут (например: selinux)