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

hug*_*eow 20 linux unix user-accounts

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

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

如果没有,有没有其他方法可以使用此功能?

此问题与确保目录中的新文件属于该组帮助我了解 Ubuntu 用户/组权限不同

slh*_*hck 21

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

用户被组织成组,每个用户至少在一个组中,也可能在其他组中。组成员资格为您提供对该组允许的文件和目录的特殊访问权限。

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

usermod -a -G group1,group2 username
Run Code Online (Sandbox Code Playgroud)


ger*_*ijk 15

是的,一个普通的 unix 用户可以是多个组的成员。

但是,只有一个组是用户的主要组

添加用户时,例如 using 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
Run Code Online (Sandbox Code Playgroud)

可以使用id以下方法检查您是哪个用户:

$ id
uid=1000(gert) gid=1000(gert) groups=1000(gert),4(superusers),5(debianfans)
               ^^^            ^^^^^^
               primary        secondary
               group          groups
Run Code Online (Sandbox Code Playgroud)

同样对于其他用户,只需将他们的用户名作为第一个参数传递给id.

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

$ usermod -g new_primary_group username
Run Code Online (Sandbox Code Playgroud)