linux系统中用户组的管理

首先,要知道,在创建一个用户(比如叫peter)时,会自动创建一个默认的用户组,称为初始用户组,这个用户组的名字通常与用户名相同,即用户组名也叫peter。如果不进行其他设置,那么这个用户创建的所有文件和文件夹都属于这个用户组——这一点可以通过ll命令查看自己创建的文件进行确认。

创建用户组

用于通常希望对用户进行管理,比如让一类用户能够彼此访问自己的文件,所以需要创建新的用户组。要创建用户,可以使用groupadd命令进行。下面就是创建一个名为cms的用户组:

# groupadd <group_name>

将用户添加到用户组

在完成用户组的创建之后,就可以将用户添加到已经创建好的用户组,可以用到usermod命令。下面就是将用户peter添加到cms用户组:

# usermod -aG cms peter

需要说明的是,一个用户是可以同时属于多个用户组的。

查看用户所属用户组

如果想要查看用户属于哪个/些用户组,可以有两种方法,一种使用groups命令,另外一种可以通过查询/etc/group文件。下面就是查看peter用户所属的用户组:

# groups peter

如果用户peter同时属于peter和cms两个用户组,那么就会显示下面的信息:

peter: peter cms

设置主要用户组

前面提到,一个用户是可以同时属于多个用户组的。在用户创建的时候,这个用户就会默认属于一个与用户名同名的用户组,这个组就是这个用户的主要用户组。即便后面再将这个用户添加到其他用户组,如果不做特别的设置,它所属的主要用户组还是不变。这带来的结果就是,这个用户创建的文件还是属于那个只有这个用户在的主要用户组,这样其他用户还是不能访问到它的文件。所以,也就需要对用户的主要用户组进行设置,让这个用户的主要用户组是新添加的用户组。

对于前面的例子而言,用户peter同时属于peter和cms两个用户组,而且peter是主要用户组,那么就需要将cms设置为主要用户组,这可以使用usermod命令来实现,如下:

# usermod -g cms peter

修改文件所属用户组

需要注意的是,即便修改了一个用户的主要用户组,这也只是会影响到这个用户未来的行为。换句话说,这个用户之前的文件或文件夹,它们原本是属于哪个用户组,就仍然是属于哪个用户组。这显然不是我们希望看到的。我们一般还是希望一个用户的所有文件或文件夹都属于新的主要用户组,这一点可以使用chown命令来实现。下面就是将用户peter的所有文件的所属用户组修改为cms:

# chown -R :cms /home/peter

在完成上面的操作之后,属于同一组的用户之间应该就可以查看彼此的文件了。