Как установить разрешения для назначения с помощью rsync (chown chmod)

13

Я пытаюсь выполнить локальную rsync из точки монтирования в локальную папку. Мне нужно установить владельца, группу и права доступа к конкретным настройкам. Вот что я использую:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test

Я получаю права доступа 760 как для каталогов, так и для файлов, и root: root для владельца (rsync запускается от имени root).

Что я делаю неправильно?

ТИА

Роджер Криси
источник
Является ли целевая файловая система чем-то вроде NTFS, так как это «Drive_D»?
Сами Кухмонен
целевая файловая система ext4
Roger Creasy
Поможет ли добавление -p?
Сами Кухмонен
-p заставляет chmod работать с перемещенными файлами. Мне нужно проверить, чтобы убедиться, что он не перезаписывает разрешения для любых существующих файлов. Спасибо. И у меня все еще есть проблема chown
Roger Creasy
1
Для этого вам на самом деле нужно -ог, я думаю,
Сами Кухмонен

Ответы:

19

rsync нужно сообщить, что вы хотите установить права доступа и информацию о владельце / группе. Было бы логично предположить, что имея --chmodили --chownскажет это, но они этого не делают.

Для разрешений на распространение вам нужен флаг --permsили, -pа для владельца / группы вам нужны --owner --groupили -ogфлаги для информации о владельце / группе / разрешении.

Документация немного неясно написана, поэтому неясно, как обрабатываются разрешения с различными комбинациями или затрагиваются ли существующие файлы.

Сами Кухмонен
источник
До сих пор неясно, потому что при запуске от имени sudo, что мне и нужно, документы linux.die.net/man/1/rsync указывают, что вы можете установить пункт назначения так же, как и источник. Проблема в том, что мне нужно установить, каким является зарегистрированный пользователь, например$(whoami)
Брайан Томас,
2

Я нашел эту версию StackOverflow с тем же вопросом более полезной, потому что кажется, что у нас с Роджером есть rsyncs с разными настройками формата --chmod(у меня 3.1.3 из пакета Debian).

Как сказал Сами, rsync нужно сообщить «разрешения», поэтому либо включите -p, либо включите его неявным образом с помощью -a. Но затем, чтобы команда действительно выполнялась, вам нужен (например, для каталогов 755 и файлов 644) --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r, а не формат «D755, F644».

FarFetchd
источник