用户配置文件
用户信息文件:/etc/passwd
影子文件:/etc/shadow
组信息文件:/etc/group和组密码文件:/etc/gshadow
- /etc/passwd
- 第一字段:用户名称
- 第二字段:密码标志
- 第三字段:UID(用户ID)
- 0:超级用户
- 1-499:系统用户(伪用户)
- 500-65535:普通用户
- 第四字段GID(用户初始组ID)
- 第五字段用户说明
- 第六字段家目录
- 普通用户:/home/用户名/
- 超级用户:/root
- 第7字段:登录之后的Shell
初始组和附加组
初始组:用户一登录就有这个用户组的相关权限
附加组:用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个.
- /etc/shadow
- 第一字段:用户名称
- 第二字段:加密密码
- 加密算法升级为SHA512散列加密算法
- 如果密码位是!!或*代表没有密码,不能登录
- 第三字段:密码最后一次修改日期
- 1970年1月1日作为标准时间,没过一天事件戳加1
- 第四字段:两次密码的修改间隔时间
- 第五字段密码有效期
- 第六字段:密码修改到期前的警告天数(和第五子段相比)
- 第七字段:密码过期后的宽限天数(和第5字段相比)
- 0:代表密码过期后立即失效
- -1:则代表密码永远不会失效
- 第8字段:账号失效时间
- 要用时间戳表示
- 第9字段:保留
把时间戳换算为日期
date -d "1970-01-01 16066 days"
把日期换算为时间戳
echo $(($(date --date="2021/02/09" +%s)/86400+1))
组信息文件/etc/group和组密码文件/etc/gshadow
-
组信息文件/etc/group
- 组名
- 组密码标志
- GID
- 组中附加用户
2.组密码文件/etc/gshadow
- 组名
- 组密码
- 组管理员用户名
- 组中附加用户
用户管理相关文件
-
用户的家目录
- 普通用户:/home/用户名,所有者和所有组都是此用户,权限是700
- 超级用户:/root,所有者和所属组都是root用户,权限是550
-
用户的邮箱
- /var/spool/mail/用户名
-
用户模板目录
- /etc/skel
用户管理命令
用户
- 用户添加命令
useradd- -u UID:手工指定用户的UID号
- -d 家目录:手工指定用户的家目录
- -c 用户说明:手工指定用户的说明
- -g 组名:手工指定用户的初始组
- -G 组名: 指定用户的附加组
- -s shell:手工指定用户的登录shell 默认是/bin/bash
- /etc/login.defs 可以改密码有效期
- 修改用户密码
passwd- -s 查询用户密码的密码状态,仅root用户可用
- -l 暂时锁定用户,仅root用户可用
- -u解锁用户,仅root用户可用
- --stdin 可以通过管道符输出的数据作为用户的密码
echo "123" |passwd --stdin userName
- 修改用户信息
usermod- -u UID:手工指定用户的UID号
- -c 用户说明:手工指定用户的说明
- -G 组名: 指定用户的附加组
usermod -G root userName
- -L: 临时锁定用户(Lock)
- -U:解锁用户锁定(Unlock)
- 修改用户密码状态
chage- -l 列出用户的详细密码状态
- -d:日期: 修改密码最后一次更改日期 3字段
change -d 0 userName
- -m天数:两次密码修改间隔 4字段
- -M 天数:密码有效期 5字段
- -W 天数:密码过期前警告天数 6字段
- -I 天数:密码过期后宽限天数 7字段
- -E 日期:账号失效时间 8字段
- 删除用户
userdel- -r 删除用户的同时删除用户家目录
- 用户切换命令
su- -:选项只使用"-"代表连带用户的环境变量一起切换
- -c命令:仅执行一次命令,而不切换用户身份
su - root -c "useradd user3"
用户组
- 添加用户组
groupadd 组名- -g GID: 指定组ID
- 修改用户组:
groupmod 组名- -g GID: 修改组
- -n 新组名: 修改组名
groupmod -n testgrp group1
- 删除用户组
- groupdel 组名
- 这个组不允许有初始组存在,不然无法删除u该组
- groupdel 组名
- 把用户添加入组或从组中删除
- gpasswd 选项 组名
- -a 用户名: 把用户加入组
gpasswd -a user1 root
- -d 用户名: 把用户从组中删除
gpasswd -d user1 root
- -a 用户名: 把用户加入组
- gpasswd 选项 组名