一、用户在系统中的存储方式:
- /etc/password # 用户信息文件
格式『用户名称:密码:uid:gid:说明:家目录:默认shell』
默认shel有8个,命令查看方式如下图
2./etc/group #用户组信息文件
格式『组的名字:组的密码:组id:组成员』
3./etc/shadow #认证信息文件
4./etc/skel/.* # 默认开启shell的配置,用户的骨文件
网易面试题:
如何使得每一个新建的用户下都有一个westos目录?
答:用户的骨文件下在创建用户时会自动加入到用户里,因此想要在每一个新建用户中都有westos目录,只需在/etc/skel/下建立所要目录,这样,所建目录会随着骨文件自动添加在新建的用户中。
5./home/username #用户的家目录
二、用户的查看及切换
用户的查看
1. id -u student #查看用户的uid
2. id -g student #查看用户的gid
3. id -G student #查看用户所在的所有组的id
4. id -n -u/G/g student #查看名字而不显示id数字
用户的切换
1. gnome-session-quit --force #注销当前用户
2. su - 用户名称 #切换用户
3. su 用户名称
注意
【1】2中的“-”表示在切换用户后不仅可以得到系统环境配置信息(/etc/profile),也可以得到shell配置信息(/etc/bashrc)
3仅能得到shell配置信息
实验过程说明:为了直观显示,我们在(etc/profile)的最后一行赋值“A=1”,在(/etc/bashrc)的最后一行赋值“B=1”,分别执行2和3的用户切换。
【2】每次切换到其他用户操作完成后,必须退出,否则会可能发生错乱。
【3】高级用户切换到低级用户不需要密码,低级高级或者平级均需输入密码
三、 用户的建立
1.watch -n 1 "tail -n 3 /etc/passwd /rtc/group;ls -l /home" #用户信息监控命令
2. useradd -u 888 ee #指定用户uid
3. useradd -g 1002 ee #指定用户gid,1002用户组必须是存在的
4. useradd -G 1002 ee #指定用户的附加组id,1002用户组必须是存在的
5. useradd -c "hahahhaha" ee #指定用户的说明
6. useradd -d /home/lee ee #指定用户的家目录
7. useradd -s /bin/csh ee #指定用户的shell
1. groupadd 用户组 # 建立用户组
2. groupadd -g 888 westos #建立用户组并指定用户组的id
3. groupdel 用户组 #删除用户组
####用户信息的修改####
1. usermod -l 新名称 aa #更改用户的名称
2. usermod -u 666 aa #更改用户的uid
3. usermod -g 21 aa #更改用户的初始组
4. usermod -G 21 aa #更改用户的附加组
5. usermod -aG 72 aa #添加用户的附加组
6. usermod -G “” aa #删除用户所有附加组的身份
7. usermod -c "hahaha" aa #指定用户说明文字
8. usermod -d /home/lee aa #更改用户家目录的指向
9. usermod -md /home/lee aa #更改用户家目录
10.usermod -s /bin/sh aa #更改用户的shell
11.usermod -L aa #冻结用户
12.usermod -U aa #解锁用户
牛刀小试:
1.新建用户组,shengchan,caiwu,jishu
2.新建用户要求如下:
1)tom是shengchan组的附加用户,用户id为2000
2)harry是caiwu组的附加用户,用户组的id为3000
3)leo是jishu组的附加用户,此用户加在目录/mnt/leo中
4)新建admin用户,此用户不属于以上提到的三个部门
5)新建system用户westos,此用户不能登陆系统,这个用户的说明为“system westos”
答:
四、linux 下/etc/shadow 文件详解
首先打开shadow文件的后3行看看是啥样的
leo:!!:18171:0:99999:7: : :
[1] [2] [3] [4] [5] [6][7] [8] [9]
此文件一共有9列:
[1] leo #用户名称
[2]!! #用户密码:用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密的字符串前出现“|”那么用户被冻结
注意
用户的锁定有两种
1. usermod -L aa # /etc/shadow下aa的第二栏(密码)前会加一个!
2. passwd -l aa # /etc/shadow下aa的第二栏(密码)前会加两个!
##锁了之后以超级用户身份仍然可以切换到aa,以普通用户身份切换不到aa
用户的解锁两种
1. usermod -U aa
2. passwd -u aa
[3]18171 #用户密码最后一次被更改的时间:此时间是从1970-1-1开始计算的天数
[4]0 #用户密码最短有效期
[5]99999 #用户密码最长有效期,用户必须在此有效期内更新密码,如果超时会被冻结
[6]7 # 用户警告期限:在过期前的指定天数会发送警告信息给用户
[7] #用户非活跃天数:默认为空,如果设定数值,那么密码在最长有效期过后仍然可以使用的天数
[8] # 用户到期日: 默认为空,表示帐号一定会被冻结的时间点
[9] #用户自定义列,目前没有被启用
五、passwd命令
1. passwd -e aa #改变用户最后一次更改密码时间为0,在用户登陆时会被强制更改密码
chage -d 0 aa #两个命令功能类似
2. passwd -l aa #在密码前加!!,用户被锁
3. passwd -u aa #解锁
4. passwd -n 1 aa #用户密码最短有效期,在1天内不得修改密码
chage -m 1 aa
5. passwd -x 30 aa #用户密码最长有效期,设定在30天内必须修改密码
chage -M 40
6. passwd -w 2 aa #密码过期前两天有警告输出
chage -w 2 aa
7. passwd -i 1 aa #用户非活跃天数,在密码过期后仍可登陆系统的天数
chage -I 1 aa
8. chage -E 2018-11-22 aa # aa用户在2018-11-22日会被冻结