在学习了用户操作和群组操作之后,我发现有一些指令上有功能上的重叠,对此做一些小结
用户加入群组的方式
从属性上来看群组与用户互为对方的一种属性,那么将一个用户加入或踢出群组就可以有两种方式来实现
用户指令法
首先是用户指令的方式,通过修改用户的属性来达到使用户加入某一群组。
指令权限需求:root
usermod -G <groupname> <username>
执行命令后查看群组信息并切换回lighthouse用户
如上图,实现了把lighthouse加入了group1,但值得注意的是,如果想把已经加入group1的lighthouse用户再加入到其他群组中,需要使用以下代码:
usermod -G <groupList> <username>
其中groupList为用户已经有的附属群组列表和用户还要加入的群组列表的集合,群组名之间用英文逗号分隔。从而我们可以推导出,将用户从某个群组中踢出时,只需要把groupList设为用户已有群组减去想要踢出的群组的集合。极其特殊情况下,我们要把用户从所有附属群组中踢出,则要用到以下指令:
usermod -G "" <username>
实现的原理是将groupList设为空集。
群组指令法
对于修改群组属性来实现用户加入或踢出群组。
添加法
权限需求:root或群组管理员
gpasswd -a/-d <username> <groupname>
将用户加入或踢出指定群组,其中-a指令为添加成员,-d指令为删除成员,该方法可以由群组管理员来完成。但该方法一次仅能操作一个成员。
指定法
权限需求:root
gpasswd -M <usernameList> <groupname>
指定用户集合为群组成员,该指令执行后原成员集合将会被新集合覆盖。当指令中usernameList为空时,表示为删除群组中所有成员。即如下指令:
gpasswd -M "" <groupname>