当前位置: 首页 > news >正文

Linux进一步研究权限-----------ACL使用

一、使用情况

1.1、场景:

某个大公司,在一个部门,有一个经理和手下有两个员工,在操控一个Linux项目,项目又分为三期做,然而一期比较重要,经理带着员工做完了,公司就觉得技术难点已经做完攻克了,不需要投入之前的人了,到了二期就招外包人员去顶替之前员工做的事,然后会做linux权限控制,外包人员就需要招甲方人员授权。

1.2、外包

指企业将某些业务活动或服务委托给外部公司或个人来进行,以降低成本、提高效率或专注核心业务。

1.3、外包的情况

  1. 企业需要专业技能或资源,但自身无法内部开发或维护,因此选择外包给专业公司或个人来完成。
  2. 企业需要降低成本,外包可以帮助企业节省人力、物力和财力,提高效率和竞争力。
  3. 企业需要快速扩展业务或进入新市场,外包可以帮助企业快速获得所需的资源和服务。
  4. 企业需要专注于核心业务,将非核心业务外包给专业公司或个人来处理,以提高企业的专业性和效率。

二、基础权限chmod

命令格式:chmod [options]  mode files

options:选择       mode模式(u代表用户)      files文件

-r                            u=rw            start.sh

命令ll可以查询出来 

开头字母;l:代表链接,d代表文件夹,-代表文件

后面有点:代表没有做acl控制

拥有者:就是当前用户    拥有组:就是所在的组

r代表卡读(看)   w代表可以写(修改),x 代表可以执行(可以运行) 

相加为7,所有有全部权限,

拿到的数字去相加得到的数字与421去对应就知道有什么权限了

如:5    4+1可以读和执行

三、ACL

3.1、ACL是

Access Control List的缩写,指访问控制列表。ACL是一种用于控制网络设备或操作系统上资源访问权限的机制,通过ACL可以限制哪些用户或哪些网络设备可以访问特定的资源。ACL通常用于路由器、交换机、防火墙等网络设备上,也可以在操作系统中用于控制文件和目录的访问权限。ACL可以根据不同的条件设置不同的访问规则,如IP地址、端口号、协议类型等。

 

我创建的文件自己和组内人员都可以操作,临时用户就是第三方人员也是外包进入,只有r-x可以读和执行

3.2、思考

如何实现如下的权限控制:

  • 每个项目成员在有一个自己的项目目录,对自己的目录有完全权限
  • 项目组中的成员对项目目录也有完全权限
  • 其他人对项目目录没有任何权限
  • 对于被分配进入项目的临时人员,只有读和执行权限,不能修改

初步思路:

  • 创建一个临时组(例如:temp),并将临时组的权限设置位 r-w
  • 将临时组也作为项目目录的所属组
  • 对于临时用户作为临时组的成员即可

问题:

  • Linux基本权限中,文件和目录同时只能有一个分组
  • 变成775权限导致不是外包人员也能看

解决办法

  • 使用ACL来解决上面的问题

 3.3、具体操作

第一步:创建文件夹(查询是否创建成功ll,东西太多用管道符)

第二步:创建用户(可以是多个,用户=员工,张三zs、李四ls)

第三步:创建组(tgroup组名字)

第四步:把员工放到一个组里(-a追加和添加的意思      可以查看是否加进去 cat /etc/group)

第五步:修改目录的所有者和所有组(chown    own代表拥有者)

第六步:修改权限为770

第七步:添加临时用户(外包人员    临时用户名字tempuser)

第八步:给临时用户设置密码

可以不是8个字符不管它的提示进行输入

第九步:设置ACL(给临时用户分配特定权限    一个一个加权限)

第十步:查看是否成功没

具体代码演示:

mkdir /project
ll | grep project
useradd zs
groupadd tgroup
gpasswd -a zs tgroup
chown root:tgroup /project
chmod 770 /project
useradd tempuser
passwd tempuser
setfacl -m u:tempuser:rx /project
getfacl /project

mask: 最多可以分配的权限  other其他用户

操作文件夹里面

具体代码演示:

进入文件夹
cd /project
创建文件
vim  root.txt
进入编辑
i
写内容按EEC退出保存
wq

用临时用户查看别人文件

cat  +文件

上面需要一个一个授权

3.4、解决一起授权

解决办法搞一个临时组,给这个组只有读和执行的权限,每来一个外包人员就丢进去

第十一步:控制组的ACL权限(创建临时组---专门放外包人员   )

与第9步区分 一个用-u一个一个用户设置,这个-g

groupadd temp
setfacl -m g:temp:rx/project
getfacl /project

有组后的做法

添加新用户
useradd tempu02
设置密码
passwd tempu02
丢到组里
gpasswd -a tempu02 temp

总:如果用项目发现没有权限,就需要思考是领导没有给你权限还是合作方没给权限了,合作方没给,可以分析两方关系是否好

http://www.lryc.cn/news/304914.html

相关文章:

  • 剪辑视频调色软件有哪些 剪辑视频软件哪个最好 剪辑视频怎么学 剪辑视频的方法和步骤 会声会影2024 会声会影视频制作教程
  • 【Linux进阶之路】Socket —— “UDP“ “TCP“
  • 一些用 GPT 翻译的计算机科学/人工智能 PDF 讲义
  • 重大更新:GPT-4 API 现全面向公众开放!
  • 【Python笔记-设计模式】对象池模式
  • 反序列化 [NPUCTF2020]ReadlezPHP1
  • AI技术那些事儿:揭开潜伏在你生活中的高科技小能手
  • 使用向量数据库pinecone构建应用06:日志系统异常检测 Anomaly Detection
  • 抽象工厂模式 Abstract Factory
  • 掌握 Android 中的 RecyclerView 优化
  • Android platform tool中d8.bat不生效
  • WSL安装Ubuntu22.04,以及深度学习环境的搭建
  • 【PTA|选择题|期末复习】结构体
  • Video generation models as world simulators-视频生成模型作为世界模拟器
  • 高刷电竞显示器 - HKC VG253KM
  • nginx-------- 高性能的 Web服务端 (三) 验证模块 页面配置
  • Kafka是如何防止消息丢失的
  • [工具探索]VSCode介绍和进阶使用
  • Oracle迁移到mysql-表结构的坑
  • 【SpringCloudAlibaba系列--nacos配置中心】
  • 使用LinkedList实现堆栈及Set集合特点、遍历方式、常见实现类
  • springboot-cache+redis 为指定名称缓存设置独立超时时间
  • Flutter 数据持久化存储之Hive
  • Java中继承静态属性,方法,和非静态属性和方法的继承区别
  • C# If与Switch的区别
  • 实验室预约|实验室预约小程序|基于微信小程序的实验室预约管理系统设计与实现(源码+数据库+文档)
  • 蓝桥杯DP算法——区间DP(C++)
  • pytest结合Allure生成测试报告
  • Linux--ACL权限管理
  • Xcode中App图标和APP名称的修改