1.用户的查看
(1)查看当前用户:whoami
[root@foundation60 kiosk]# whoami
root
(2)查看系统中指定的用户:id [参数] username
id student //查看student用户的id
[root@foundation60 kiosk]# id student
uid=1001(student) gid=1001(student) groups=1001(student)
id -u student //查看student用户的uid
id -g student //查看student用户的gid
id -G student //查看student用户的所在的所有组的组id
[root@foundation60 kiosk]# id -u student
1001
[root@foundation60 kiosk]# id -g student
1001
[root@foundation60 kiosk]# id -G student
1001
2.用户切换
(1)gnome-session-quit --force //注销当前用户,进入登陆界面,再选择其他用户登陆
[kiosk@foundation60 ~]$ gnome-session-quit --force
(2)su - username
高级用户切换到低级用户
[root@foundation60 ~]# su - tom
Last login: Tue Apr 2 18:47:57 CST 2019 on pts/1
[tom@foundation60 ~]$
低级用户切换到高级用户
[tom@foundation60 ~]$ su - root
Password:
Last login: Tue Apr 2 18:46:27 CST 2019 on pts/1
[root@foundation60 ~]#
平级用户之间切换
[tom@foundation60 ~]$ su - kiosk
Password:
Last login: Tue Apr 2 18:48:52 CST 2019 on pts/1
[kiosk@foundation60 ~]$
- su - 中 “-” 表示在用户身份切换的同时切换当前用户的环境
- 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级用户需要密码,平级用户之间切换也需要密码
- 每次su切换到其他用户操作完成之后必须退出,然后再次切换到其他用户
[root@foundation60 ~]# su - tom
Last login: Tue Apr 2 18:56:03 CST 2019 on pts/1
[tom@foundation60 ~]$ exit
logout
[root@foundation60 ~]#
3.用户在系统中的存储方式
(1) /etc/passwd #用户信息文件
[root@foundation60 ~]# cat /etc/passwd
以kiosk用户为例:
kiosk:x:1000:1000:kiosk:/home/kiosk:/bin/bash
用户名:密码:uid:gid:说明:家目录:默认shell
- “说明”:开机看到的名字 (开机看到的用户名其实是用户的说明)
- 默认shell:指定有哪些可以查看系统中的 /etc/shells 文件
(2) /etc/group #用户组信息文件
[root@foundation60 kiosk]# cat /etc/group
以kiosk组为例:
kiosk:x:1000:kiosk
组名字:组密码:组id:组成员
(3) /etc/shadow #用户认证信息
注:后面有详细说明
(4) /etc/skel/.* #默认开启shell的配置,用户的骨文件
(5) /etc/username #用户的家目录
4.用户管理命令
- 用户信息监控命令:
[root@foundation60 kiosk]# watch -n 1 "tail -n 3 /etc/passwd /etc/group;ls -l /home"
(1)用户组的建立与删除
groupadd #建立用户组
groupdel #删除用户组
groupadd -g 888 westos #建立用户组并指定用户组的id
(2)用户的建立
useradd #建立新用户 (建立用户时,读取/etc/login.defs 文件内容确定规则)
useradd -u 556 westos #指定用户uid
useradd -g 21 westos #指定用户初始组id,"21用户组必须是存在"
useradd -G 21 westos #指定用户的附加组id ,“21用户组必须存在”
useradd -c "ylz" westos #指定用户的说明
useradd -d /home/lee westos #指定用户的家目录
useradd -s /bin/sh westos #指定用户的默认shell
(3)用户的删除
userdel
userdel student #删除用户但不删除用户的配置文件
userdel -r student #删除用户并删除用户的配置文件
- 用户:/etc/passwd
- 配置文件:/home
(4)用户信息的更改
usermod
usermod -l tom westos #更改用户的名称:westos改为tom
usermod -u 6666 westos #更改用户uid
usermod -g 21 westos #更改用户的初始组
usermod -G 21 westos #更改用户的附加组
usermod -aG 72 westos #添加用户的附加组
usermod -G " " westos #删除用户所有附加组的身份
usermod -c "hahahah" westos #指定用户说明文字
usermod -d /home/lee westos #更改用户家目录的指向
usermod -md /home/lee westos #更改用户家目录
usermod -s /bin/sh westos #更改用户的shell
5.用户认证信息
/etc/shadow #记录用户认证信息
westos:!!:17895:0:99999: 7: : :
[1] [2] [3] [4] [5] [6][7] [8] [9]
此文件一共有九列:
[1]
westos:用户名称
[2]
!!:用户密码
用户的加密字符串,默认用的加密方式为sha512对称加密,
如果加密字符串前出现"!"那么用户被冻结
passwd westos #设置/更改westos密码
passwd -l westos #在用户密码前加入“!!”(冻结)
passwd -u westos #在密码不为空时使用(解冻:解两个“!!”)
usermod -L westos #在用户密码前加入“!”(冻结)
usermod -U westos #在密码不为空时使用(解冻:解一个“!”) //连续使用两次可以解两个“!!”
passwd -d westos #清空westos密码
passwd -S westos #查看westos用户密码信息
普通用户改密码时:
1.必须知道当前用户原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或纯字母
4.密码不能是有序的字母和数字的组合
[3]
17895:用户密码最后一次被更改的时间
此时间计算是从1970-1-1开始计算的累计天数
passwd -e westos #会改变用户最后一次更改密码时间为0.
#用户在登陆时会被强制更改密码
chage -d 0 westos #两个命令功能类似
[4]
0:用户密码最短有效期
如果此位有设定数字,那么在此数字范围内的天数内不能修改用户密码
passwd -n 1 westos #westos用户在1天之内不能修改密码
chage -m 1 westos
[5]
99999:用户密码最长有效期
用户必须在此有效期内更新密码,如果超时会被冻结
passwd -x 30 westos #设定westos在30天内必须改密码
chage -M 30 westos
[6]
7:密码警告期限
在过期前制定天数内会发送警告信息给用户
passwd -w 10 westos #密码过期前两天有警告输出
chage -W 10 westos
[7]
用户非活跃天数
此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用原密码的天数
passwd -i 3 westos #密码过期后仍可登陆系统的天数
chage -I 3 westos
[8]
用户到期日
默认为空,表示帐号一定会被冻结的时间点
chage -E 2019-4-4 westos #westos用户在2019-4-4日会被冻结
[9]
用户自定义列,目前没有启用