从用户的配置文件以及配置命令的方式来了解用户管理,命令也是将结果写入到配置文件
不建议直接修改配置文件!!!
内容解析
root:x:0:0:root:/root:/bin/bash
用户名:密码:UID:GID:账号解释:家目录:shell
注意事项:
1、UID为0就是超级用户
2、shell 设置为/sbin/nologin 时账号无法登录
内容解析
root:$6$M9G.0hEG...:18417:0:99999:7:::
用户名:加密密码:最近更改时间:不可改动时间:密码过期时间:过期前提醒时间:过期延期时间:失效日期:保留
注意事项
1、密码前加!或者*就是锁定密码,不要直接修改文件,会导致密码失效
2、密码失效后,无法登录
内容解析
sys:x:0:jog,bob
组名:群组密码:GID:这个组内的用户名
注意事项:
1、群组密码一般不用设置
2、这里的群组用户指存在多个组中的用户,也就是额外的用户
创建用户参考文档 *
/etc/default/useradd
/etc/login.defs
/etc/skel/*
注意:
如果家目录被删了,登录显示~/.bashrc,可以从/etc/skel/.bashrc 拷贝再自定义恢复
可以针对用户或者用户组设置特定或者全部命令的权限,通常用来为普通用户授权root权限
id
id 显示当前用户信息
id username 显示指定用户信息
groups
groups 查看当前用户属组
zhh : sysadmin root
主用户群 : 次要用户群
groups username 查看指定用户属组
w Show who is logged on and what they are doing
who show who is logged on
last show listing of last logged in users
man passwd
passwd 修改当前用户密码
passwd username 修改指定用户密码,需要提权
passwd -S username 用户状态
root PS 2023-02-02 0 99999 7 -1 (Password set, SHA512 crypt.)
用户名 状态 修改时间 不可修改时间 过期时间 过期警告时间 失效时间 解释信息
passwd -l username 锁定用户
passwd -uf username 强制解锁用户
passwd -e username 强制用户密码过期
echo "password" | sudo passwd --stdin myuser1 明文设置密码
注意:空密码会在一定时间后被锁定,不影响有指纹的免密链接,没有指纹的免密也会连接失败
状态:
locked password (LK)
has no password (NP)
has a usable password (PS)
man chage
chage - change user password expiry information
chage -l username 查看密码状态
chage -M -1 username 密码永不过期
chage -m 6 -M 90 -E -1 -I -1 -W 30
-m 密码最小修改间隔,限制密码更新
-M 密码有效时间,区间内未更新会提示修改密码
-E 密码过期时间,过期会提示修改密码
-I 密码失效时间,失效无法登录
-W 密码过期前多少天提醒
id 查看当前用户的用户和组信息
useradd username 添加用户
useradd -u UID -g GID -G GID username
useradd -D 查看预设值
参数:
-u :后面接的是 UID
-g :后面接的那个组名就是主组
-G :后面接的组名是次要组
-M :强制!不要建立用户家目录!(系统账号默认值)
-m :强制!要建立用户家目录!(一般账号默认值)
-d :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径
-s :后面接一个 shell ,若没有指定则预设是 /bin/bash
-f :后面接失效时间,0 为立刻失效,-1 为永远不失效
注意:
创建用户以后, /etc/shadow 内仅会有密码参数而不会有加密过的密码数据,所以需要设置密码
userdel
userdel username
userdel -r username 一同删除家目录
usermod
usermod username -g GID/groupname 设置主要用户组
usermod username -G GID/groupname 设定次要用户组
usermod username -aG GID/groupname 追加次要群组
不常用,与用户管理差不错
groupadd
groupdel
groupmod
1. shell 为/sbin/nologin
grep username /etc/passwd
2. 密码过期或者被锁定
chage -l username
3. sshd 设定root用户无法登陆
grep 'PermitRootLogin' /etc/ssh/sshd_config
4. vim /etc/security/access.conf 配置的pam 限定了用户登录
表现为:
正确密码:Authentication failed.
错误密码:Permission denied, please try again.
5. vim /etc/pam.d/login 中其他设置限定
6. vim /etc/pam.d/sshd 中其他设置限定
7. iptables对端口和IP做了限制
iptables --list
8. 这里限制了IP
/etc/hosts.allow
/etc/hosts.deny
还有很多其他的情况,比如有些机器经过ldap.conf文件,或者用户的环境变量配置里面写了脚本启动失败,或者ld.so.preload 库文件被修改,还有fs.nr_open fs.file-max 这些参数被改小了等等各种问题。后期整理一下,再写一篇记录登录失败的排查文章。
报错token验证失败,无法修改密码
passwd: Authentication token manipulation error
经检查是根目录满了,/home目录没挂出来,也满了