Chown

在控制兩個使用者帳戶時可以更改文件的使用者嗎?

  • February 16, 2015

我在我不是 root 的機器上控制兩個使用者帳戶。是否可以將一些文件從一個帳戶“贈送”給另一個帳戶?

理由:我在機器上設置了一個裸 git repo 作為原始 repo。現在,我希望該儲存庫中的文件歸使用者“git”而不是我的個人帳戶所有。在這種特殊情況下,我可能還可以將副本複製為“git”,刪除裸倉庫並將複製(需要將其設為裸)放在該位置。儘管這很乏味,但出於普遍的好奇心,我會對答案感興趣。

您可以使用 ACL 將主目錄中的文件的權限授予其他使用者。設置 ACL 的命令是setfacl.

假設您控制的帳戶是johnsmith。現在,如果希望smith對文件john的主目錄具有完全訪問權限,那麼他可以使用以下選項以johnsetfacl身份執行命令:

setfacl -R -m u:smith:rwx /home/john

上述setfacl命令將為使用者smith提供對**john主目錄的完全訪問權限。此命令必須由正在打開訪問權限的目錄的所有者(在本例中為john)或 root 執行。

您可以修改權限或目錄名稱,或者告訴setfacl命令是否必須將訪問權限授予使用者或組。例如:

setfacl -m u:smith:rx /home/john

上述命令將授予使用者smith對 /home/john 的只讀訪問權限。

[sreeraj@server ~]$ setfacl -m u:soum:rwx /home/sreeraj

在同一台伺服器上:

[soum@server ~]$ cd /home/sreeraj
[soum@server sreeraj]$ touch file_by_soum
[soum@server sreeraj]$ ll file_by_soum
-rw-rw-r-- 1 soum soum 0 फ़रवरी 16 16:27 file_by_soum
[soum@server sreeraj]$

從手冊頁setfacl

EXAMPLES
      Granting an additional user read access
             setfacl -m u:lisa:r file

      Revoking write access from all groups and all named users (using the effective rights mask)
             setfacl -m m::rx file

      Removing a named group entry from a file's ACL
             setfacl -x g:staff file

      Copying the ACL of one file to another
             getfacl file1 | setfacl --set-file=- file2

      Copying the access ACL into the Default ACL
             getfacl --access dir | setfacl -d -M- dir

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