Linux

我可以更改特定使用者的所有文件的所有權嗎?

  • May 22, 2014

有沒有辦法遞歸查找使用者擁有的所有文件並將它們更改為 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 中使用它的 userwwwrun (id:30)和 group www (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/

引用自:https://serverfault.com/questions/377936