向目录添加组权限而不更改组所有权?

向目录添加组权限而不更改组所有权?

我有一个名为“音乐”的目录和两个组:音乐、歌手。

我执行了

chgrp music music

我希望授予歌手组对 /music 目录的读写权限,但我不想更改所有权。

这可能吗?

我对 chown 和 chgrp 有点困惑。我相信 chown 更改单个用户而不是一个组的所有权? chgrp 改变组?

有没有一种方法可以设置组所有权,但向其他指定组授予权限?

答案1

使用传统权限无法做到这一点,但可以使用getfaclsetfacl命令(通常通过acl包提供)来完成。

getfacl允许您读取目录或文件的 ACL 条目。

setfacl允许更改目录或文件的 ACL 条目。

在您的示例中,您需要运行类似以下命令的命令:

setfacl -m g:music:rwx /path/to/music
setfacl -m g:singers:rwx /path/to/music

-mmodifyg修改组 ACL、musicsingers名称、rwx要应用的传统权限、/path/to/music要修改 ACL 的目录的路径。

要使其默认应用于音乐文件夹中创建的任何新文件/目录,您需要添加 的标志-ddefault并且要递归地应用于所有现有文件/目录,您需要添加-R的标志recursive

答案2

chown更改每个给定文件的用户和/或组所有权。chgrp只更改指定的文件组。通常,您可以运行man <command>(如果有手册)或<command --help>查看命令是如何使用的。

因此该命令将授予该文件夹的chgrp music music组所有权。musicmusic

多个组不可能拥有一个文件或文件夹,但有一些解决方法:

  • 假设组music拥有该文件夹,您可以使用前交叉韧带定义权限组singers

  • 创建一个新组,其中包括组的所有用户singersmusic并设置使该新组成为music所讨论的文件夹的所有者这里

相关内容