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

  • 简介

  • 我们在使用jumpserver的过程中,会向主机推送普通用户,但普通用户有上传下载文件的权限,要想对这些权限进行管控就比较困难,之前考虑通过将$PATH变量下的命令的权限设置为750,设置完发现用户无法正常登陆,并且可能会影响某些需要普通用户权限运行的程序,后发现通过setfacl可准确无误的实现该需求,安全可靠,现在将实现脚本分享给大家,希望对小伙伴们有所帮助。
  • setCommonSetFacl-comm.sh

    cat > setCommSetFacl-comm.sh <<"EOF"
    #!/bin/bash # 设置命令的权限为750 # 用法:将需要去除普通用户权限的命令写到comgroup,以:分割 # 使用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"

猜你喜欢

转载自www.cnblogs.com/William-Guozi/p/Shell_setfacl.html