Centos7 高级权限与提权

众所周知:linux一切皆文件

高级权限

  一、ACL

    用命令setfacl设置的ACL权限是UGO权限的扩展

    setfacl可以更精确的控制权限的分配,比如让某一个用户对某一个文件具有某种权限

 

     也可以对组设置,设置的用户和组都必须存在,

    也可以给目录设置,都一样

    查看权限:

      getfacl 文件

    设置权限:

      setfacl -m u:用户:权限 文件      #用户可为空,为修改属主权限

      setfacl -m g:组:权限 文件        #组可为空,为修改属组权限

      setfacl -m o:用户:权限 文件        #用户可为空,为修改其他人的权限

    清除权限:

      setfacl -x g:组 文件      #删除组的权限

      setfacl -b 文件        #删除文件所有acl权限

 

 

  二、文件属性

    查看文件属性

      a      仅允许追加内容

      i      禁止修改内容

      A      不更改文件访问时间

    设置属性

      chattr +属性 文件

    删除属性

      chattr -属性 文件

 

 

 

切换用户与提权

  su:

    特点:使用普通用户登录,然后使用su命令切换到root账户下

    优点:简单粗暴

    缺点:

      1、需要知道root密码

      2、权限控制不精细;每次都是获取所有root权限

 

  sudo:

    特点:

      1、使用普通用户登录,然后sudo命令提取root用户的部分管理权限,注意只是某部分,而不是全部

      2、不需要切换到root用户下

    优点:

      1、不需要知道root密码,输入的是自己的密码

      2、权限控制更为精细,可以控制普通用户只获取部分root权限

    缺点:相对复杂

 

  1、SU切换用户

    1、linux中shell可以分为两类

      登录shell:需要输入用户名密码才能进入shell,我们日常接触的最多

      非登录shell:不需要输入用户名密码就能进入shell,比如运行bash会开启一个新的会话窗口

    2、shell的使用方式有两种

      交互式:等待用户输入执行命令(终端操作,需要不断提示)

      非交互式:执行shell脚本,脚本执行结束后shell自动退出

 

    bash shell配置文件介绍

      文件主要保存用户的工作环境

      全局配置文件:

        /etc/profile

        /etc/profile.d/*.sh

        /etc/bashrc

      个人配置文件

        ~/.bash_profile

        ~/.bashrc

      #PS:

        profile类文件,设置环境变量,登陆前运行的脚本和命令

        bashrc类文件,设定本地变量,定义命令别名

        如果全局配置与个人配置产生冲突,以个人配置为准

      #配置文件的应用顺序:

        如果执行的是登陆式shell,那么配置文件的执行顺序是:

          /etc/profile  >  /etc/profile.d/*.sh  >  ~/.bash_profile  >  ~/.bashrc  >  /etc/bashrc

        如果执行的是非登录式shell,那么配置文件的执行顺序是:

          ~/.bashrc  >  /etc/bashrc  >  /etc/profile.d/*.sh

 

      执行登录与非登录式shell

        su - 用户

          执行登录式shell,身份与环境都切换

        su 用户

          执行非登录shell,只切换用户身份

      #PS:

        1、从root用户切换到普通用户无需输入密码,反之则需要

        2、切换身份执行命令  su - 用户 -c "命令"

 

  2、sudo提权

    配置的两种方式

      1、visudo

        会提示语法错误,推荐使用

        -c  检查配置是否正确

      2、vim /etc/sudoers

        语法:syntax:  user  MACHINE=COMMANDS

        例如:root  ALL=(ALL)  ALL  

          (all)表示允许用户以哪个用户的权限做事

          root表示用户可以在所偶遇主机上以任意用户身份执行所有命令

      sudo常用参数

        -l    登录用户下,执行sudo -l ,显示当前用户有哪些权限

        -k    删除/var/db/sudo/下面对应的时间戳信息,下次执行sudo许哟啊输入当前用户的密码

                系统默认5分钟失效

                配置免密是另一种情况

 

posted @ 2020-10-30 20:24  大胡萝卜没有须  阅读(510)  评论(0)    收藏  举报