Linux
我可以更改特定使用者的所有文件的所有權嗎?
有沒有辦法遞歸查找使用者擁有的所有文件並將它們更改為 Gnu/Linux 中的另一個使用者/組?
我認為必須有一些神奇的單線,但我的命令行魔法技能達不到那個:)
謝謝!
使用
find
帶有-user
選項的命令。就像是:
find / -user john
最終將顯示使用者“john”擁有的所有文件。
如果您想更改他們的所有權(我會在
find
不執行的情況下執行以確保您擁有所需的列表),那麼類似:
find / -user john -exec chown harry {} \;
會做的。
這已經很晚了,但是今天我偶然發現了這個問題,因為我
rsync
沒有--usermap
選擇。我的
chown
(v. chown (GNU coreutils) 8.13) 提供了一個內置的遞歸 (-R
) 和一個--from
選項,因此您(和我的)問題也可以使用chown -R --from=john harry /
更具體地說,我正在將伺服器從 OpenSuse 遷移到 debian,並且 apache2 的使用者和組在發行版之間有所不同。在 OpenSuse 中使用它的 user
wwwrun (id:30)
和 groupwww (id:8)
,在 debianwww-data (id: 33)
中兩者都使用。在我使用複製文件後rsync -az /path/to/files me@debian:/path/to/
我用了
chown -R --from=30 33 /path/to/files/ chown -R --from=:8 :33 /path/to/files/
在目標(debian)機器上。
注意:
rsync version 3.1.0 protocol version 31
上面提到--usermap
過,所以如果我有的話,我可以在源機器上用一個命令完成所有三個步驟:rsync -az --usermap=30:33 --groupmap=8:33 /path/to/files root@debian:/path/to/