# 查看用户和用户组
```bash
cat /etc/passwd
#查看所有用户
#用户名:用户密码:UID:GID:描述性信息:主目录:默认Shell
w
#可以查看当前活跃的用户
cat /etc/group
#查看所有用户组
#此文件中每一行各代表一个用户组,在创建用户时都会默认一同创建一个同名的用户组,比如我创建一个用户名为wang的用户,那么连同就会创建一个wang的用户组。各用户组中,还是以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为
组名:组密码:GID:该用户组中的用户列表
#组密码一般用x加密不显示
groups
#查看当前登录用户的用户组列表
groups zyadmin
#查看zyadmin用户所在的组
zyadmin : zyadmin adm cdrom sudo dip plugdev lxd
#zyadmin用户包含在[zyadmin adm cdrom sudo dip plugdev lxd]这些用户组中
whoami
#查看当前登录用户名
```
```bash
su
#从当前用户的用户组切换到root用户组
#如果出现Authentication failure错误, 表示root用户组中不含有当前用户
sudo passwd root
当前账户进行sudo用户组操作的密码, 输入root账户密码, 重复输入root账户密码
#给root用户组设置密码
```
# 用户管理
## 1、添加用户账号
```bash
useradd 选项 用户名
# 选项
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
# 常用
useradd -d /home/wang -m wang
#创建了一个用户wang,其中-d和-m选项用来为登录名wang产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)
```
**useradd和adduser**
useradd与adduser都是创建新的用户
在CentOS下useradd与adduser是没有区别的都是在创建用户,在home下自动创建目录,没有设置密码,需要使用passwd命令修改密码。
而在Ubuntu下useradd与adduser有所不同
1、useradd在使用该命令创建用户是不会在/home下自动创建与用户名同名的用户目录,而且不会自动选择shell版本,也没有设置密码,那么这个用户是不能登录的,需要使用passwd命令修改密码。
2、adduser为Perl脚本命令,在使用该命令创建用户是会在/home下自动创建与用户名同名的用户目录,系统shell版本,会在创建时会提示输入密码,更加友好。
## 2、删除用户账号
```bash
userdel [选项] 用户名
# 选项-r 它的作用是把用户的主目录一起删除。
# 常用
userdel -r wang
```
## 3、修改用户账号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
```bash
usermod [选项] 用户名
# 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
# 常用
usermod -s /bin/sh -d /home/wang -g developer wang
# 将用户wang的登录Shell修改为sh,主目录为/home/wang,用户组改为developer
```
## 4、用户口令管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
```bash
passwd 选项 用户名
# 选项 如果默认用户名,则修改当前用户的口令。
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
```
# 用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
## 1、增加用户组
```bash
groupadd 选项 用户组
# 选项
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
```
## 2、删除用户组
```bash
groupdel 用户组
```
## 3、修改用户组
```bash
groupmod 选项 用户组
# 选项
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字。
# 常用
groupmod –g 10000 -n group3 group2
#此命令将组group2的标识号改为10000,组名修改为group3
```