用户组回顾
- 用户名与uid映射
- 组名与gid映射
- 用户和组的信息都存储在文本文件种
- /etc/passwd
- /etc/group
- /etc/shadow
- /etc/gshadow
/etc/shadow 密码文件介绍
第一列:文件名
第二列:密码 哈希值 sha512算法 /etc/login.defs用户默认配置文件
第三列:用户上一次修改密码的时间,从1970年1月1日算起
第四列:密码的最小存活期 0
第五列:密码的最大存活期
第六列:提醒天数 23 24 30
第七列:密码失效的时间 从密码到期的时间算起 2
第八列:账号失效的时间 2021-08-07 2021年9月7日过期
第九列:保留
设置密码默认策略
配置密码的期限
chage -l user1
-M:修改密码的最长期限 change -m 0 -M 90 -W 7 -I 14 user
-m:修改密码的最短期限
-d :强制要求用户再下一次登陆时更新密码 change -I user
-W:修改密码的警告周期
-I :修改密码的失效期限,同时显示用户的密码信息 change -I user
-E :直接指定用户到期时间 change -E 2020-10-10 user
登录监控
查看登录的信息
查看谁在登录: w
登录和重启的记录: last
尝试登录失败: lastb
最近用户的登录日志: lastlog
默认权限
umask 最大值 022 002 004 033
文件 666 644 664 662 644
目录 777 755 775 773 744
umask值:
目录的最大权限是777
文件的最大权限是666
设置umask值用umask命令
普通用户的 umask值是 002
文件的权限是 664
目录的权限是775
root用户的 umask值是 022
配置文件/etc/bashrc
修改umask值,编辑~/.bashrc
文件的特殊权限
suid:

suid:4 仅针对二进制的可执行文件,如果一个文件有suid的权限,那么任何人执行该文件,将有文件拥有人的权限
sgid:
目录的特殊权限
sgid:

sgid:2 仅针对二进制的可执行文件,如果一个文件有sgid的权限,那么任何人执行该文件,将有文件拥有组的权限
针对目录而言,如果一个目录有sgid的权限,那么任何人在该目录下面创建文件和目录时,自动继承该目录目录组
stciky:

sticky:1 针对目录而言,如果一个目录有stick的权限,那么只有root用户和文件的拥有人能够删除文件
ACL权限



ACL权限:访问控制列表
setfacl -m u:admin:rwx data 添加用户的acl权限
setfacl -m g:user1:rwx data 添加组的acl权限
getfacl data查看acl权限
setfacl -x u:admin:rwx data/ 删除权限
setfacl -m m::r-x data/
setfacl -n -m u:zhangsan:rwx data/
setfacl -R 递归修改acl权限
setfacl -b 清空所有的acl权限
优先级
拥有人权限> 用户的acl权限> 拥有组组的权限 > 组的ACL > 其他人的权限
说明:acl掩码定义可以指定用户,组所有者和指定组的最大权限。它不限制文件所有者或者其他用户的权限,所有设置了acl权限的文件和目录都有acl掩码。
设置默认权限,影响子目录和目录下面的文件
setfacl -m d:u:admin:rwx data/
对目录本身设置acl权限
setfacl -m u:admin:rwx data/
权限 只能管一层
/data rwx /data/test r-x
root
user1 rm -rf /data/ rwx /data/test r-x
sudo命令使用
sudo语法:sudo [选项] 命令
常用选项:
-V 显示版本编号
-l 显示出自己(执行 sudo 的使用者)的权限
-k 将会强迫使用者在下一次执行 sudo 时问密码(默认5min中以内再次执行sudo不需要密码)
-b 将要执行的指令放在后台执行
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
admin ALL=(root) /usr/sbin/useradd, /usr/bin/mkdir
admin:被赋权用户 ,%admin给admin赋权
ALL:machine
root:以root身份执行
/usr/sbin/useradd, /usr/bin/mkdir:可以以root身份执行的命令
设置admin组可以以root身份执行。。
%admin ALL=(root) /usr/sbin/useradd, /usr/bin/mkdir
vim /etc/sudoers
用户别名:user1 user2 user3
User_Alias ADMINS = user1, admin
命令别名:
Cmnd_Alias COMMAND = /bin/chown, /bin/chmod, /bin/chgrp
ADMINS ALL=(root) NOPASSWD: COMMAND
user1 ALL=(ALL) NOPASSWD: ALL
