我有两个目录:"公共"和"私人".我有三个用户:"chris","john","dan".我有两个小组:"pub","priv"和"god".
作为根:
useradd chris
useradd john
useradd dan
usermod -g god chris
usermod -g pub john
usermod -g priv dan
chgrp god public private
chgrp pub public
chgrp priv private
su chris
作为"克里斯":
cd public/
touch test =许可被拒绝
其他用户也一样......在"dan"下我对"private"目录没有权限,"dan"是"priv"组的成员.
你有什么主意吗?
Bra*_*ley 15
好吧,我知道这是相对陈旧的,但twalberg是正确的:实际上有一种相对简单的方法来实现POSIX ACL.它们自90年代末/ 2000年初就存在,所以我不知道为什么更多的人不使用它们.
怎么做:按照你已经完成的方式执行,然后只需执行以下命令:
# setfacl -m g:god:rwx public private
Run Code Online (Sandbox Code Playgroud)
在一个命令中,你得到了你想要的东西.你会花费永远的努力来弄清楚如何使用传统的unix权限来做到这一点.
Mikic的建议可能仍然很好(取决于你想要完成的事情),并且可能更直接地在你的权限中引用尽可能少的组(或者你可能希望它显而易见"chris"isn'常规用户,但是管理用户,再次取决于您想要构建的用户).
我提供了更接近你想要完成的东西的东西,因为在某些情况下你可能试图让一个辅助用户/组访问一个目录,但是你不想在"chris"无法访问之间做出选择.这两个目录和"chris"访问所有其他文件和目录"pub"和"priv"可能有权访问.使用ACL,您无需做出这些选择,这就是为什么它们被添加并且现在是大多数Unix(以及BSD和Linux)平台的核心部分.
您说“pub”组应该是唯一拥有“public”权限的组。但在此之前你说过“上帝”也应该有访问权。因此“pub”不可能是唯一有权访问的人。“私人”也是如此。
你还说:
我有两个组:“pub”、“priv”和“god”。
嗯,这是三组。(让我想起那句名言:“这个世界上有三种人:会数数的人和不会数数的人。”:-P)
你的基本概念似乎是错误的。这个工作的方式相当简单。创建两个组“pub”和“priv”。相应地放置需要访问目录的所有用户。需要访问这两个目录的用户应该属于这两个组。
在这种情况下,“chris”应同时放入“pub”和“priv”组中。“john”应该放在“pub”组中。“dan”应该放在“priv”组中。
您想要做的是让目录由两个组拥有。那是不可能的。可以属于多个组的是用户,而不是文件或目录。你只是把它弄反了:-)
| 归档时间: |
|
| 查看次数: |
27845 次 |
| 最近记录: |