1 用户配置文件
1.1 用户信息文件
用户管理简介
- 越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。
- 在Linux中主要是通过用户配置文件查看和修改用户信息
/etc/passwd
vim /etc/passwd
例如第一行:
root:x:0:0:root:/root:/bin/bash
- 第一字段:用户名称
- 第二字段:密码标志(注:密码实际存放在/etc/shadow)
- 第三字段:用户ID(UID)
- 0:超级用户
- 1-499:系统用户(伪用户,不能删除,否则可能会造成系统崩溃)
- 500-65535:普通用户(注:将普通用户UID改为0,即把它变为超级用户)
- 第四字段:GID(用户初始组ID)
- 初始组:指用户已登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般是和这个用户组的用户名相同的组名作为这个用户的初始组。
- 附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
- 第五字段:用户说明(可不添加,一般对用户进行备注说明)
- 第六字段:家目录
- 普通用户:/home/用户名/
- 超级用户:/root/
- 第七字段:登陆之后的shell
- shell就是LInux的命令解释器
- 在/etc/passwd当中,除了标准Shell是/bin/sh之外,还可以写如/sbin/nologin(当把普通用户的shell任意修改或改成/sbin/nologin时,则无法登录)
1.2 影子文件/etc/shadow
vim /etc/shadow
- 第一字段:用户名
- 第二字段:加密密码
- 加密算法升级为SHA512散列加密算法
- 如果密码位是“!!”或“*”代表没有密码,不能登录
- 第三字段:密码最后一次修改日期
- 使用1970年1月1日作为标准时间,每过一天时间戳加1
- 第四字段:两次密码的修改时间间隔(和第三字段相比)
- 第五字段:密码的有效期(和第三字段相比)
- 第六字段:密码修改到期钱的警告天数(和第五字段相比)
- 第七字段:密码过期后的宽限天数(和第五字段相比)
- 0:密码到期立即生效
- -1:密码永远不会失效
- 第八字段:账号失效时间
- 要用时间戳表示
- 注:时间戳的换算:
- 第九字段:保留字段
1.3 组信息文件
组信息文件/etc/group
- 第一字段:组名
- 第二字段:组密码标志
- 第三字段:GID
- 第四字段:组中附加用户
组密码文件/etc/gshadow
- 第一字段:组名
- 第二字段:组密码
- 第三字段:组管理员用户名
- 第四字段:组中附加用户
2. 用户管理相关文件
2.1 用户的家目录
- 普通用户:/home/用户名/,所有者和所属组都是此用户,权限为700
- 超级用户:/root/,所有者和所属组都是root用户,权限是550
2.2用户的邮箱
/var/spool/mail/用户名/ ##为每个用户创建一个邮箱,包括root
2.3 用户模板目录
vim /etc/skel/
#编写用户模板,则申请新用户后,编写的文件会在新用户的home目录中呈现
3 用户管理命令
3.1 用户添加命令useradd
useradd命令格式
useradd [选项] 用户名
选项:
- -u UID:手工指定用户的UID号
- -d 家目录:手工指定用户的家目录
- -c 用户说明:手工指定用户的说明
- -g 组名:手工指定用户的初始组
- -G 组名:指定用户的附加组
-S:手工指定用户的登录shell,默认是/bin/bash
示例:useradd -u 666 -G root,bin -d /home/lrx -c “test user” -s /bin/sh lrx
用户默认值文件
/etc/default/useradd
- GROUP=100 #用户默认组
- HOME=/home #用户家目录
- INACTIVE=-1 #密码过期宽限天数(shadow文件第7字段)
- EXPIRE= #密码失效时间(shadow文件第8字段,默认永不失效)
- SHELL=/bin/sh #默认shell
SKEL=/etc/skel #模板目录
- CREATE_MAIL_SPOOL=yes #是否建立邮箱/etc/login.defs
- PASS_MAX_DAYS 99999 #密码有效期(shadow文件第5字段)
- PASS_MIN_DAYS 0 #密码修改间隔(shadow文件第4字段)
- PASS_MIN_LEN 5 #密码最小5位(PAM生效,这个不生效)
- PASS_WARN_AGE 7 #密码到期警告(shadow文件第6字段)
- UID_MIN 500 #最小和最大UID范围
- GID_MAX 60000
- ENCRYPT_METHOD SHA512 #加密模式
3.2 用户管理命令passwd
passwd [选项] 用户名
选项:
- -S 查询用户密码的密码状态。仅root用户可用(查看/etc/shadow的信息)
- -l 暂时锁定用户。仅root用户可用(相当于在/etc/shadow文件的密码密文前加“!!”)
- -u 解锁用户。仅root用户可用
- –stdin 可以通过管道符输出的数据作为用户的密码 如: echo “123” | passwd –stdin lamp #为lamp设定字符串为123的密码,此操作常用于批量创建用户
3.3 修改用户信息usermod和chage
usermod [选项] 用户名 #与useradd区别是useradd为新用户设定信息,usermod为已存在的用户修改信息
选项:
- -u UID:修改用户的UID号
- -c 用户说明:修改用户的说明信息
- -G 组名:修改用户的附加组
- -L:临时锁定用户(Lock)
-U:解除用户锁定(Unlock)
chage [选项] 用户名
选项:
- -l:列出用户的详细密码状态
-d 日期:修改密码最后一次更改日期(shadow3字段)
chage -d 0 test #把密码修改日期归0,这样用户一登录就要修改密码
- -m 天数:两次密码修改间隔(4字段)
- -M 天数:密码有效期(5字段)
- -W 天数:密码过期前警告天数(6字段)
- -I 天数:密码过后宽限天数(7字段)
- -E 日期:账号失效时间(8字段)
3.4 删除用户userdel与用户切换命令su
userdel [-r] 用户名
选项:
- -r 删除用户的同时删除家目录
手工删除用户步骤(不常用)
查看用户ID
id 用户名
切换用户身份su
su [选项] 用户名
选项:
- -:选项只是用“-”代表连带用户的环境变量一起切换
- -c 命令:仅执行一次命令,而不切换用户身份
4 用户组管理命令
添加用户组
groupadd [选项] 组名
选项:
- -g GID:指定组ID
修改用户组
groupmod [选项] 组名
选项:
- -g GID:修改组ID
- -n 新组名:修改组名
删除用户组
groupdel 组名
注:当用户组里有初始用户时不能删除组,附加用户并不影响用户组的删除
把用户添加入组或从组中删除
gpasswd [选项] 组名
选项:
- -a 用户名:把用户加入组
-d 用户名:把用户从组中删除
useradd -g group1 test1 #添加新用户test1并设它的初始组为group1 gpasswd -a test1 root #将test1用户的初始组改为root