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

news2024/11/19 2:40:18

一、使用情况

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.coloradmin.cn/o/1466725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

npm install报错解决记录

npm install报错解决记录 常见错误类型 权限错误: EACCES: permission denied EPERM: operation not permitted网络错误: ECONNREFUSED: Connection refused ETIMEDOUT: connect ETIMEDOUT包解析错误: Cannot find module ‘xxx’ Error: No compatible version found编译错误…

飞行机器人专栏(十三)-- 智能优化算法之粒子群优化算法与多目标优化

一、理论基础 1.1 引言 粒子群优化算法(Particle Swarm Optimization, PSO)自1995年由Eberhart和Kennedy提出以来,已经成为解决优化问题的一种有效且广泛应用的方法。作为一种进化计算技术,PSO受到社会行为模式,特别是…

互联设备-中继器-路由器等

网卡的主要作用 1 在发送方 把从计算机系统要发送的数据转换成能在网线上传输的bit 流 。 2 在接收方 把从网线上接收来的 bit 流重组成计算机系统可以 处理的数据 。 3 判断数据是否是发给自己的 4 发送和控制计算机系统和网线数据流 计算机的分类 1、台式机 2、小型机和服…

【DDD】学习笔记-薪资管理系统的测试驱动开发

回顾薪资管理系统的设计建模 在 3-15 课,我们通过场景驱动设计完成了薪资管理系统的领域设计建模。既然场景驱动设计可以很好地与测试驱动开发融合在一起,因此根据场景驱动设计的成果来开展测试驱动开发,就是一个水到渠成的过程。让我们先来…

rem适配方案

目录 一,rem实际开发适配方案 二,rem适配方案技术使用(市场主流) 方案一: 方案二:​编辑 一,rem实际开发适配方案 ① 按照设计稿与设备宽度的比例,动态计算并设置html根标签的fo…

【自然语言处理-二-attention注意力 是什么】

自然语言处理二-attention 注意力机制 自然语言处理二-attention 注意力记忆能力回顾下RNN(也包括LSTM GRU)解决memory问题改进后基于attention注意力的modelmatch操作softmax操作softmax值与hidder layer的值做weight sum 计算和将计算出来的和作为memo…

Jetpack Compose 架构层

点击查看:Jetpack Compose 架构层 官网 本页面简要介绍了组成 Jetpack Compose 的架构层,以及这种设计所依据的核心原则。 Jetpack Compose 不是一个单体式项目;它由一些模块构建而成,这些模块组合在一起,构成了一个完…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的人脸表情识别系统(附完整资源+PySide6界面+训练代码)

摘要:本篇博客呈现了一种基于深度学习的人脸表情识别系统,并详细展示了其实现代码。系统采纳了领先的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了比较,展示了其在图像、视频、实时视频流及批量文件中识别人脸表情的高…

【elementUi-table表格】 滚动条 新增监听事件; 滚动条滑动到指定位置;

1、给滚动条增加监听 this.dom this.$refs.tableRef.bodyWrapperthis.dom.scrollTop 0let _that thisthis.dom.addEventListener(scroll, () > {//获取元素的滚动距离let scrollTop _that.dom.scrollTop//获取元素可视区域的高度let clientHeight this.dom.clientHeigh…

springboot+vue项目基础开发(17)路由使用

路由 在前端中,路由指的是根据不同的访问路径,展示不同的内容 vue Router的vue.js的官方路由 安装vue Router 再启动 在src下面新建router文件,创建index.js 代码 import {createRouter,createWebHashHistory} from vue-router //导入组件 import Login from @/views/Log…

SparkSQL学习03-数据读取与存储

文章目录 1 数据的加载1.1 方式一:spark.read.format1.1.1读取json数据1.1.2 读取jdbc数据 1.2 方式二:spark.read.xxx1.2.1 读取json数据1.2.2 读取csv数据1.2.3 读取txt数据1.2.4 读取parquet数据1.2.5 读取orc数据1.2.6 读取jdbc数据 2 数据的保存2.1…

RT-Thread-快速入门-2-时钟与定时器

时钟与定时器 阅读须知 定义与作用 定义 系统时钟 系统时钟在RT-Thread中用于管理时间,为系统运行提供时间基准。系统时钟由硬件计时器(通常是CPU的内部定时器或外部定时器)提供时钟节拍,这些时钟节拍通常以固定频率中断CPU&#…

opengl 学习纹理

一.纹理是什么? 纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;类似于图像一样,纹理也可以被用来储存大量的数据,这些数据可以发送到着色器上。 采样是指用纹理坐标来获取纹…

npm install 失败,需要node 切换到 对应版本号

npm install 失败 原本node 的版本号是16.9,就会报以上错误 node版本问题了,我切到这个版本,报同样的错。降一下node(14.18)版本就好了 具体的方法:(需要在项目根目录下切换) 1. …

微服务学习

一、服务注册发现 服务注册就是维护一个登记簿,它管理系统内所有的服务地址。当新的服务启动后,它会向登记簿交待自己的地址信息。服务的依赖方直接向登记簿要Service Provider地址就行了。当下用于服务注册的工具非常多ZooKeeper,Consul&am…

JavaScript从零写网站《一瞬》开发日志20240223

产品介绍 一个无需注册能随时发布图片并配一段文字介绍的app,有时间线,用户在主页面向下滑动,可以看到被发布的若干图片,并且能够在每一个发布处做基本互动——评论,点赞 编程语言 本产品使用htmlcssJavaScript开发…

【Docker】构建pytest-playwright镜像并验证

Dockerfile FROM ubuntu LABEL maintainer "langhuang521l63.com" ENV TZAsia/Shanghai #设置时区 #安装python3依赖与下载安装包 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \&& apt update \&&…

Linux——进程概念

目录 冯诺依曼体系结构 操作系统 管理 系统调用和库函数 进程的概念 进程控制块——PCB 查看进程 通过系统调用获取进程标示符 通过系统调用创建进程 进程状态 运行状态-R ​编辑 浅度睡眠状态-S 深度睡眠状态-D 暂停状态-T 死亡状态-X 僵尸状态-Z 僵尸进程…

Open CASCADE学习|绘制砂轮

今天绘制一个砂轮,其轮廓由两条直线段和两段圆弧构成,圆弧分别与直线相切,两条圆弧之间相交而非相切。建模思路是:先给定两条直线段的起始点及长度,画出直线段,然后给定其中一圆弧的半径及圆心角&#xff0…

Linux之ACL访问控制列表

一、ACL权限的介绍 1.1 什么是ACL 访问控制列表(ACL)是一种网络安全技术,它通过在网络设备(如路由器、交换机和防火墙)上定义一系列规则,对进出接口的数据包进行控制。这些规则可以包含“允许”&…