• 简介

  • 我们在使用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缩小普通用户的权限的更多相关文章

  1. linux shell系列9 统计用户的权限

    #!/bin/bash #set -x host=`hostname` ip=`ifconfig $(ip a|grep eth|head -n1|awk -F: '{print $2}') |gre ...

  2. 【linux相识相知】用户及权限管理

    linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...

  3. 6.linux 用户和权限的建立

    一.用户和权限的建立       su  用户名       切换用户,如果是root用户切换其他用户,不需要输入密码.     exit  可以切换回上一个用户       linux 操作系统用户 ...

  4. Linux系统中(CentOS 7)的用户和权限管理

    目录 用户和组 用户信息文件 用户密码信息 相关命令 用户管理 组管理 密码管理 权限管理 文件的详细信息 文件权限 相关命令 用户和组 用户信息文件 /etc/passwd (1 2 3 4 5 6 ...

  5. linux的用户扩充权限管理acl和用户使用系统资源的限制

    用户扩充权限管理 acl 1.扩充权限的方式 文件扩充权限 ACL 磁盘配额 2.文件扩充权限 1.安全位 安全位   ---set位    SUID  SGID   set仅可以加给 u.g, 如: ...

  6. Linux学习笔记1_用户和权限

    自从我大微软终于放下身段,决定给开源社区一个迟来的拥抱,追随多年的拥趸们像是突然得到了女神的垂青,各种茫然失措.痛哭流涕.欢欣鼓舞,纷纷唱了起来:“等了好久终于等到今天,梦了好久终于把梦实现……”唱完 ...

  7. 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令

    Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...

  8. linux 添加用户、权限

    # useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假 ...

  9. mongoDB之用户及权限设置

    之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB.在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问. 我部署的环境是ubuntu 1 ...

随机推荐

  1. SqlBulkCopy批量插入和索引的关系

    .net中批量插入基本都用SqlBulkCopy,速度很快,但是这几天发现个问题,2000数据居然15s,百思不得其解.经过大量测试,发现过多的索引和索引碎片会严重影响插入速度,表的数据量大小反而不会 ...

  2. IDEA错误: 找不到或无法加载主类

    错误: 找不到或无法加载主类 idea本身缓存问题 解决:清理缓存重启IDEA file-->invalidate Cache/restart 之后再重新build.

  3. spring boot的application配置文件

      上次我们已经对这个文件见过面了,并且对他进行了一些简单的配置.它有两种配置方式,一个是application.properties,一个是application.yml文件,需要记住,当两个文件都 ...

  4. Scala实践9

    1.特征 Traits用于在类之间共享接口和字段.它们类似于Java 8的接口.类和对象可以扩展特征,但是特征不能被实例化,因此没有参数. 定义一个特征 最小特征只是关键字trait和标识符: tra ...

  5. Spring学习记录2——简单了解Spring容器工作机制

    简单的了解Spring容器内部工作机制 Spring的AbstractApplicationContext是ApplicationContext的抽象实现类,该抽象类的refresh()方法定义了Sp ...

  6. 【ARM】---关于ARM内核与架构的解释

    本文摘自某论坛某位大神的一段回复,经典至极,copy来己用! 只要你玩过ARM内核的芯片,那么关于内核和架构,我想应该或多或少的困惑过你,看了下面的介绍,你应该会清楚很多! 好比你盖房子,刚开始因为水 ...

  7. 【C_Language】---C语言const用法总结

    C语言关键字const相信对于不少C语言新手是既陌生又熟悉的,好像经常见,但是却不知道为何用,怎么用?学习至此,总结一下const的用法,使用程序来帮助你理解该关键字,希望能帮到像我一样的新手. 我看 ...

  8. 秦皇岛 I 题

    有 n 个数字,你可以挑选其中任意个数字代表一个背包的体积,其余的数字表示的物品的体积,所挑选的背包必选完全装满,询问最终的方案数 思路分析 : 定义dp[i] 表示挑选 i 状态下的物品的方案数,f ...

  9. django.db.migrations.exceptions.MigrationSchemaMissing和raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)

    1.使用Python3.7 + Django2.2 + MySQL 5.5 在执行(python manage.py migrate)命令时出现错误django.db.migrations.excep ...

  10. jenkins集成jmeter-进阶篇

    1.gitlab自动触发jenkins构建 1⃣️安装插件: 2⃣️新建工程,设置git url,build when a change is pushed auto.sh /bin/sh echo ...