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 ...
随机推荐
- 应急响应&&取证
查看日志 eventvwr.exe 中了勒索病毒 1.查看download目录有没有病毒样本,C:\Users\86132\Downloads 2.查看系统开放端口 3.导出systemin ...
- 天梯 L2 紧急救援 (dijkstra变形+记录路径)
L2-001 紧急救援 (25 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道 ...
- Serv_U FTP服务端使用教程
Serv-U FTP Server是一种被广泛运用的FTP服务器端软件,可以设定多个FTP服务器.限定登录用户的权限.登录主目录及空间大小等,功能非常完备.具有非常完备的安全特性,支持SSl FTP传 ...
- C# 图片转二进制
/// <summary> /// 将目标路径转为image /// </summary> /// <param name="path">图片路 ...
- [转载] Windows系统批处理延迟方法
小贴士:方法四 亲测有效,因为当时对于精确度要求不是很高,所以没有具体测试它的精确度.其他方法没有测过,用到的时候再测吧! 批处理延时启动的几个方法 方法一:ping 缺点:时间精度为1秒,不够精确 ...
- Go Web 编程之 模板(一)
概述 模板引擎是 Web 编程中必不可少的一个组件.模板能分离逻辑和数据,使得逻辑简洁清晰,并且模板可复用.引用第二篇文章<程序结构>一文中的图示,我们可以看到模板引擎在 Web 程序结构 ...
- GPU图形绘制管线简介
(阅读GPU+编程与CG+语言之阳春白雪下里巴人所得总结) GPU图形绘制管线是描述GPU渲染(把三维世界显示为屏幕上的二维图像)的流程,主要分为三个主要阶段应用程序阶段.几何阶段.光栅阶段. 1.应 ...
- 机器学习——Java调用sklearn生成好的Logistic模型进行鸢尾花的预测
机器学习是python语言的长处,而Java在web开发方面更具有优势,如何通过java来调用python中训练好的模型进行在线的预测呢?在java语言中去调用python构建好的模型主要有三种方法: ...
- HTTPS中的TLS
1. SSL 与 TLS SSL:(Secure Socket Layer) 安全套接层,于 1994 年由网景公司设计,并于 1995 年发布了 3.0 版本TLS:(Transport Layer ...
- Js 数组按数量分部!
使用 reduce 将数组分为几个部分,每个部分最多10个! 相比其他语言使用 js 实现这个逻辑非常的简单方便! var group = function (source, step) { if ...