Linux用户管理命令(groupadd、groupmod、groupdel、gpasswd、newgrp)详解
添加用户组的命令是 groupadd,命令格式如下:
[root@localhost ~]# groupadd [选项] 组名
选项:- -g GID:指定组 ID
添加用户组的命令比较简单,举个例子:
[root@localhost ~]# groupadd group1
#添加group1组
[root@localhost ~]# grep "group1" /etc/group
group1:x:502:
修改用户组:groupmod
groupmod 命令用于修改用户组的相关信息,命令格式如下:[root@localhost ~]# groupmod [选现] 组名
选项:- -g GID:修改组 ID;
- -n 新组名:修改组名;
例子:
[root@localhost ~]# groupmod -n testgrp group1
#把组名group1修改为testgrp
[root@localhost ~]# grep "testgrp" /etc/group
testgrp:x:502:
#注意GID还是502,但是组名已经改变
刪除用户组:groupdel
groupdel 命令用于删除用户组,命令格式如下:
[root@localhost ~]#groupdel 组名
例子:
[root@localhost ~]#groupdel testgrp
#删除testgrp
把用户添加进组或从组中删除:gpasswd
其实 gpasswd 命令是用来设定组密码并指定组管理员的,不过我们在前面已经说了,组密码和组管理员功能很少使用,而且完全可以被 sudo 命令取代,所以 gpasswd 命令现在主要用于把用户添加进组或从组中删除。gpasswd 命令格式如下:
[root@localhost ~]# gpasswd 选项 组名
选项:- -a 用户名:把用户加入组;
- -d 用户名:把用户从组中删除;
举个例子:
[root@localhost ~]# groupadd grouptest
#添加组grouptest
[root@localhost ~]# gpasswd -a lamp grouptest
Adding user lamp to group grouptest
#把用户lamp加入grouptest组
[root@localhost ~]# grep "lamp" /etc/group
lamp:x:501:
grouptest:x:505:lamp
#査看一下,lamp用户已经作为附加用户加入grouptest组
[root@localhost ~]# gpasswd -d lamp grouptest
Removing user lamp from group grouptest
#把用户lamp从组中删除
[root@localhost ~]# grep "grouptest" /etc/group grouptest:x:505:
#组中没有lamp用户了
推荐大家使用 gpasswd 命令,因为这个命令不仅可以把用户加入用户组,也可以把用户从用户组中删除。
改变有效组:newgrp
我们说过,每个用户可以属于一个初始组(用户是这个组的初始用户),也可以属于多个附加组(用户是这个组的附加用户)。既然用户可以属于这么多用户组,那么用户在创建文件后,默认生效的组身份是哪个呢?当然是初始用户组的组身份生效了,因为初始组是用户一旦登陆就获得的组身份。也就是说,用户在创建文件后,文件的属组是用户的初始组,因为用户的有效组默认是初始组。既然用户属于多个用户组,那么能不能改变用户的有效组呢?使用命令 newgrp 就可以切换用户的有效组。命令格式如下:
[root@localhost ~]# newgrp 组名
举个例子,我们已经有了普通用户 lamp,默认会建立 lamp 用户组,lamp 组是 lamp 用户的初始组。我们再把 lamp 用户加入 group1 组,那么 group1 组就是 lamp 用户的附加组。当 lamp 用户创建文件 test1 时,test1 文件的属组是 lamp 组,因为 lamp 组是 lamp 用户的有效组。通过 newgrp 命令就可以把 lamp 用户的有效组变成 group1 组,当 lamp 用户创建文件 test2 时,就会发现 test2 文件的属组就是 group1 组。命令如下:
[root@localhost ~]# groupadd group1
#添加组group1
[root@localhost ~]# gpasswd -a lamp group1
Adding user lamp to group group1 #把lamp用户加入group1组
[root@localhost ~]# grep "lamp" /etc/group
lamp:x:501:
group1:x:503:lamp
#lamp用户既属于lamp组,也属于group1组
[root@localhost ~]# su - lamp
#切换成lamp身份,超级用户切换成普通用户不用密码
[lamp@localhost ~]$ touch test1
#创建文件test1
[lamp@localhost ~]$ll test1
-rw-rw-r-- 1 lamp lamp 01月14 05:43 test1
#test1文件的默认属组是lamp组
[lamp@localhost ~]$ newgrp group1
#切换lamp用户的有效组为group1组
[lamp@localhost ~]$ touch test2
#创建文件test2
[lamp@localhost ~]$ ll test2
-rw-r--r-- 1 lamp group1 01月 14 05:44 test2
#test文件的默认属组是group1组
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频