写在前面:
博客书写牢记5W1H法则:What,Why,When,Where,Who,How。
用户、组和权限:
◆ 用户类别与用户标识
◆ 组类别与组标识
◆ 认证机制与密码存储
加密算法
随机数简介
◆ 安全上下文
◆ 用户和组管理
groupadd
groupmod
groupdel
/etc/passwd
useradd
/etc/login.defs与/etc/default/useradd
/etc/shadow
usermod
userdel
passwd
id
su
gpasswd
newgrp
chage
chfn
finger
chsh
pwck
grpck
linux是多用户多任务的系统:
多用户:多人同时使用系统资源;
多任务:同时运行多个进程;
linux AAA机制:
Authentication #认证
Authorization #授权
Account #账号
用户类别与用户标识:
管理员:root
普通用户:
系统用户:仅用户运行系统程序;
登录用户:系统资源的正常使用者;
用户标识(UID):
linux系统一般用16bits的二进制数字表示,即0-65535。也有些系统用32bits的二进制数字表示。
管理员:0
普通用户:
系统用户:
centOS5,6:1-499
centOS7:1-999
登录用户:
centOS5,6:500+
centOS7:1000+
补充:linux系统存储二进制数字更加高效,所有用户都是以UID来标识的,但对于用户来说,这样的数字并不好记忆,所以linux对用户和UID做了关联文件(/etc/passwd),以使用户和系统都能快速识别用户。
组类别与组标识:
管理员组
普通用户组:
系统组
登录组
组标识(GID):
管理员组:0
普通用户组:
系统用户组:
centOS5,6:1-499
centOS7:1-999
登录用户组:
centOS5,6:500+
centOS7:1000+
补充:与用户类似,组同样有一个组名与GID对应的文件:/etc/group
认证机制与密码存储:
通过对比登录时提供的信息与事先存储的信息是否一致来判断。
用户认证信息文件:/etc/shadow
组认证信息文件:/etc/gshadow
密码存储方式:
加密存放,单向加密。仅加密,无法解密,通过提取数据特征码计算,具有以下特征:
数据相同,加密结果相同;
定长输出;
雪崩效应;(数据中有一点儿改变,则计算结果大不相同)
加密算法:(以下加密算法在/etc/shadow文件的密码字段分别以1-6表示)
md5:128bits
sha1:160bits
sha224
sha256
sha384
sha512
补充:
/etc/shadow和gshadow文件存储加密密码时,并不是通过密码字符串直接使用加密算法计算结果来存储,而是先在密码字符串中添加不定长随机数(salt),然后再进行计算并将salt与加密结果一并存储。
随机数简述:
熵池:真正随机产生的随机数
伪随机数:软件模拟产生
/dev/random:仅从熵池返回随机数,随机数耗尽时会阻塞进程;
/dev/urandom:先从熵池返回随机数,熵池耗尽时,则从伪随机数生成器返回随机数;
安全上下文:
进程:以某个用户的身份运行,进程对资源的操作权限取决于它所代表的用户;
文件:权限模型
属主:owner
属组:group
其它:other
权限模型生效的机制:
进程的运行者:
是否与文件的属主相同,如果是,则以文件属主的身份来访问此文件;否则
是否属于文件的属组,如果是,则以文件属组的身份来访问此文件;否则
以文件的其它用户的身份来访问此文件;
用户和组管理:
主要命令如下:
组:groupadd、groupmod、groupdel
用户:useradd、usermod、userdel
密码认证:passwd
组管理:
组文件:/etc/group
文件格式:
group_name:password:GID:user_list
密码行只是密码占位符,密码真实存储位置在/etc/gshadow
groupadd:
create a new group
groupadd [options] group
-g, --gid GID:设置GID
-r, --system:创建系统组
groupmod:
modify a group definition on the system
groupmod [options] GROUP
-g, --gid GID:修改GID
-n, --new-name NEW_GROUP:修改组名
groupdel:
delete a group
groupdel group
用户管理:
用户文件:/etc/passwd
文件格式:
account:password:UID:GID:GECOS:directory:shell
GECOS:用户注释信息
useradd:
create a new user or update default new user information
useradd [options] LOGIN
-c, --comment COMMENT:用户注释信息
-d, --home HOME_DIR:家目录
-g, --gid GROUP:设置基本组
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:设置附加组
-m, --create-home:强制创建家目录
-M:不创建家目录
-r, --system:创建系统用户
-s, --shell SHELL:用户登录的shell名
-u, --uid UID:设置UID
useradd -D
显示创建用户时的默认设置;
useradd -D [options]
设置默认选项;
-e, --expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定
-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能
补充:/etc/login.defs文件设置了新建用户的默认控制信息(邮箱目录、密码过期设置、UID及GID默认取值范围、家目录、umask、密码加密方式);
/etc/default/useradd文件设置了新建用户的默认家目录、shell、邮箱创建与否。
补充:
影子口令文件:/etc/shadow
文件格式:
login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
登录名:密码:密码最近一次的修改时间:密码最短使用期限:密码最长使用期限:警告天数:非活动期限:账号禁用日期:保留字段
密码是以“$加密算法$salt$加密的密码字符串”格式存储的
用户密码过期图示:
usermod:
modify a user account
usermod [options] LOGIN
-d, --home HOME_DIR
usermod -m -d HOME_DIR修改家目录的同时,将原家目录文件复制到新目录
-g, --gid GROUP
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:设置附加组,会覆盖原有附加组!与-a选项一起使用,添加附加组而不覆盖
-l, --login NEW_LOGIN:修改用户名
-s, --shell SHELL
-u, --uid UID
-L, --lock:锁定用户,会在密码文件/etc/shadow密码字段前加“!”
-U, --unlock:解锁用户,去掉密码字段前!
userdel:
delete a user account and related files
userdel [options] LOGIN
-r, --remove:一并删除用户家目录和用户邮箱
passwd:
update user’s authentication tokens
passwd [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username]
(1)passwd:修改自己的密码;
(2)passwd USERNAME:修改其他用户密码,仅root用户可用
-l:锁定密码
--stdin:从标准输入读取密码
-u:解除锁定
-d:快速清除密码;
密码复杂度:
不少于8位字符
不可与旧密码太相似
应该包含4类字符(小写字母、大写字母、数字、特殊符号)中的3种
id
print real and effective user and group IDs
id [OPTION]... [USERNAME]
-u:仅查看uid
-g:仅查看gid
-G:查看所属的所有组的ID;
-n:显示名称,而非ID
su
run a shell with substitute user and group IDs
-, -l, --login:以登录方式切换,完全切换
-c, --command=COMMAND:仅以指定用户身份运行此命令,而不切换用户
gpasswd
administer /etc/group and /etc/gshadow
gpasswd [option] group
-a, --add user:添加用户到组
-d, --delete user:从组中将用户移除
newgrp
log in to a new group
newgrp [-] [group]
临时切换登录用户的基本组,使用exit退出
chage
change user password expiry information修改用户密码终止信息
chage [options] [LOGIN]
-d, --lastday LAST_DAY:设置密码最近一次修改时间。使用距1970年1月1日的天数或设置YYYY-MM-DD格式的日期
-E, --expiredate EXPIRE_DATE:设置账号禁用日期,设置-1移除禁用日期功能
-I, --inactive INACTIVE:设置非活动期限,设置-1移除非活动期限
-l, --list:显示密码信息
-m, --mindays MIN_DAYS:密码最小改动期限
-M, --maxdays MAX_DAYS:密码最大使用期限
-W, --warndays WARN_DAYS:密码过期前提醒天数
chfn
change your finger information
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] [-u] [-v] [username]
修改用户附加信息,即/etc/passwd文件的第5字段
finger
user information lookup program
finger [-lmsp] [user ...] [user@host ...]
chsh
change your login shell
-s, --shell shell:修改登录shell
-l, --list-shells:显示/etc/shells列出的shell
pwck
(passwd chack)verify integrity of password files
检查/etc/passwd和/etc/shadow文件格式及信息可用
grpck
(group check)verify integrity of group files
检查/etc/group和/etc/gshadow文件格式及信息可用
转载于:https://blog.51cto.com/1036416056/1747949