Linux 用户可以属于多个组吗?

Linux 用户可以属于多个组吗?

Linux 用户可以属于多个组吗?

如果允许的话,一个用户可以访问两个组的文件,那就太好了!

如果没有的话,还有其他方法可以实现此功能吗?

这个问题与确保目录中的新文件属于该组或者帮助我理解 Ubuntu 用户/组权限

答案1

是的,用户可以是多个群组的成员

用户被组织成组,每个用户至少属于一个组,也可能属于其他组。组成员身份赋予您访问该组允许的文件和目录的特殊权限。

例如,您可以将用户添加username到组group1group2使用以下命令usermod命令:

usermod -a -G group1,group2 username

答案2

是的,普通的 Unix 用户可以成为多个组的成员。

然而,只有用户的组初级组

例如,添加用户时使用adduser,可以使用选项指定主要组--ingroup,并在 Debian/Ubuntu 等系统中像这样添加多个次要组:

$ # would create user gert and group gert
$ sudo adduser gert

$ # same, but no group 'gert' will be created, but made member of the existing
$ # group 'adm'
$ sudo adduser gert --ingroup adm

$ # secondary groups
$ sudo adduser gert superusers
Adding user `gert' to group `superusers' ...
Adding user gert to group superusers
Done.
$ sudo adduser gert debianfans

可以使用以下方法检查您是哪个用户的成员id

$ id
uid=1000(gert) gid=1000(gert) groups=1000(gert),4(superusers),5(debianfans)
               ^^^            ^^^^^^
               primary        secondary
               group          groups

对于其他用户来说,只需将其用户名作为第一个参数传递给即可id

-g您可以使用( --gid) 选项更改用户的主要组usermod

$ usermod -g new_primary_group username

答案3

是的,请参阅其他答案。另一种选择是访问控制列表。

setfacl
getfacl

每个文件可以有一个可以访问它的用户和组的列表。

一个人是一个用户和多个组(组只能由管理员/根用户设置)。一个文件通常是一个所有者用户和一个组,使用 ACL 时,它可以是一个所有者用户,加上许多其他用户,加上多个组。

使用哪种方法取决于您的需要。ACL 可以是一个窗格,但不需要管理员(除了安装和启用,它通常不是我的默认安装)。另一种方法更简单,但功能较弱。

相关内容