查找所有用户比较常用的有两个目录: /etc/passwd 可以查看用户名、用户组、家目录等信息 /etc/shadow 可以查看用户密码、有效期设置等信息
查看当前用户
id
id username(查看指定用户)
w
whoami
查看所有用户
cat /etc/passwd
这里显示的格式:
- 每一行代表一个用户
- 从左往右依次代表: 用户名:密码:用户ID(UID):用户群组ID(GID):用户备注信息:家目录:用户使用的shell类型
- 这里的 x 代表的是密码,具体密码是什么,要看另一个文件,/etc/shadow
- UID=0,是root账号,1-99是系统用户,100-999是系统账户和群组,1000及以上就是后面自定义新增的用户了
- 最后一段,如果为 /sbin/nologin/ 则不允许登录
cat /etc/shadow
这个文件仅root权限的用户可以读,查出来的结果跟上面一样,也是一行代表一个用户,分9段信息,也是:拼接\
用户名:加密密码:最近一次修改密码时间:密码最小修改间隔的天数:密码有效期:密码到期前提醒:密码过期后宽限天数:账号失效日期:保留字段
- 用户名
- 密码:加密过的密码,SHA512散列加密算法;!*或者空,代表当前是没有密码的,无法登录
- 最近一次修改密码时间
- 密码最小修改间隔天数:0代表可以随时修改密码
- 密码有效期:99999代表长期有效
- 到期前提醒:依赖有效期,代表几天后开始提醒
- 宽限天数:密码过期后的宽限天数,宽限期内可以正常登录,超过宽限期后会禁用
- 账号失效日期
- 保留字段,没意义
没有设置密码的时候:
test:!:19788:0:99999:7:::
设置了密码:
test:$6$o9qaYcyyRW9WSmE2$7qkXTVW01SkJNfvZlasQBQSbO0grP.y.l9GASsM0yiOuJVi4H6EdG9nof8QvdOQ6suTxiUnmuLcZSq5coPOxF1:19788:0:99999:7:::
查看指定用户
cat /etc/shadow | grep username
添加新用户
命令格式:useradd username
useradd test
cat /etc/passwd
最后一行会显示
test:x:1001:1002::/home/test:/bin/sh
新建用户的时候也会为用户添加一个同名目录test
添加密码
passwd username
删除密码
删除密码后,就是空口令用户
passwd -d username
使用“awk -F: '2=="" {print 1}' /etc/shadow”可以查询出所有空口令的用户名
禁用用户
passwd -l username
删除用户
userdel -r username