/home/userA/transfer와 /home/userB/transfer를 동기화하는 방법은 무엇입니까?

/home/userA/transfer와 /home/userB/transfer를 동기화하는 방법은 무엇입니까?

/home/userA/transfer와 /home/userB/transfer를 동기화하는 방법은 무엇입니까?

심볼릭 링크를 생성하려고 합니다. ln -s /home/userA/transfe /home/userB/transfer

심볼릭링크가 작동하지 않습니다..

lrwxrwxrwx   1 centos  centos   40 Feb 12 19:55 transfer -> /home/userB/transfer

답변1

사용자의 홈 디렉토리는 다른 사용자의 액세스에 대해 까다롭습니다. 홈 디렉토리 아래의 모든 항목은 해당 홈 디렉토리의 사용자가 소유해야 합니다. 권한 문제에 직면할 수 있으므로 심볼릭 링크는 확실히 잘못된 방법입니다. 실시간 동기화를 원하지 않고 가끔 동기화만 원하는 경우 두 디렉터리 모두에 액세스할 수 있어야 하며 가장 가능성이 높은 옵션은 수퍼유저가 되는 것입니다. 그런 다음 동기화를 수행하고 자연 소유권을 복원할 수 있습니다. 취할 수 있는 경로는 다음과 같습니다.

id userB  # figure out the group of the userB, suppos the output is groupB
sudo -i   # become a superuser
rsync  -aP /home/userA/transfer/ /home/userB/transfer/ #sync using rsync
chown -R userB.groupB /home/userB/transfer # restore ownership

이것이 효과가 있다면 이를 비대화형 한 줄 명령으로 최적화할 수 있습니다.

sudo bash -c "rsync -a /home/userA/transfer/ /home/userB/transfer/ && chown -R userB.$(id -gn userB) /home/userB/transfer/"

고쳐 쓰다한 가지 예:

→ sudo ls -al /home/joker/trans/
total 8
drwxrwxr-x. 2 joker joker 4096 Feb 12 20:44 .
drwx------. 9 joker joker 4096 Feb 12 20:33 ..
-rw-rw-r--. 1 joker joker    0 Feb 12 20:33 file1
-rw-rw-r--. 1 joker joker    0 Feb 12 20:33 file2

→ sudo ls -al /home/vagrant/trans/
total 8
drwxrwxr-x. 2 vagrant vagrant 4096 Feb 12 20:33 .
drwx------. 4 vagrant vagrant 4096 Feb 12 20:34 ..
-rw-rw-r--. 1 vagrant vagrant    0 Feb 12 20:33 file1

→ sudo bash -c "rsync -aP /home/joker/trans/ /home/vagrant/trans/ && chown -R vagrant.$(id -gn vagrant) /home/vagrant/trans"
sending incremental file list
./
file2
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/3)

여기서는 사용자 joker의 trans 하위 디렉터리가 사용자 vagrant와 동기화되었습니다. 사용자와 함께 재현해 보고 차이점을 확인하세요. (조커는 sudo 권한을 가지고 있습니다)

(*) rsync 명령의 후행 슬래시는 중요합니다.

관련 정보