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

Rsync с удаленным сервером и изменение прав собственности на файл / каталог

Я использую 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)