rsync
파일 전송 후에는 권한/소유권이 유지되지 않습니다. 이것이 바로 그 장면이다
소스 호스트( 192.168.2.14
파일이 복사되는 호스트):
소스 경로
# ls -l "/shareddata/tesz/"
total 4
drwxrwsr-x 2 root admin 4096 Sep 15 19:38 web
# ls -l /shareddata/tesz/web/
total 0
-rw-rw-r-- 1 askar admin 0 Sep 15 19:38 test1
-rw-rw-r-- 1 dey admin 0 Sep 15 19:38 test2
대상 경로:
# ls -ld /shareddata/
drwxrwxr-x. 4 root admin 4096 Sep 15 19:44 /shareddata/
rsync
파일을 복사하려는 명령은 다음과 같습니다 fsync
.
$ id fsync
uid=700(fsync) gid=502(admin) groups=502(admin)
/usr/bin/rsync -rogp 192.168.2.14:/shareddata/tesz /shareddata/
/usr/bin/rsync -av 192.168.2.14:/shareddata/tesz /shareddata/
rsync
파일이 복사되는 대상 호스트에서 명령을 실행하고 있습니다 . 하지만 파일 전송 후에는 권한/소유권이 유지되지 않는 것을 볼 수 있습니다.
$ ls -l /shareddata/
total 8
drwxrwsr-x 3 fsync admin 4096 Sep 15 19:44 tesz
$ ls -l /shareddata/tesz/
total 4
drwxrwsr-x 2 fsync admin 4096 Sep 15 20:29 web
$ ls -l /shareddata/tesz/web/
total 0
-rw-rw-r-- 1 fsync admin 0 Sep 15 20:29 test1
-rw-rw-r-- 1 fsync admin 0 Sep 15 20:29 test2
rsync
권한을 유지하려면 명령에서 어떤 수정이 필요합니까 ?
답변1
설명에서 언급했듯이 권한을 유지하려면 원격 rsync 프로세스를 슈퍼유저 권한으로 실행해야 합니다. 원격 서버에 sudo 액세스 권한이 있는 경우 이 --rsync-path
옵션을 사용하여 루트로 rsync를 실행할 수 있습니다.
rsync -av --rsync-path "sudo rsync" source/ server:/destination/