Users
將目錄複製到多個使用者主目錄並更改使用者/組所有權
在我的 Ubuntu 伺服器上,大約有 150 個 shell 帳戶。所有使用者名都以前綴 u12.. 開頭。我有 root 訪問權限,我正在嘗試將名為“somefiles”的目錄複製到所有主目錄。複製目錄後,目錄的使用者和組所有權應更改為使用者的。使用者名、組和主目錄名稱相同。如何才能做到這一點?
以目標使用者身份進行複制。這將自動生成目標文件。確保原始文件是世界可讀的(或至少所有目標使用者都可讀)。
chmod
如果您不希望複製的文件是世界可讀的,請稍後執行。getent passwd | awk -F : '$1 ~ /^u12/ {print $1}' | while IFS= read -r user; do su "$user" -c 'cp -Rp /original/location/somefiles ~/' done
$ basename -a /home/* | xargs -rI{} sudo rsync -a --chown {}:{} somefiles/ /home/{}/
解釋
basename -a /home/*
選擇所有使用者的主目錄並去除他們的路徑名稱。
xargs -rI{}
為標準輸入上的每個條目分別執行以下命令,並替換{}
為條目的文本(在我們的例子中是使用者的目錄)。
rsync -a --chown {}:{} somefiles/ /home/{}/
將您的目錄複製somefiles/
到使用者的主目錄,並將所有者和組替換為使用者名。