• Shell:setfacl缩小普通用户的权限


    • 简介

    • 我们在使用jumpserver的过程中,会向主机推送普通用户,但普通用户有上传下载文件的权限,要想对这些权限进行管控就比较困难,之前考虑通过将$PATH变量下的命令的权限设置为750,设置完发现用户无法正常登陆,并且可能会影响某些需要普通用户权限运行的程序,后发现通过setfacl可准确无误的实现该需求,安全可靠;另外,如果想保留普通用户下载文件的权限,可以在如下脚本中去除sz命令的控制,尽让普通用户使用sz下载相关文件,从而实现更严格的控制;现在将实现脚本分享给大家,希望对小伙伴们有所帮助。
    • 效果展示

    • 修改权限后的sftp-server服务的acl权限查看

    • xftp已经无法打开相关文件夹

    • 脚本setCommonSetFacl-comm.sh

      cat > setCommSetFacl-comm.sh <<"EOF"
      #!/bin/bash
      # 
      # 用法:将需要去除普通用户权限的命令写到comgroup,以:分割,comgroup,sergroup同样
      # 使用ansible批量修改,例如: ansible all -m script -a "setCommSetFacl-comm.sh"
      #
      #用户列表
      usergroup=dev:dba:test
      #命令列表
      comgroup=wget:scp:ftp:sftp:sfdp:rz:sz:curl:rcp:rsync
      #服务列表
      sergroup=sftp-server
       
      #用户个数
      declare -i numOfUser=`echo $usergroup | awk -F: '{ print NF }'`
      #命令个数
      declare -i numOfCom=`echo $comgroup | awk -F: '{ print NF }'`
      #服务个数
      declare -i numOfSer=`echo $sergroup | awk -F: '{ print NF }'`
       
      #遍历每一个用户
      for J in `seq 1 $numOfUser`; do
          user=`echo $usergroup | cut -d: -f$J`
           
          #遍历每一个命名
          for I in `seq 1 $numOfCom`; do
              comm=`echo $comgroup | cut -d: -f$I`
              Dir=`which $comm`
              #使用setfacl,限制该用户的访问权限
              setfacl -m u:$user:r $Dir
          done
           
          #遍历每一服务
          for I in `seq 1 $numOfSer`; do
                  ser=`echo $sergroup | cut -d: -f$I`
              #关闭服务
              pkill $ser
                  Dir=`find / -name $ser`
              #使用setfacl,限制该服务访问权限
                  setfacl -m u:$user:r $Dir
          done
      done
      EOF
    • 调用方法,这里使用ansible

      ansible all -m script -a "setCommSetFacl-comm.sh"
  • 相关阅读:
    retain和copy的区别 #import @class 的区别
    UImageview加边框 加阴影
    iOS中有两种支持机制:Notification和KVO(KeyValue Observing)
    Windows上编译,学习Objectivec
    CAAnimation动画
    ObjectiveC 熟记小概念
    cocos2d工具大全
    cocos2d 0.99.5版本屏幕默认是横屏,怎么修改为竖屏呢?
    ObjectiveC 的 self 和 super 详解
    ObjectiveC 的属性与合成方法使用详解
  • 原文地址:https://www.cnblogs.com/William-Guozi/p/Shell_setfacl.html
Copyright © 2020-2023  润新知