Symlink

如何同步 /home/userA/transfer 和 /home/userB/transfer?

  • March 4, 2020

如何同步 /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

使用者的主目錄對其他使用者的訪問很挑剔。家庭目錄下的所有內容都應該歸該家庭的使用者所有。您可能面臨權限問題,因此符號連結絕對是錯誤的方式。如果您不想要實時同步並且只不時進行同步,您應該有權訪問兩個目錄,最有可能的選擇是能夠成為超級使用者。然後您可以執行同步並恢復自然所有權。這裡是你可以去的方式:

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 命令中的斜杠,它們很重要

引用自:https://unix.stackexchange.com/questions/567242