对此不熟悉,将尽力使其尽可能简单。我有一个 IT 团队和一个营销团队。我希望两个组都可以访问同一目录(即 Retail)。我想做的是让 IT 完全控制零售和营销读/写。
如果我要使用 sudo chmod,我最终会授予这两个组相同的权限。是否有另一种方法可以解决此问题,或者甚至可以为不同的组授予属于同一目录的不同权限?
答案1
您可能需要目录上的 ACL(访问控制列表)。看那些解释来自 Arch Linux 的 wiki 或那些来自Ubuntu的帮助。两者的混合:
安装: acl 软件包是 systemd 的依赖项,应该已经安装。可能需要从存储库安装 acl 实用程序。在服务器版本中,必须执行此操作,但在桌面版本中,默认安装 acl。
$ sudo apt-get install acl
启用 ACL :必须使用 acl 选项挂载文件系统。您可以使用 fstab 使其永久保留在您的系统上。使用以下命令检查 ext* 格式分区的选项:
# tune2fs -l /dev/sdXY | grep "Default mount options:
默认安装选项:
user_xattr acl
如果需要,请将选项 acl 添加到要在 中启用 ACL 的分区
/etc/fstab
。例如:... UUID=07aebd28-24e3-cf19-e37d-1af9a23a45d4 /home ext4 defaults,acl 0 2 ...
如有必要,请重新挂载启用了 ACL 的分区以使它们生效。例如:
$ sudo mount -o remount /home
设置 ACL :设置组的权限(组是组名称或 ID):
# setfacl -m "g:group:permissions" <file/dir>
显示访问控制列表:
# getfacl <file/dir>
答案2
抱歉,我应该只
rwx
针对 IT 和rw
营销部门说
虽然您可以使用 ACL 来做到这一点,但它并不是很有用。
您需要x
访问目录中任何文件的权限,因此rw-
意义不大。使用 just r
(不使用x
),您可以列出目录中文件的名称(但可能不是它们的所有者、大小等),而不w
使用则x
完全无用。
另请注意,创建并删除文件受权限w
控制在目录上,并且该所有者文件那里没关系。例外情况是在目录上设置了“粘性位”( chmod +t
) 时,在这种情况下用户只能删除自己拥有的文件。
如果您正在寻找高于此的功能,例如处理其他用户的文件(无论其权限如何)的可能性,那么除了 root 之外没有其他选择。
看:
(从技术上讲,这与成为 root 无关,而是具有允许绕过访问权限的特定功能的进程。但它不能针对每个目录进行设置,因此任何具有该功能的进程实际上都是 root。)
答案3
第一个选项是使用扩展 ACL。我不喜欢这个。我发现由于 ACL 扩展,解决问题的时间更长,而且我发现它们通常不太易于管理。支持者可能不同意并指出它们非常适合这些类型的要求。但我怀疑他们是否在凌晨 3 点被叫来解决问题。
您需要了解需要什么样的访问权限。在标准 Unix/Linux 中,有
Type of access For directory For files
r Read access can list the dir can read the file
w write access can create, remove can write to the file
rename files in
the dir
x execute can cd to the dir can execute the file as
program
如果你看看 Windows 完全控制,这意味着
- 读
- 写
- 调整
- 执行
- 更改属性/权限
- 取得所有权
修改是其他权限(读、写、修改、执行和更改文件属性)的容器,所以我们不会看它。
阅读和写作应该分配给两组,所以这不应该成为一个讨论。如果您的小组需要在目录中执行任何操作,他们也都需要x
。
通过授予目录的写访问权限,可以更改文件的权限。大多数可更改的属性(名称、时间戳)也可以通过对目录进行写入来更改。但这些应该都不是问题。
更改文件的所有权需要 root 访问权限(可能通过 sudo)。这不是您授予普通用户的东西。
因此,这意味着这两个组的正常访问权限之间没有真正的区别(除非您可能允许 IT 人员这样做sudo chown
)。
这也意味着您不需要复杂的 ACL。