day20 用户权限

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) 具有文件语法检查功能

[[email protected] ~]# 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方法:

方法一: 利用字符进行特殊权限位设置

[[email protected] ~]# ll /usr/bin/cat

-rwxr-xr-x. 1 root root 54080 Apr 11  2018 /usr/bin/cat

[[email protected] ~]# chmod u+s /usr/bin/cat

[[email protected] ~]# ll /usr/bin/cat

-rwsr-xr-x. 1 root root 54080 Apr 11  2018 /usr/bin/cat

[[email protected] ~]# chmod u-s /usr/bin/cat

方法二: 利用数值进行特殊权限位设置

[[email protected] ~]# ll /usr/bin/vi

-rwxr-xr-x. 1 root root 910072 Apr 11  2018 /usr/bin/vi

[[email protected] ~]# chmod 4755 /usr/bin/vi

[[email protected] ~]# ll /usr/bin/vi

-rwsr-xr-x. 1 root root 910072 Apr 11  2018 /usr/bin/vi

[[email protected] ~]# ll /bin/vim

-rwxr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim

[[email protected] ~]# chmod 4755 /bin/vim

[[email protected] ~]# ll /bin/vim

-rwsr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim

setgid:    在属组权限位生成一个s位(2)

总结: 让一些文件执行的时候, 可以让普通用户可以以root属组身份进行执行

方法一: 利用字符进行特殊权限位设置

[[email protected] ~]# ll /bin/vim

-rwsr-xr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim

[[email protected] ~]# chmod g+s /bin/vim

[[email protected] ~]# ll /bin/vim

-rwsr-sr-x. 1 root root 2294208 Oct 31 03:57 /bin/vim

方法二: 利用数值进行特殊权限位设置

[[email protected] ~]# ll /bin/cat

-rwsr-xr-x. 1 root root 54080 Apr 11  2018 /bin/cat

[[email protected] ~]# chmod 2755 /bin/cat

[[email protected] ~]# 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)

对一个目录设置粘滞位权限, 目录中数据只能被自己进行删除, 其他用户没有权力删除

如何设置粘滞位:

方法一: 利用字符进行特殊权限位设置

[[email protected] oldboy30]# ll  /share_dir/ -d

drwxr-xrwx 2 root root 26 Jan 25 18:38 /share_dir/

[[email protected] oldboy30]# chmod o+t /share_dir/

[[email protected] oldboy30]# ll  /share_dir/ -d

drwxr-xrwt 2 root root 26 Jan 25 18:38 /share_dir/

方法二: 利用数值进行特殊权限位设置

[[email protected] oldboy30]# ll  /share_dir/ -d

drwxr-xrwx 2 root root 26 Jan 25 18:43 /share_dir/

[[email protected] oldboy30]# chmod 1777 /share_dir/

[[email protected] oldboy30]# ll  /share_dir/ -d

drwxrwxrwt 2 root root 26 Jan 25 18:43 /share_dir/

特殊说明: 系统中已经设置了一个共享目录

[[email protected] oldboy30]# ll -d /tmp/

drwxrwxrwt. 10 root root 248 Jan 25 18:46 /tmp/

PS: 一定不能随意修改此目录的权限 (mysql服务需要依赖/tmp目录权限为1777)

04. 用户操作行为审计

实现的方式: 利用跳板机/堡垒机 jumpserver

你可能感兴趣的:(day20 用户权限)