1 用户管理权限
如何让普通用户能像root一样操作系统
1) 篡权夺位
su - / su - root
缺点: root权限泛滥
2) 了解文件或目录权限
文件权限说明 9位权限位 (每三位对应一个用户)
读: 看文件数据信息
写: 编辑修改文件
执行: (对于脚本文件)里面记录了命令信息,文件可自动运行
缺点: 所有用户都可能对文件数据拥有权限
3) root皇帝 普通人(大宝剑)
sudo授权 --- 普通用户 大宝剑
缺点: 需要根据不同的用户进行授权
4) 使用特殊权限位进行授权
特点: 皇帝可以执行命令, 进行指定,指定某个命令所有用户都可以操作
/bin/cat此命令所有用户都可以想root一样操作, 不需要输入sudo
目录权限说明 9位权限位
读: 查看目录中数据名称 数据属性信息
写: 创建或删除数据在目录中
执行: 可以进入到目录中
结论01: 文件权限中,更关注是否有读的权限
结论02: 目录权限中,更关注是否有执行的权限
结论03: 对于root用户而言, 管理目录具有绝对权限
对于root用户而言, 管理文件只要再有执行权限 就是无敌的存在
结论04: 多目录或数据之间具有权限的继承关系
(用户访问文件数据过程原理 / -- oldboy01 --- oldboy02 --- oldboy01.txt)
3) 用户权限修改方式
chown --- 修改文件数据属主或属组西悉尼
-R
chmod --- 修改文件数据12位权限位
精确修改 u g o
批量修改 a ugo 644 755
-R
01. 文件或目录默认权限的设置方法
问题一: root用户创建的文件为什么默认值位644
普通用户创建的文件为什么默认值位664
问题二: root用户创建的目录为什么默认值位755
普通用户创建的目录为什么默认值位775
预备知识:
umask: 是一个数值, 利用这个数值进行运算 生成默认文件或目录权限数值
umask xxx 临时修改
root用户默认umask=0022
文件: 666
偶数:创建文件默认权限值=666-umask=666-22=644
奇数:创建文件默认权限值=666-umask=666-33=633 减去奇数的位结果上要再加1
644
目录: 777
偶数: 创建目录默认权限值=777-umask=777-22=755
奇数: 创建目录默认权限值=777-umask=777-33=744
普通用户默认umask=0002
文件: 666
偶数: 创建文件默认权限值=666-umask=666-2=664
奇数: 创建文件默认权限值=666-umask=666-3=663 奇数运算位再加1 664
目录: 777
偶数: 创建目录默认权限值=777-umask=777-2=775
奇数: 创建目录默认权限值=777-umask=777-3=774
问题三: 默认的umask如何设置
cat /etc/profile
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
条件01 条件02
条件01: UID环境变量 记录当前登陆用户id数值信息
是否当前用户uid数值大于199
大于 > greater than --> -gt
小于 < less than --> -lt
等于 = equal --> -eq
大于等于 >= Greater than equal --> -ge
小于等于 <= less than equal --> -le
不等于 <> != no equal --> -ne
条件02: 用户名和用户组名是否相同
/usr/bin/id -gn --- 显示当前用户组名
/usr/bin/id -un --- 显示当前用户名
02. sudo详细配置说明
普通用户进行操作:
sudo -l --- 显示普通用户拥有了root用户哪些能力
应用sudo能力时,需要在命令前面加上sudo
sudo cat /etc/shadow
root用户进行sudo授权:
visudo -- vi sudo配置文件 == vim /etc/sudoers
第一步: 切换到92gg(centos7) 98gg(centos6)
第二步: 开始编辑进行授权
#给谁进行授权 根据主机进行授权 授予什么权力
oldboy30 ALL=(ALL) /usr/bin/cat /etc/shadow
第三步: 保存退出sudo文件时,会有错误提示
>>> /etc/sudoers: syntax error near line 94 <<<
What now?
编辑的语法格式不正确
a 命令信息必须写成绝对路径
visudo命令特点:
1) 可以直接编辑sudo配置
2) 具有文件语法检查功能
[root@oldboy-xiaodao.com.cn ~]# visudo -c --- 手动进行语法检查
>>> /etc/sudoers: syntax error near line 94 <<<
parse error in /etc/sudoers near line 94
visudo配置文件编辑方法:
a 授权某一个或几个命令
oldboy30 ALL=(ALL) /usr/bin/cat /etc/shadow
oldboy30 ALL=(ALL) /usr/bin/cat /etc/shadow, /bin/rm -rf /oldboy/etc/
说明:
1) 对于一些危险命令进行授权时,需要加上参数
2) 对于有些命令, root用户命令绝对路径 和 普通用户命令绝对路径不统一
b 授权大量命令信息,并排除指定命令
91 oldboy ALL=(ALL) /bin/*, ! /bin/vi
c 取消sudo操作时密码认证
oldboy30 ALL=(ALL) NOPASSWD: /usr/bin/*, /bin/*, !/bin/rm -rf /root/
系统中特殊权限位
9个权限 特殊的三个权限位:
系统中的权限位总共位 12位
setuid: 在属主权限位生成一个s位(4)
总结: 让一些文件执行的时候, 可以让普通用户可以以root属主的身份进行执行
设置setuid方法:
方法一: 利用字符进行特殊权限位设置
[root@oldboy-xiaodao.com.cn ~]# ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54080 Apr 11 2018 /usr/bin/cat
[root@oldboy-xiaodao.com.cn ~]# chmod u+s /usr/bin/cat
[root@oldboy-xiaodao.com.cn ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54080 Apr 11 2018 /usr/bin/cat
[root@oldboy-xiaodao.com.cn ~]# chmod u-s /usr/bin/cat
方法二: 利用数值进行特殊权限位设置
[root@oldboy-xiaodao.com.cn ~]# ll /usr/bin/vi
-rwxr-xr-x. 1 root root 910072 Apr 11 2018 /usr/bin/vi
[root@oldboy-xiaodao.com.cn ~]# chmod 4755 /usr/bin/vi
[root@oldboy-xiaodao.com.cn ~]# ll /usr/bin/vi
-rwsr-xr-x. 1 root root 910072 Apr 11 2018 /usr/bin/vi
[root@oldboy-xiaodao.com.cn ~]# ll /bin/vim
-rwxr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim
[root@oldboy-xiaodao.com.cn ~]# chmod 4755 /bin/vim
[root@oldboy-xiaodao.com.cn ~]# ll /bin/vim
-rwsr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim
setgid: 在属组权限位生成一个s位(2)
总结: 让一些文件执行的时候, 可以让普通用户可以以root属组身份进行执行
方法一: 利用字符进行特殊权限位设置
[root@oldboy-xiaodao.com.cn ~]# ll /bin/vim
-rwsr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim
[root@oldboy-xiaodao.com.cn ~]# chmod g+s /bin/vim
[root@oldboy-xiaodao.com.cn ~]# ll /bin/vim
-rwsr-sr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim
方法二: 利用数值进行特殊权限位设置
[root@oldboy-xiaodao.com.cn ~]# ll /bin/cat
-rwsr-xr-x. 1 root root 54080 Apr 11 2018 /bin/cat
[root@oldboy-xiaodao.com.cn ~]# chmod 2755 /bin/cat
[root@oldboy-xiaodao.com.cn ~]# ll /bin/cat
-rwxr-sr-x. 1 root root 54080 Apr 11 2018 /bin/cat
r 4 w 2 x 1
setuid 4 setgid 2 Stickybit 1
Stickybit: 其他用户权限位生成一个t位(1)
对一个目录设置粘滞位权限, 目录中数据只能被自己进行删除, 其他用户没有权力删除
如何设置粘滞位:
方法一: 利用字符进行特殊权限位设置
[root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d
drwxr-xrwx 2 root root 26 Jan 25 18:38 /share_dir/
[root@oldboy-xiaodao.com.cn oldboy30]# chmod o+t /share_dir/
[root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d
drwxr-xrwt 2 root root 26 Jan 25 18:38 /share_dir/
方法二: 利用数值进行特殊权限位设置
[root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d
drwxr-xrwx 2 root root 26 Jan 25 18:43 /share_dir/
[root@oldboy-xiaodao.com.cn oldboy30]# chmod 1777 /share_dir/
[root@oldboy-xiaodao.com.cn oldboy30]# ll /share_dir/ -d
drwxrwxrwt 2 root root 26 Jan 25 18:43 /share_dir/
特殊说明: 系统中已经设置了一个共享目录
[root@oldboy-xiaodao.com.cn oldboy30]# ll -d /tmp/
drwxrwxrwt. 10 root root 248 Jan 25 18:46 /tmp/
PS: 一定不能随意修改此目录的权限 (mysql服务需要依赖/tmp目录权限为1777)
04. 用户操作行为审计
实现的方式: 利用跳板机/堡垒机 jumpserver