5.1 用户管理重要文件的解释
5.1.1 用户标识符
- 用户:UID
- 组:GID(逻辑容器:包含用户,实现集中授权)
- 用户分类
- 管理员用户:root UID:0
- 普通用户: 1000-65535
- 程序(系统)用户:1-999
- 组分类
1.第一种分类方式(按照用户分类):- 管理员组:root
- 基本组:Linux创建新用户时,如果没有指定隶属的组,则系统为用户建立一个同名的用户组
- 附加组:一个用户可以有多个附加组(有效组)
2.第二种分类:
- 管理员组:root
- 普通用户组:
- 系统用户组:
5.1.2 UID/GID解析
- 识别思路:字符—>解析—>UID/GID
/etc/passwd
:存储用户基本信息/etc/shadow
:存储用户的影子口令/etc/group
:存储组的用户信息
5.1.3 /etc/passwd 解释
- 第一列:用户名(name)
- 第二列:加密密码(x表示密码占位符,密码保存在/etc/shadow中)
- 第三列:UID
- 第四列:GID
- 第五列:描述信息
- 第六列:用户的宿主目录
- 第七列:用户默认使用的shell(/etc/shell)
5.1.4 /etc/shadow 解释
- 第一列:用户的登录名
- 第二列:用户加密后的密码
- 第三列:最后一次更改密码的时间(时间戳)
- 第四列:密码不可以修改的天数
- 第五列:密码需要重新修改的天数
- 第六列:密码需要修改前的警告天数
- 第七列:密码过期后账号宽限时间
- 第八列:账号失效日期
- 第九列:保留 (暂时没用)
5.1.5 /etc/shadow 密码区域解释
三部分组成:用$隔开(格式:$id$salt$encrypted)
- 第一部分:加密算法
- 1:md5加密
- 5:SHA-256加密
- 6:SHA—512加密
- 第二部分:随机序列号(salt)
- 第三部分:随机序列号和设置密码共同加密后的字符串
5.1.6 /etc/group 解释
- 第一列:组名字
- 第二列:组的密码区域
- 第三列:组的id号(GID)
- 第四列:组的成员(不显示初始化成员)
5.1.7 /etc/gshadow 解释
- 第一列:组的名字
- 第二列:组的密码
- 第三列:组的管理员
- 第四列:组的成员列表
5.2 重要的文件
5.2.1 /etc/useradd目录(只对新用户有效):
# useradd defaults file //注释行
GROUP=100 //可以创建普通组
HOME=/home //普通用户宿主目录(在home下生成和用户同名的目录)
INACTIVE=-1 //是否启用用户过期停止使用权(若为数字,则代表过期宽限时间,-1代表不启用)
EXPIRE= //设定过期时间
SHELL=/bin/bash //设定用户默认使用的shell
SKEL=/etc/skel //新用户宿主目录模板目录
CREATE_MAIL_SPOOL=yes //是否为用户启用邮件通知
5.1.2 /etc/skel 目录(用户宿主目录模板目录,只对新建用户生效):
- 新用户的目录下必须有这三个文件
.bash_logout
:用户注销时执行的命令.bash_profile
:用户登录系统时执行的命令(用户变量).bashrc
:用户登录一个新shell时执行的命令
5.1.3 /etc/login.defs 文件解释:(只对新建用户生效)
- MAIL_DIR /var/spool/mail
- PASS_MAX_DAYS 99999 //密码最长使用时间
- PASS_MIN_DAYS 0 //密码最短使用时间,0代表不受限制
- PASS_MIN_LEN 5 //密码最小长度
- PASS_WARN_AGE 7 //密码过期警告时间
- UID_MIN 1000 //普通用户最小UID号
- UID_MAX 60000 //普通用户最大UID号
- SYS_UID_MIN 201 //系统用户最小的UID
- SYS_UID_MAX 999 //系统用户最大的UID
- GID_MIN 1000 //普通组最小GID
- GID_MAX 60000 //普通组最大UID号
- SYS_GID_MIN 201 //系统组最小的UID
- SYS_GID_MAX 999 //系统组最大的UID
- CREATE_HOME YES //是否创建宿主目录
- UMASK 077 //关于权限的反掩码
- USERGROUPS_ENAB YES //删除用户时是否删除组
- ENCRYPY_METHOD SHA512 //用户密码的加密方式
5.3 用户管理命令
5.3.1 useradd
:添加新用户(更改/etc/passwd、/etc/group、/etc/shadow)
- 语法:
useradd [options] user_name
- -c:新建用户时,为用户添加描述信息
- -d:指定用户的宿主目录
- -D:查看和修改默认配置(修改/etc/default/useradd文件中的默认值)
- -g:修改默认的组
- -b:修改默认宿主目录
- -f:修改过期是否停用
- -e:修改过期时间
- -s:修改默认shell
- -e:新建用户时,设置过期时间(格式:YYYY-MM-DD)
- -g:指定用户的基本组(没有该选项时,Linux会建立一个同名组作为用户的基本组)
- -G:新建用户时,指定用户的附加组,附加组可以有多个
- -m:创建宿主目录(必须与 -k 一起使用)
- -M:创建用户时,不为用户创建宿主目录
- -p:创建用户时,为用户设置加密的密码(不推荐使用)
- -r:创建系统用户
- -s:指定默认的shell(系统支持的shell)
- -u:指定用户的UID
- 手动添加用户需要
- 1.将数据写入/etc/passwd、/etc/shadow、/etc/group
- 2.在/home/下建立相应文件夹
- 3.将/etc/skel/下的文件复制到/home/用户 / 文件夹下
5.3.2 passwd
:为用户设置密码、锁定解锁用户、查看用户状态
- 语法:
passwd [options] user_name
- passwd user_name :直接设置密码
- -l:锁定用户(暂时无法登陆)
- -u:解锁用户
- -S:查看用户状态,显示/etc/shadow文件中各个字段的内容
- —stdin:标准输入,经常在shell脚本编程中为用户自动设置密码
- -d:删除用户密码,允许普通用户以空密码登陆,仅root用户可以使用
- -e:快速设置密码过期(用户再次登录时需要修改密码)
- -n:设置密码最小使用期限
- -x:设置密码最大使用期限
- -w:设置密码过期前的警告时间
- -i:修改密码过期后的宽限时间
- 普通用户设置密码时,先验证当前密码,并且要求符合密码规范
- root用户设置密码时,不需要验证密码,并且可以不符合密码规范
5.3.3 userdel
:删除用户(passwd、shadow、group都修改删除)
- 语法:
userdel [options] user_name
- -r :删除用户时,连同用户的宿主目录一块删除(如果不加,则不删除)
5.3.4 usermod
:修改用户属性(root可以通过vim进行修改)
- 语法:
usermod [options] user_name
- -c:更改用户的描述信息
- -d:更改用户的宿主目录
- -e:更改用户的过期时间
- -f:修改/etc/shadow中第七列的内容
- -g:修改用户的基本组
- -G:修改用户的附加组
- -l: 更改用户的登录名(重命名、不修改宿主目录)
- -s:修改用户的shell
- -L:锁定用户
- -U:解锁用户
5.3.5 chsh
:修改用户的shell
- 语法:
chsh [options] user_name
- -s:后面跟shell,更改用户的shell
- -l:显示系统当前支持的shell
- 在/etc/目录下添加 nologin.txt 文件,则可以进行提示
5.3.6 finger
:显示用户的基本信息(需要安装)
- 语法:
finger [options] user_name
- -s、-l、
5.3.7 chfn
:修改用户的基本信息
- 语法:
chfn [options] user_name
- -o:修改办公室
- -p:修改办公室电话
- -h:修改家庭电话
5.3.8 id
:显示用户和组的ID号
- 语法:
id [options] user_name
- -a:忽略其他版本的区别
- -Z:显示安全上下文的内容(内核)
- -g: 显示有效组号
- -G:显示所有组号(基本组、附加组)
- -n:显示名字(与ugG连用)
- -u :显示id
5.3.9 chage
:修改用户密码的时间信息
- 语法:
chage [options] user_name
- -l :列出用户的详细的密码参数
- -d:修改/etc/shadow第三列的内容(后面日期格式:YYYY-MM-DD)
- -E:修改/etc/shadow中第八列的信息,后面跟日期
- -I:修改/etc/shadow中第七列的内容,后面跟天数
- -m:修改/etc/shadow中第四列的内容,后面跟天数
- -M:修改/etc/shadow中第五列的内容,后面跟天数
- -w:修改/etc/shadow中第六列的内容,后面跟天数
5.4 组管理命令
5.4.1 groupadd
:创建组
- -g:指定组的id
- -r:创建系统组
5.4.2 groupdel
:删除组
- 默认情况下不能删除用户的基本组,可以通过修改用户的基本组后删除组,可以删除用户的同时系统删除基本组(该组是一个用户的基本组)
5.4.3 groupmod
:修改组的属性
- -g:修改组的id号
- -n:重命名
5.4.4 gpasswd
:为组设置密码、管理员、添加成员
- -A:设置组管理员
- -M:批量添加成员
- -r:移除组的密码
- -R:让组的密码失效
- -a:为组添加成员(组管理员的命令)
- -d:删除组成员(组管理员的命令)
5.4.5 newgrp
:为用户修改有效组(只在当前shell生效)
- exit:退出newgroup