Linux中的用户管理

一.用户的存储

1.常用配置文件
用户信息文件: /etc/password
密码文件: /etc/shadow
用户组文件: /etc/group
用户组密码文件:/etc/gshadow

2./etc/password文件
vim /etc/password
Linux中的用户管理
如果想详细了解passwd文件,可以使用:“man 5 password“ 命令来查看配置文件帮助

account:password:UID:GID:GECOS:directory:shell
(用户名:密码:用户ID:组ID:用户说明:家目录:shell)

2.1 用户分类

**UID=0的 超级用户
UID=1~499 系统用户(与系统和程序服务相关)
UID=500~60000 普通用户

2.2 /etc/group 文件
vim /etc/group
Linux中的用户管理
group_name:password:GID:user_list
(组名:组密码:组ID:组成员)

3.用户组的作用
用户组是具有相同权限的用户的集和,一个用户可以有多个用户组,不同的组有不同的权限。

二.用户的查看和切换

1.查看当前用户 :whoami
Linux中的用户管理
2.查看用户信息
id username ##查看指定用户id信息
id -u ##查看用户的uid
id -g ##查看用户的gid
id -G ##查看用户所在的所有组的id
id -n ##显示名字而不显示id数字
Linux中的用户管理
3.切换用户
su - 用户名称
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
需要注意的是,每次su切换到其他用户操作之后必须exit退出,然后再次切换到其他用户,不然多次切换后会系统混乱。
Linux中的用户管理
超级用户切换为普通用户不需要密码,普通用户切换到超级用户需要输入密码。

三.用户管理

1.建立用户
useradd username
useradd -u 1000 username 指定用户uid
useradd -g 21 username 指定用户初始组id,“21用户组必须是存在的”
useradd -G 21 username 指定用户的附加组id “21用户组必须存在”
useradd -c “linux” username 指定用户的说明
useradd -d /home/lee username 指定用户的家目录
useradd -s /bin/sh username 指定用户的默认shell

Linux中的用户管理
只有超级用户才有权限对用户进行管理

2.删除用户
userdel username 删除用户但不删除用户的配置文件
userdel -r username 删除用户并删除用户的配置文件
“userdel 用户名"不会删除用户家目录等配置文件,也就是说,下次创建相同名称用户时会报错,因为该用户家目录已存在

3.建立用户组
groupadd 建立用户组
groupadd -g 123 groupname ##建立用户组并指定用户组的id
groupdel 删除用户组
Linux中的用户管理
4.更改用户信息

usermod
usermod -l 新名称 旧名称 更改用户的名称
usermod -u 6666 username 更改用户uid
usermod -g 21 username 更改用户的初始组
usermod -G 21 username 更改用户的附加组
usermod -aG 72 username 添加用户的附加组
usermod -G username 删除用户所有附加组的身份
usermod -c “linux” username 指定用户说明文字
usermod -d /home/student username 更改用户家目录的指向
usermod -md /home/student username 更改用户家目录
usermod -s /bin/sh username 更改用户的shell
usermod -L username 冻结用户
usermod -U username 解锁用户
Linux中的用户管理
5.用户密码的管理
用户的密码信息单独存放在/etc/shadow 文件中
Linux中的用户管理

root:#21312sd$44:wd323%cds:14945:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:账号闲置时间:失效时间:

修改密码信息,就是修改/etc/shadow文件对应的内容。

passwd username 更改密码
passwd -l username 在用户密码前加入“!!”
passwd -u username
usermod -L username 在用户密码前加入“!”
usermod -U username 在密码不为空时使用
passwd -d username 清空westos密码

普通用户改密码时
1.必须知道当前用户原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或纯字母
4.密码不能是有序的字母和数字的组合
5.在密码前面加入“!!”锁定密码

#用户密码最后一次被更改的时间#
passwd -e username 会改变用户最后一次更改密码时间为0.
##用户在登陆时会被强制更改密码
chage -d 0 username 两个命令功能类似

观察/etc/shadow中linux密码信息的变化
Linux中的用户管理

#用户密码最短有效期#
passwd -n 1 username 用户在1天之内不能修改密码
chage -m 1 username
Linux中的用户管理
#用户密码最长有效期#
passwd -x 30 username username设定westos在30天内必须改密码
chage -M 30 username
Linux中的用户管理

#密码警告期限#
passwd -w 5 username 密码过期前5天会有系统警告
chage -W 5 username
Linux中的用户管理

#用户非活跃天数#
passwd -i 1 username 密码过期后仍可登陆系统的天数
chage -I 1 username
Linux中的用户管理

#用户到期日#
chage -E 2020-5-20 username 用户在2020-5-20日会被冻结Linux中的用户管理