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


11

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


Попробуй 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.