不论是windows系统、Linux系统还是UNIX系统,我们都可以发现用户的存在。用户存在的意义是为了提高系统的安全,为不同的用户分配不同的权限,如删除文件的权限,如果每个用户都拥有这样的权利,则系统安全就没有保障。同时系统中也存在用户组、家庭组,组的存在则是为了共享资源。
一、用户的查看
- whoami
用来查看当前的用户 - 查看系统中的用户
命令 | 说明 |
id | 查看指定用户id信息 |
id -u | 查看用户的uid |
id -g | 查看用户的gid |
id -G | 查看用户所在的所有组的id |
id -n | 显示名字而不显示id数字 |
id -Gn | 查看用户组名称 |
id -un | 查看用户名称 |
id -gn | 查看用户组名称 |
3. 用户的切换
(1)gome-session-quit --force 命令注销当前用户再用其他用户登录,使用该命令可强制退出登录
(2)在Linux系统右上角,点击小x,选中logout退出登录
(3)su - 用户名称
表示在用户身份切换时同时切换当前用户的环境
注意:高级用户切换低级用户,不需要密码;低级用户切换高级用户,需要密码;平级用户相互切换,需要密码。 su切换到其他用户操作之后必须退出,然后再次切换到其他用户。
二、用户在系统中的存储方式
1./etc/passwd
用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
“说明:默认shell的指定有那些可以查看系统中/etc/shells文件”
2. /etc/group
用户组信息文件
组的名字:组密码:组id:组成员
3./etc/shadows
认证信息文件
4./etc/skel/.*
默认开启shell的配置,用户的骨文件
5./home/username
用户的家目录
三、用户和用户组的管理
1.用户管理
(1)新建用户
命令 | 说明 |
useradd 用户名称 | 新建用户 |
useradd -u 6666 用户名称 | 指定用户uid |
useradd -g 21 用户名称 | 指定用户初始组id,21用户组必须存在 |
useradd -G 21 用户名称 | 指定用户的附加组id,21用户组必须存在 |
useradd -c “hello” 用户名称 | 指定用户的说明 |
useradd -d /home/student 用户名称 | 指定用户的家目录 |
useradd -s /bin/sh 用户名称 | 指定用户的默认shell |
(2)删除用户
命令 | 说明 |
userdel 用户名称 | 删除用户但不删除用户的配置文件 |
userdel -r 用户名称 | 删除用户并删除用户的配置文件 |
(3)更改用户信息
命令 | 说明 |
usermod -l 新名称 用户名称 | 更改用户的名称 |
usermod -u 6666 用户名称 | 更改用户uid |
usermod -g 21 用户名称 | 更改用户的初始组 |
usermod -G 21 用户名称 | 更改用户的附加组 |
usermod -aG 72 用户名称 | 添加用户的附加组 |
usermod -G “” 用户名称 | 删除用户所有附加组的身份 |
usermod -c “hello” 用户名称 | 指定用户说明文字 |
usermod -d /home/lee 用户名称 | 更改用户家目录的指向 |
usermod -md /home/lee 用户名称 | 更改用户家目录 |
usermod -s /bin/sh 用户名称 | 更改用户的shell |
usermod -L 用户名称 | 冻结用户 |
usermod -U 用户名称 | 解锁用户 |
注意:同一个用户要所属两个及两个以上的组必须要用 -aG,如果只用 -G 则是对附加组的更改。
2.用户组管理
命令 | 说明 |
groupadd 组名 | 建立用户组 |
groupadd -g 6666 组名 | 建立用户组并指定用户组的id |
groupdel 组名 | 删除用户组 |
3.用户认证信息
westos:!!:17895:0:99999: 7: : :
此文件一共有九列:
(1)westos:用户名称
(2) !!:用户密码
用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现"!"那么用户被冻结,可以使用 " usermod -U 用户名称 "命令解锁用户
(3)17895:用户密码最后一次被更改的时间
此时间计算是从1970-1-1开始计算的累计天数
命令 | 说明 |
passwd -e 用户名 | 会改变用户最后一次更改密码时间为0,用户在登录时会被强制更改密码 |
chage -d 0 用户名 | 同上 |
(4)0:用户密码最短有效期
如果此位有设定数字,那么在此数字范围内的天数内是不能修改用户密码的
命令 | 说明 |
passwd -n 1 用户名 | 用户在1天之内不能修改密码 |
chage -m 1 用户名 | 同上 |
(5)99999:用户密码最长有效期
用户必须在此有效期内更新密码,如果超时会被冻结
命令 | 说明 |
passwd -x 30 用户名 | 设定用户在30天内必须改密码 |
chage -M 40 用户名 | 设定用户在40天内必须改密码 |
(6)7:密码警告期限
在过期前制定天数内会发送警告信息给用户
命令 | 说明 |
passwd -w 2 用户名 | 密码过期前两天有警告输出 |
chage -W 2 用户名 | 同上 |
(7)用户非活跃天数
此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数
命令 | 说明 |
passwd -i 1 用户名 | 密码过期后仍可登陆系统的天数 |
chage -I 1 用户名 | 同上 |
(8)用户到期日
默认为空,表示帐号一定会被冻结的时间点
命令 | 说明 |
chage -E 2018-11-11 用户名 | 用户在2018-11-11日会被冻结 |
(9)用户自定义列,目前没有启用
4.用户密码的更改
命令 | 说明 |
passwd 用户名 | 更改用户密码 |
passwd -l 用户名 | 在用户密码前加入“!!” |
passwd -u 用户名 | 解锁用户密码前的“!!” |
passwd -d 用户名 | 清空用户密码 |
注意:
普通用户改密码时
(1)必须知道当前用户原始密码
(2)密码不能和帐号名称相似
(3)密码不能是纯数字或纯字母
(4)密码不能是有序的字母和数字的组合