a c*_*der 13 users acl permissions defaults group
使用这篇有用的帖子,我可以在文件夹中设置默认组和文件权限。
我在设置默认所有者 (teamlead uid 1234) 时遇到问题。
setfacl -d -m g::rwx /my/test/folder
setfacl -d -m o::rx /my/test/folder
getfacl /my/test/folder
# file: /my/test/folder
# owner: teamlead
# group: web_prod
# flags: -s-
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
Run Code Online (Sandbox Code Playgroud)
接着就,随即:
[mary@boxen]# touch /my/test/folder/somefile
[mary@boxen]# ll /my/test/folder/somefile
-rw-rw-r--. 1 mary web_prod 0 Nov 6 08:58 somefile
Run Code Online (Sandbox Code Playgroud)
因此分配了正确的组,但新文件拥有创建文件的用户的所有权。我希望新创建的文件具有 teamlead:web_prod 所有者/组。
似乎setfacl
也可以用来设置默认用户。使用现有文件夹 acl config(上图):
[mary@boxen]# setfacl -d -m u:1234:rwx /my/test/folder
Run Code Online (Sandbox Code Playgroud)
现在以不同的用户身份创建一个文件。我希望它拥有 teamlead:web_prod 所有权。
[mary@boxen]# touch /my/test/folder/anotherfile
[mary@boxen]# ll /my/test/folder/anotherfile
-rw-rw-r--+ 1 mary web_prod 0 Nov 6 08:58 somefile
Run Code Online (Sandbox Code Playgroud)
新文件仍然拥有创建文件的所有者的所有权,而不是 uid 1234(teamlead)。
我所追求的甚至是可能的,还是我解决这个问题的方式是错误的?
Mic*_*ann 19
使用 setfacl,您可以为新创建的文件设置默认权限,但不能设置默认所有者/组。
要让特定用户拥有新文件,您需要一个 setuid 位,其作用类似于目录上的 setgid 位。不幸的是,这没有实施。
使用 setfacl,您可以做一些在大多数情况下几乎等效的事情:您可以设置 ACL 之类的default:user:teamlead:rwx
(例如setfacl -d -m u:teamlead:rwx foo
)。这样指定的用户可以写入新文件,即使其他人拥有它。
Gil*_*il' 11
始终创建一个新文件,该文件属于正在运行创建文件的进程的用户。(准确地说是有效用户 ID。)这不能改变,因为允许用户创建属于其他用户的文件将是安全漏洞,类似于允许非 root 用户放弃文件。
无论你想做什么,你都不需要这样做。ACL 足以确保以后需要读取文件的任何内容都具有足够的权限。保留创建它的用户拥有的文件。