linux下删除某个组下的某个用户(删除用户的附加组)

一、在LINUX下我们都知道,一个用户可以属于多个用户组,让用户属于多个用户组,我们可以有多种实现方法,如下:

1、假设系统已经存在testGroup1,testGroup2两个用户组,现在要新增一个用户testUser1,同时让testUser1属于testGroup1,testGroup2两个用户组

useradd -G  testGroup1,testGroup2  testUser1


2、假设系统已经存在testGroup1,testGroup2两个用户组和一个用户testUser1,现在要把testUser1加到testGroup1,testGroup2两个用户组中

usermod -a -G  testGroup1,testGroup2  testUser1

或者

usermod -a -G  testGroup1 testUser1

usermod -a -G  testGroup2 testUser1


注意:

这里必须要加上-a这个参数,表示追加组的意思,如果不加-a,比如执行usermod -G  testGroup1,testGroup2  testUser1,那 testUser1就只除了 testUser1组外,就只剩下 testGroup1,testGroup2两个组,如果是个新的用户还无所谓,那假设testUser1以前还属于ftp和root组,执行 usermod -G  testGroup1,testGroup2  testUser1命令以后,testUser1这时已经不属于ftp和root组了。


二、用户属于多个组,那怎么修改用户的附加组呢?或者怎么把用户从某个组中删除?也有多种实现方法,如下:

假设testUser1用户现在属于testUser1,testGroup1,testGroup2,testGroup3,testGroup4组


1、usermod -G "" testUser1

这是清空用户testUser1所有的追加组,执行该命令以后testUser1只属于testUser1这个默认组,不管testUser1以前有多少个附加组。


2、gpasswd -d  testUser1 testGroup2

删 除用户testUser1的testGroup2所属组,即把用户testUser1从testGroup2 组中剔除,执行以后用户testUser1属于testUser1,testGroup1,testGroup3,testGroup4组,注 意,gpasswd -d只能一个组一个组操作,如果要删除多个组则只能操作多次


3、usermod -G  testGroup2,testGroup3 testUser1

让 用户testUser1的附加组变成testUser1,testGroup1,testGroup4,这个命令有点类似usermod -G "" testUser1,只不过usermod -G "" testUser1是清空,而usermod -G  testGroup2,testGroup3 testUser1 则是把 testGroup2,testGroup3以外的组清空,而保留testGroup2,testGroup3。因为gpasswd -d  一次只能删除一个,所以用这种方法可以一步直达。