Как установить права доступа к файлам / папкам с помощью Rsync из Windows в Linux

11

Я хочу перенести множество файлов / папок из Windows в Linux, используя Rsync. На linux-сервере (назначение) я хочу, чтобы разрешение для файла было установлено на 644, а разрешение на папку - на 755. Если возможно, я хочу, чтобы для всех файлов / папок было установлено значение root.root. Я пробовал опцию -p, но она не работает. Спасибо за любую помощь.

garconcn
источник
Попробуй umask 022перед своей копией.
BillThor

Ответы:

23

Вы можете установить перманент с помощью --chmodпараметра, например

--chmod=Du=rwx,Dgo=rx,Fu=rw,Fog=r 

принудительно установит для разрешений 755 для Dкаталогов и 644 для Fфайлов.

иан
источник
Благодарю. Папка, кажется, изменится на 744 (drwxr - r--). Во всяком случае, я решил изменить разрешение после передачи.
garconcn
7
Он --chmodтакже принимает восьмеричные числа режима, которые, по моему мнению, легче визуализировать предоставленное разрешение:--chmod=D2775,F664
Фред Уэрджес
Вы также можете использовать --chmod o=rXдля автоматического присвоения папкам xфлажка, но не указывать его в файлах.
hachre
Вам также нужно указать --perms?
OrangeDog
9

Синтаксис аргумента --chmod, упомянутый выше, не совсем точен. Когда вы указываете владельца, группу или другое и не ставите перед ним букву «D» или «F», он применяет это ко всем типам файлов и применяет последний найденный параметр по умолчанию. Это объясняет, почему ваши каталоги выходили как 744, так как последний параметр в аргументе был og = r.

Попробуйте это вместо этого:

--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r
Нед В.
источник