rsync + chmod несколько файлов

У меня есть исходная папка

источник /

-rw-r--r-- 1 27773 27773 12 Mar 23 21:41 aws-1                                                                                         
-rw-r--r-- 1 27773 27773 12 Mar 23 21:41 aws-2 

папка назначения еще не существует. И я пробую к rsync 2 aws файла в папку назначения. Вот моя команда:

rsync \
--include="aws*" \
--exclude="*" \
-avh --chmod=a=rw "source/." "destination"

То, что я пытаюсь сделать, является к rsync 2 aws файлами, и измените их полномочия однажды в папке назначения. После выполнения команды я получил ошибку, и файлы не находятся в папке назначения. Только папка создается. Вот ошибка:

sending incremental file list                                                                                                          
created directory destination                                                                                                          
rsync: failed to modify permissions on "/home/cg/root/destination/.": Permission denied (13)                                           
rsync: recv_generator: failed to stat "/home/cg/root/destination/aws-1": Permission denied (13)                                        
rsync: recv_generator: failed to stat "/home/cg/root/destination/aws-2": Permission denied (13)                                        
./                                                                                                                                     

sent 88 bytes  received 346 bytes  868.00 bytes/sec                                                                                    
total size is 24  speedup is 0.06                                                                                                      
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]

Это говорит что разрешение, отклоненное, не копируя файлы. Я уже не понимаю который проблема причины разрешения. Мой исходный файл и каталог кажутся прекрасными. Созданная папка назначения кажется также прекрасной.

PS: Я точный моя команда rsync происхожу в сценарии удара

1
задан 24 March 2017 в 00:56

1 ответ

Каталоги должны выполниться, разрешение для процессов к доступу (открывают) их.

Когда Вы используете --chmod=a=rw, целевой каталог создается, но затем сразу установил свои полномочия на drw-rw-rw таким образом, что его содержание становится недоступным ("failed to stat"), например, данный

$ tree
.
└── source
    ├── file1
    ├── file2
    └── file3

1 directory, 3 files

затем

$ rsync --include="file*" --exclude="*" -avh --chmod=a=rw source/ destination/
sending incremental file list
created directory destination
rsync: failed to modify permissions on "/home/steeldriver/destination/.": Permission denied (13)
rsync: recv_generator: failed to stat "/home/steeldriver/destination/file1": Permission denied (13)
rsync: recv_generator: failed to stat "/home/steeldriver/destination/file2": Permission denied (13)
rsync: recv_generator: failed to stat "/home/steeldriver/destination/file3": Permission denied (13)
./

sent 107 bytes  received 502 bytes  1.22K bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]

сбои, потому что

$ ls -dl destination/
drw-rw-rw- 2 steeldriver steeldriver 4096 Mar 23 18:24 destination/

так, чтобы

$ ls -al destination/
ls: cannot access 'destination/.': Permission denied
ls: cannot access 'destination/..': Permission denied
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..

Решение состоит в том, чтобы использовать --chmod=a=rwX (или, эквивалентно, --chmod=ugo=rwX)

$ rsync --include="file*" --exclude="*" -avh --chmod=ugo=rwX source/ destination/
sending incremental file list
created directory destination
./
file1
file2
file3

sent 224 bytes  received 110 bytes  668.00 bytes/sec
total size is 0  speedup is 0.00

где X символьные средства режима

execute/search only if the file is  a  directory  or
already  has  execute permission for some use

Посмотрите man chmod

0
ответ дан 8 December 2019 в 06:06

Другие вопросы по тегам:

Похожие вопросы: