Я использую этот вызов rsync для резервного копирования моего домашнего каталога:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
Страница man rsync говорит, что -a подразумевает -g и -o (среди других ключей), что должно сохранить владение. Однако я заметил, что если каталог не существует в каталоге $BACKUP_MNTPOINT/$USER_HOME
, он создается с правами root: root вместо правильного. (Это происходит только с каталогами прямо под $BACKUP_MNTPOINT/$USER_HOME
). Это почему?
$BACKUP_MNTPOINT
это локально установленный диск. $BACKUP_MNTPOINT/$USER_HOME
действительно имеет право собственности и разрешения. Ни, $USER_HOME
ни $BACKUP_MNTPOINT
конец с косой чертой.
И исходная, и целевая файловые системы являются XFS, и при запуске mkdir $BACKUP_MNTPOINT/$USER_HOME
создается каталог с ожидаемым владельцем.
files
permissions
users
rsync
kralyk
источник
источник
$BACKUP_MNTPOINT
и с какими опциями она монтируется? Это происходит только для$BACKUP_MNTPOINT/$USER_HOME
каталога parent ( ) или для всех созданных каталогов? Есть$BACKUP_MNTPOINT
и$USER_HOME
заканчиваться символом/
?/home
и резервного диска. Пока что я думаю, что это произошло только для родительских каталогов. Ни,$BACKUP_MNTPOINT
ни$USER_HOME
конец с косой чертой. РЕДАКТИРОВАТЬ: я могу подтвердить сейчас, это происходит только с каталогами прямо ниже$BACKUP_MNTPOINT/$USER_HOME
$BACKUP_MNTPOINT/$USER_HOME
есть права доступа, но нет подкаталогов? Пожалуйста, отредактируйте свой вопрос и добавьте эти детали. Также уточните,mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
создает ли каталог, принадлежащий вашему пользователю, если вы делаете это вручную.mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
создает каталог с правами пользователя.strace
(как указано в псевдо-ответе).Ответы:
У меня была похожая проблема при использовании
rsync
для резервного копирования моей системы на моем сервере. Я использовал:Решение состоит в том, что на самом деле нет проблемы. Я подозреваю, что вы прервали
rsync
процесс, как только увидели, что он создает папки с неправильными правами доступа. Суть в том, чтоrsync
только устанавливает разрешения для родительской папки, как только она выполнит синхронизацию всех подпапок и файлов из нее.источник
Возможно, запустите rsync через strace / truss и посмотрите, не получите ли вы ошибку из системного вызова chown (), а также убедитесь, что chown () имеет правильный путь и UID / GID.
источник