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"
Shell:setfacl缩小普通用户的权限的更多相关文章
- linux shell系列9 统计用户的权限
#!/bin/bash #set -x host=`hostname` ip=`ifconfig $(ip a|grep eth|head -n1|awk -F: '{print $2}') |gre ...
- 【linux相识相知】用户及权限管理
linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...
- 6.linux 用户和权限的建立
一.用户和权限的建立 su 用户名 切换用户,如果是root用户切换其他用户,不需要输入密码. exit 可以切换回上一个用户 linux 操作系统用户 ...
- Linux系统中(CentOS 7)的用户和权限管理
目录 用户和组 用户信息文件 用户密码信息 相关命令 用户管理 组管理 密码管理 权限管理 文件的详细信息 文件权限 相关命令 用户和组 用户信息文件 /etc/passwd (1 2 3 4 5 6 ...
- linux的用户扩充权限管理acl和用户使用系统资源的限制
用户扩充权限管理 acl 1.扩充权限的方式 文件扩充权限 ACL 磁盘配额 2.文件扩充权限 1.安全位 安全位 ---set位 SUID SGID set仅可以加给 u.g, 如: ...
- Linux学习笔记1_用户和权限
自从我大微软终于放下身段,决定给开源社区一个迟来的拥抱,追随多年的拥趸们像是突然得到了女神的垂青,各种茫然失措.痛哭流涕.欢欣鼓舞,纷纷唱了起来:“等了好久终于等到今天,梦了好久终于把梦实现……”唱完 ...
- 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令
Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...
- linux 添加用户、权限
# useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假 ...
- mongoDB之用户及权限设置
之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB.在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问. 我部署的环境是ubuntu 1 ...
随机推荐
- linux下安装cmake方法(2)---直接用命令安装
1.linux环境下打开网页,输入上网账号密码,确保已经联网 2.打开终端:输入cmake --version,如果出现版本号,表明已经安装,如果显示没有安装cmake,则需要安装 3.在终端里输入: ...
- Vi的三种模式及其指令
第一部分:一般指令模式可用按键说明,光标移动,复制粘贴.搜索替代 移动光标的方法: 移动光标的方法 h或(左箭头) 光标向左移动一个字符 j或(下箭头) 光标向下移动一个字符 k或(上箭头) 光标向上 ...
- ffmpeg 视频合并
/// <summary> /// 视频合并 /// </summary> /// <param name="File1">第一个视频地址< ...
- 【linux学习笔记】
网上看一个两小时突击linux的教程,就想补充一下linux的知识.想着一天抽出俩小时立马就能学完呢,结果乱七八糟的事情拖了四五天,实际完成某项任务的时间超出预期完成任务的两部不止.好了," ...
- 《【面试突击】— Redis篇》--Redis Cluster及缓存使用和架构设计的常见问题
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>--Redis Cluster及缓存使用和架构设计的 ...
- MVEL2.0的使用实例(一)
本文是对java整合mvel2.0的一点示例: 如果表达式中有变量,解析表达式时必须传一个map MVEL.eval(expression, vars); /** * 基本解析表达式 */@Testp ...
- Java入门 - 语言基础 - 08.运算符
原文地址:http://www.work100.net/training/java-operator.html 更多教程:光束云 - 免费课程 运算符 序号 文内章节 视频 1 概述 2 算术运算符 ...
- [洛谷P1606] [USACO07FEB] 荷叶塘Lilypad Pond
Description 为了让奶牛们娱乐和锻炼,农夫约翰建造了一个美丽的池塘.这个长方形的池子被分成了M行N列个方格(1≤M,N≤30).一些格子是坚固得令人惊讶的莲花,还有一些格子是岩石,其余的只是 ...
- PSP第一次总结
项目计划总结 周活动总结表 姓名:王金萱 ...
- 提高Dom 访问效率
在浏览器中对于Dom的操作和普通的脚本的操作处于两个不同的dll中,两个dll的交互是比较耗时的,优化对Dom的操作可以提高脚本的执行速度. JS访问DOM是很慢的,尽量不要用JS来设置页面 布局 有 ...