在控制两个用户帐户时是否可以更改文件的用户?

在控制两个用户帐户时是否可以更改文件的用户?

我在一台机器上控制两个用户帐户,但我不是 root 用户。是否可以将一些文件从一个帐户“赠送”给另一个帐户?

理由:我在机器上设置了一个裸 git 存储库作为原始存储库。现在,我希望该存储库中的文件由用户“git”而不是我的个人帐户拥有。在这种特殊情况下,我可能还可以将副本克隆为“git”,删除裸存储库并将克隆(需要使其裸露)放在该位置。尽管这很乏味,但出于普遍的好奇心,我会对答案感兴趣。

答案1

您可以使用 ACL 将主目录中的文件的权限授予其他用户。设置ACL的命令是setfacl

假设您控制的帐户是约翰史密斯。现在,如果想要史密斯拥有对文件的完全访问权限约翰的主目录,然后他可以运行setfacl命令约翰有这些选项:

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

上述setfacl命令将为用户提供史密斯对主目录的完全访问权限约翰。该命令必须由正在访问的目录的所有者执行(约翰在本例中)或 root 。

您可以修改权限或目录名称,或者告诉setfacl命令是否必须将访问权限授予用户或组。例如:

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

上述命令将为用户提供史密斯对 /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

答案2

您需要成为 root 用户才能更改(放弃或占用)文件/目录所有权。

相关内容