用户相关的文件、解析以及命令的使用
/etc/passwd
第一列:用户名
第二列:加密密码(x表示密码占位符,密码保存在/etc/shadow中)
第三列:用户的ID号
第四列:组的ID号
第五列:用户的描述信息
第六列:用户宿主目录
第七列:用户默认使用的shell(/etc/shells可以查看系统已安装哪些shell)
/etc/shadow
第一列:用户名
第二列:用户加密后的密码
第三列:最后一次更改密码时间(从1970年1月1日算起)
第四列:密码最小使用时间(期限内用户无法更改密码)
第五列:密码最长使用时间(期限过来之后用户必须更改密码)
第六列:密码过期前警告时间
第七列:密码过期后一个宽限时间
第八列:密码失效时间
第九列:保留
passwd:为用户设置密码/锁定解锁用户/查看状态
语法:passwd [options] username
root用户可以为普通用户设置密码
-l:锁定用户(暂时无法登陆系统)
-u:解锁用户
-S(大写):查看用户状态,现实/etc/shadow文件中各种字段的内容
--stdin:标准输入,经常用在shell脚本编程中为用户自动设置密码
-d:删除用户密码,允许普通用户以空密码登录(不建议使用)
-e:设置用户密码过期,用户再次登录时,需要修改密码
-n:设置密码最小使用期限,修改/etc/shadow中的第四列
-x:设置密码最大使用期限,修改/etc/shadow中的第五列
-w:设置密码过期前的警告时间,修改/etc/shadow中的第六列
-i:修改过期后的宽限时间,修改/etc/shadow中的第七列
userdel:删除用户(修改/etc/passwd /etc/shadow /etc/group文件)
语法:userdel [options] username
-r:删除用户时,连同删除用户的宿主目录
usermod:修改用户属性(修改/etc/passwd中的内容)
语法:usermod [options] username
-c:更改用户的描述信息
-d:更改用户的宿主目录
-e:更改用户的过期时间,格式YYYY-MM-DD
-f:修改/etc/shadow第七列内容
-g:修改用户的基本组
-G:修改用户的附加组
-l:修改用户的登录名
-s:修改用户的shell(需要系统支持的shell)
-L:锁定用户 (与passwd -l用法一样)
-U:解锁用户 (与passwd -u用法一样)
/etc/shadow密码区域解释(使用 man 3 crypt 可以查看详细介绍):
分三部分组成:用$隔开
第一部分:加密算法
1:表示用md5加密
5:表示用sha-256加密
6:表示用sha-512加密
第二部分:随机序列号
第三部分:随机序列号和设置的密码共同加密后的字符串(即使两个用户的密码一样,但由于随机序列号不一样,所以在/etc/shadow中看到的哈希值也会不一样)
加密算法:
对称加密:加密和解密使用相同的密码(效率高,但不够安全)
非对称加密:加密和解密使用不同的密码
单向加密,散列加密:提取数据的特征码,常用于数据完整性校验(md5、sha256、sha512等)
(1)不可逆
(2)定长输出
(3)雪崩效应:输入数据一小点儿的变化,会引起结果的巨大的变化
/etc/default/useradd文件解释:
# useradd defaults file //注释行
GROUP=100 //可以创建普通组
HOME=/home //普通用户宿主目录位置(在/home下生成和用户同名的目录,作为用户的宿主目录)
INACTIVE=-1 //是否启用用户过期停止使用权,-1代表不启用
EXPIRE= //设定过期时间,格式为20180808
SHELL=/bin/bash //设定用户的默认使用的shell
SKEL=/etc/skel //新用户宿主目录模板目录
CREATE_MAIL_SPOOL=yes //是否为用户启用邮件通知功能
/etc/skel:目录(用户宿主目录模板目录)----只对新建用户生效
.bash_logout:用户注销时执行的命令
.bash_profile:用户登录系统时执行的命令(用户变量)
.bashrc:用户登录一个新shell时执行的命令
/etc/login.defs文件解释(也是只对新建用户生效):
MAIL_DIR /var/spool/mail //用户系统邮件存放目录
PASS_MAX_DAYS 9999 //密码最长使用期限
PASS_MIN_DAYS 0 //密码最短使用期限,0代表不受限制
PASS_MIN_LEN 8 //密码的最小长度
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 //普通组的最大GID号
SYS_GID_MIN 201 //系统组最小的GID号
SYS_GID_MAX 999 //系统组最大的GID号
CREATE_HOME yes //是否创建宿主目录
UMASK 077 //关于权限的反掩码
USERGROUPS_ENAB yes //删除用户时候是否删除组
ENCRYPT_METHOD SHA512 //用户密码的加密方式
id:显示用户和组的ID
语法:id [options] username
-a:忽略其他版本区别
-Z(大写):显示安全上下文内容(selinux)
-g:显示有效组的id
-G:显示所有组的id
-n:不显示组号,显示名字
-u:显示用户id号
chage:修改用户密码的时间信息(/etc/shadow)
语法: chage [options] username
-l:列出用户的详细密码参数
-d:修改/etc/shadow第三列内容,后面跟日期,格式YYYY-MM-DD
-E:修改/etc/shadow中第八列内容,后面跟日期,格式YYYY-MM-DD
-I:修改/etc/shadow中第七列内容,后面接天数
-m:修改/etc/shadow第四列/内容,后面接天数
-M:修改/etc/shadow第五列内容,后面接天数
-W:修改/etc/shadow第六列内容,后面接天数
/etc/group:
第一列:组的名字
第二列:组的密码区域
第三列:组的id号(gid)
第四列:组中的成员
/etc/gshadow:
第一列:组的名字
第二列:组的密码
第三列:组的管理员
第四列:组成员列表
groupadd:
-d:创建组时指定组的id号
-r:添加一个系统组
groupdel:删除一个组
默认情况下,不能删除一个用户的基本组,可以通过修改用户的基本组之后再删除该组
可以删除用户的同时,系统会删除同名基本组(但是该组必须只有一个用户,否则删除不了)
groupmod:修改组的属性
-g:修改gid号
-n:为组重命名
gpasswd:为组设置密码,设置组的管理员,添加组成员
-A:为组设置管理员
-M:把一些用户添加到组中,用逗号隔开
-r:为组移除密码
-R:让组的密码失效
-a:为组添加成员(组的管理员操作命令)
-d:删除组成员(组的管理员操作命令)
newgrp:为用户修改有效组(只在当前shell生效)
groupmems:为组添加成员,显示组成员列表