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

wordpress模版做网站/连云港百度推广总代理

wordpress模版做网站,连云港百度推广总代理,线上平台名称大全,电子工程建设信息网站今天给伙伴们分享一下Linux ACL 访问控制,希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步…

今天给伙伴们分享一下Linux ACL 访问控制,希望看了有所收获。

我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!

如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。

一、ACL访问控制概述

  • 基础权限UGO、特殊权限,所有的权限是针对某一类用户设置的, 如果希望对文件进行自定义权限控制,就需要用到文件的访问控制列表ACL

  • UGO设置基本权限: 只能一个用户,一个组和其他人

  • ACL设置基本权限: r、w、x 设定acl只能是root管理员用户. 相关命令: getfacl , setfacl

  • getfacl 命令用于查看文件或目录当前设定的 ACL 权限信息。该命令的基本格式为:

[root@edenluo.com ~]# getfacl 文件名
  • setfacl 命令可直接设定用户或群组对指定文件的访问权限。此命令的基本格式为:
[root@edenluo.com ~]# setfacl 选项 文件名
  • 命令可以使用的所用选项及功能
选项功能
-m设定 ACL 权限。如果是给予用户 ACL 权限,参数则使用 “u:用户名:权限” 的格式,例如 setfacl -m u:st:rx /project 表示设定 st 用户对 project 目录具有 rx 权限;如果是给予组 ACL 权限,参数则使用 “g:组名:权限” 格式,例如 setfacl -m g:tgroup:rx /project 表示设定群组 tgroup 对 project 目录具有 rx 权限。
-x删除指定用户(参数使用 u:用户名)或群组(参数使用 g:群组名)的 ACL 权限,例如 setfacl -x u:st /project 表示删除 st 用户对 project 目录的 ACL 权限。
-b删除所有的 ACL 权限,例如 setfacl -b /project 表示删除有关 project 目录的所有 ACL 权限。
-d设定默认 ACL 权限,命令格式为 “setfacl -m d:u:用户名:权限 文件名”(如果是群组,则使用 d:g:群组名:权限),只对目录生效,指目录中新建立的文件拥有此默认权限,例如 setfacl -m d:u:st:rx /project 表示 st 用户对 project 目录中新建立的文件拥有 rx 权限。
-R递归设定 ACL 权限,指设定的 ACL 权限会对目录下的所有子文件生效,命令格式为 “setfacl -m u:用户名:权限 -R 文件名”(群组使用 g:群组名:权限),例如 setfacl -m u:st:rx -R /project 表示 st 用户对已存在于 project 目录中的子文件和子目录拥有 rx 权限。
-k删除默认 ACL 权限。
  • acl基本使用方式
环境准备
[root@edenluo.com ~]# cp /etc/passwd /root/passwd文件在没有设定acl, 看到的和传统权限是一样
[root@edenluo.com ~]# ll passwd
-rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt
使用getacl查看权限
[root@edenluo.com ~]# getfacl passwd 
# file: passwd
# owner: root
# group: root
user::rw-   //文件owner权限
group::r--  //文件拥有组权限
other::r--  //其他人权限

1、设定acl权限案例

要求
-rw-r--r-- 1 root root 1380 Feb 27 11:25 passwd
alice  拥有读写权限     rw
edenluo  没有任何权限     -
jack   组拥有读权限     r
匿名用户拥有读写权限     rw
1、建立相关用户
[root@edenluo.com ~]# useradd alice
[root@edenluo.com ~]# useradd edenluo
[root@edenluo.com ~]# useradd jack
增加用户 alice 权限
[root@edenluo.com ~]# setfacl -m u:alice:rw passwd
增加用户 edenluo 权限
[root@edenluo.com ~]# setfacl -m u:edenluo:- passwd
增加匿名用户权限
[root@edenluo.com ~]# setfacl -m o::rw passwd
增加组权限
[root@edenluo.com ~]# setfacl -m g:jack:r passwd

注意: 如果用户同时属于不同的两个组,并且两个组设定了acl访问控制
1、根据acl访问控制优先级进行匹配规则
2、如有用户拥有多个组的权限不同的权限,优先使用最高权限(模糊匹配)

2、查看acl权限

[root@edenluo.com ~]# ll passwd
-rw-rw-rw-+ 1 root root 1531 Jan 26 07:52 passwd
[root@edenluo.com ~]# getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:edenluo:---
user:alice:rw-
group::r--
group:jack:r--
mask::rw-
other::rw-

3、移除acl权限

移除jack组的acl权限
[root@edenluo.com ~]# setfacl -x g:jack passwd
移除edenluo.com用户的acl权限
[root@edenluo.com ~]# setfacl -x u:edenluo passwd
移除文件和目录所有acl权限
[root@edenluo.com ~]# setfacl -b passwd//移除默认的acl
[root@edenluo.com ~]# setfacl -k dir

4、查看acl帮助

EXAMPLES 示例
[root@edenluo.com ~]# man setfacl
复制 file1 的 ACL 权限给 file2
[root@edenluo.com ~]# setfacl -m u:alice:rw,u:edenluo:r,g:jack:rw file1
[root@edenluo.com ~]# getfacl file1 |setfacl --set-file=- file2

二、ACL高级特性MASK

  • mask用于临时降低用户或组的权限,但不包括文件的所有者和其他人。
  • mask最主要的作用是用来决定用户的最高权限。
  • mask默认不会对匿名用户降低权限,所以为了便于管理文件的访问控制,建议匿名用户的权限置为空
临时降低用户或组权限
[root@edenluo.com ~]# setfacl -m mask::rw filename

小结

​ 1、mask会影响哪些用户,除了所有者和其他人。

​ 2、mask权限决定了用户访问文件时的最高权限。(如何影响)

​ 3、mask用于临时降低用户访问文件的权限。(mask做什么)

​ 4、任何重新设置acl访问控制会清理mask所设定的权限。

三、ACL高级特性Default

  • default: 继承(默认)

  • alice能够对/opt目录以及以后在/opt目录下新建的文件有读、写、执行权限

赋予 alice 对/home 读写执行权限 
[root@edenluo.com ~]# setfacl -R -m u:alice:rwX /opt
赋予 alice 对以后在/home 下新建的文件有读写执行权限(使 alice 的权限继承) 
[root@edenluo.com ~]# setfacl -m d:u:alice:rwX /opt
检查对应的权限
[root@edenluo.com ~]# getfacl /opt/
getfacl: Removing leading '/' from absolute path names
# file: opt/
# owner: root
# group: edenluo.com
user::rwx
user:alice:rwx
group::rwx
mask::rwx
other::rwx
default:user::rwx
default:user:alice:rwx
default:group::rwx
default:mask::rwx
default:other::rwx

四、ACL访问控制实践案例

  • 案例1: 将新建文件的属性修改tom:admin, 权限默认为644要求: tom对该文件有所有的权限, mary可以读写该文件, admin组可以读写执行该文件, jack只读该文件, 其他人一律不能访问该文件
实验前, 建立几个普通用户
[root@edenluo.com ~]# useradd tom
[root@edenluo.com ~]# useradd bean
[root@edenluo.com ~]# useradd mary
[root@edenluo.com ~]# useradd jack
[root@edenluo.com ~]# useradd sutdent
[root@edenluo.com ~]# groupadd admin
[root@edenluo.com ~]# gpasswd -a mary admin
[root@edenluo.com ~]# gpasswd -a bean admin//检查用户属性
[root@edenluo.com ~]# id tom
uid=1004(tom) gid=1004(tom) groups=1004(tom)
[root@edenluo.com ~]# id mary
uid=1006(mary) gid=1006(mary) groups=1006(mary),1007(admin)
[root@edenluo.com ~]# id bean
uid=1005(bean) gid=1005(bean) groups=1005(bean),1007(admin)
[root@edenluo.com ~]# id jack
uid=1002(jack) gid=1002(jack) groups=1002(jack)
[root@edenluo.com ~]# id sutdent
uid=1007(sutdent) gid=1008(sutdent) groups=1008(sutdent)//准备相关文件
[root@edenluo.com ~]# cp /etc/passwd /root/
[root@edenluo.com ~]# chown tom:admin passwd
[root@edenluo.com ~]# chmod 644 passwd//检查设定前的acl列表
[root@edenluo.com ~]# getfacl passwd
# file: passwd
# owner: tom
# group: admin
user::rw-
group::r--
other::r--//设定acl权限
[root@edenluo.com ~]# setfacl -m u::rwx,u:mary:rw,u:jack:r,g:admin:rwx,o::- passwd//检查acl权限
[root@edenluo.com ~]# getfacl passwd
# file: passwd
# owner: tom
# group: admin
user::rwx
user:jack:r--
user:mary:rw-
group::r--
group:admin:rwx
mask::rwx
other::---
  • acl的控制规则是从上往下匹配

    • 1.tom由于是文件的拥有者,所以直接按照user::rwx指定的权限去操作

    • 2.mary用户从上往下寻找匹配规则,发现user:mary:rw-能够精确匹配mary用户,尽管mary属于admin组,同时admin组有rwx的权限,但是由于mary用户的规则在前面,所有优先生效。

    • 3.bean由于找不到精确匹配的规则,而bean是属于admin组,根据文件的定义,该文件是属于admin组,所以bean的权限是按照group:admin:rwx的权限去操作。

    • 4.jack用户从上往下寻找匹配规则,发现user:jack:r--能够精确匹配jack用户。

    • 5.student用户找不到精确匹配的user定义规则, 也找不到相关组的定义规则,最后属于other

  • 案例2: lab acl setup

controller组成员有:student
sodor组成员有:thomas,james
目录: /shares/steamies
文件: /shares/steamies/file
脚本: /shares/steamies/test.sh
controller属于该目录的所属组, 新建文件必须属于controller组
sodor组的成员对该目录拥有rwx权限
sodor组成员james对该目录及子目录(包括以后新建立的文件)没有任何权限
  • 实际操作
准备用户
[root@edenluo.com ~]# groupadd controller
[root@edenluo.com ~]# groupadd sodor
[root@edenluo.com ~]# useradd student -G controller
[root@edenluo.com ~]# useradd thomas -G sodor
[root@edenluo.com ~]# useradd james -G sodor
准备目录
[root@edenluo.com ~]# mkdir /shares/steamies -p
[root@edenluo.com ~]# echo "file" >> /shares/steamies/file
[root@edenluo.com ~]# echo "echo 123" >> /shares/steamies/test.sh
[root@edenluo.com ~]# chmod 755 /shares/steamies/test.sh
[root@edenluo.com ~]# chown -R  :controller /shares/steamies/
[root@edenluo.com ~]# chmod g+s /shares/steamies/
设定权限(X表示,如果原本有执行权限就保留,如果没有则不添加)
[root@edenluo.com ~]# setfacl -R -m g:sodor:rwX,u:james:- /shares/steamies/
设定继承规则
[root@edenluo.com ~]# setfacl -R -m d:g:sodor:rwX,d:u:james:- /shares/steamies/
[root@edenluo.com steamies]# getfacl /shares/steamies/
getfacl: Removing leading '/' from absolute path names
# file: shares/steamies/
# owner: root
# group: controller
# flags: -s-
user::rwx
user:james:---
group::r-x
group:sodor:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:sodor:rwx
default:mask::rwx
default:other::r-x

如果有版帮助,帮忙免费的关注一下**公众号「想吃西红柿」「云原生运维实战派」**后续会有更多实用的运维技术分享给伙伴们,您的关注就是我最大的成就。

相关文章:

Linux ACL 访问控制

今天给伙伴们分享一下Linux ACL 访问控制,希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步…...

hg transformers pipeline使用

什么是hg transformers pipeline? 在Hugging Face的transformers库中,pipeline是一个高级API,它提供了一种简便的方式来使用预训练模型进行各种NLP任务,比如情感分析、文本生成、翻译、问答等。通过pipeline,你可以在几行代码内…...

高性能内存对象缓存

Memcached概述 一套开源的高性能分布式内存对象缓存系统 所有的数据都存储在内存中 支持任意存储类型的数据 提高网站的访问速度 数据存储方式与数据过期方式 数据存储方式:Slab Allocation 按组分配内存,每次先分配一个Slab,相当于一个大小为1M的页&…...

文件上传-CMS文件上传分析

黑盒思路: 上传点抓包测试 个人用户中心是否存在文件上传功能后台管理系统是否存在文件上传功能字典目录扫描探针文件(eg:upload.php)构造地址字典目录扫描探针编辑器目录构造地址(编辑器目录一般是默认的&#xff09…...

云原生日志Loki

1. Loki简介 1.1 Loki介绍 Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签…...

初阶数据结构之直接选择排序和快速排序

直接选择排序 1.在元素集合 array[i]–array[n-1] 中选择关键码最⼤(⼩)的数据元素 2.若它不是这组元素中的最后⼀个(第⼀个)元素,则将它与这组元素中的最后⼀个(第⼀个)元素 交换 3.在剩余的 array[i]–array[n-2](array[i1]–…...

Java语言程序设计——篇十三(4)

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳&…...

低代码: 组件库测试之渲染和元素获取,触发事件,更新表单,验证事件以及异步请求

组件库测试步骤 渲染组件(怎样将一个组件渲染到测试用例里面) mount 和 shallowMount传递属性元素是否成功的显示 查找元素的不同写法get, getAllfind, findAllfindComponent 和 getComponent触发事件(是click也好,是input也好,让它触发对应的事件) trigger 方法观察测试界面…...

银河麒麟服务器操作系统Kylin-Server-V10-SP3-2403-Release-20240426-x86_64安装步骤

银河麒麟服务器操作系统 Kylin-Server-V10-SP3-2403-Release-20240426-x86_64安装步骤 一、准备工作1. 下载ISO镜像2. 制作安装介质3. 设置BIOS 二、安装过程1. 启动系统2. 选择安装语言3. 选择安装配置4. 配置root密码与创建用户5. 开始安装6. 重启系统7. 同意许可协议 三、系…...

2024年电赛H题全开源

当题目出来的的那一刻,看到了M0芯片,我们实验室只有一块板子,并且我没有接触过M0,电赛只准备了TI的MSP430f5529。但是我并没有放弃,决然的选择了H题。基本上将四问全做出来,可是测试由于使用了感为科技的寻…...

Docker:宿主机可以ping通外网,docker容器内无法ping通外网之解决方法

问题描述 1、宿主机可以ping外网,docker容器内无法ping外网 ping www.baidu.com 提示:unknown host baidu.com 2、宿主机可以wget下载,docker容器内无法wget下载 wget www.baidu.com 提示:unknown host baidu.com 解决方法 1、…...

bootchart抓Android系统启动各阶段性能数据

最近在做Android系统启动优化,首要任务是找到启动过程中各阶段耗时点,进而有针对性地进行优化。主要用bootchart抓开机数据,本文主要记录下工具的使用方法。 1.抓开机数据 adb root adb shell ‘touch /data/bootchart/enabled’ adb rebo…...

使用 Node.js 和 Express 框架通过网页访问GPIO和嵌入式 Linux 系统中使用 GSM/3G/4G 模块

点击上方"蓝字"关注我们 01、前言 想要快速开发嵌入式 Linux 网络应用,控制硬件 GPIO,从而使得用户能够远程控制和监控系统。 主要目的是向读者展示开发使用文件系统控制 GPIO 的 Node 代码、创建用户有好的界面、以及运行基于 Express 框架使用 AJAX 通客户端进…...

IT 行业的就业情况

当前,IT 行业的就业情况呈现出以下特点: 1. 需求持续增长:随着数字化转型的加速,各个行业对信息技术的依赖程度不断提高,推动了对 IT 人才的持续需求。特别是在云计算、大数据、人工智能、物联网等新兴领域&#xff…...

如何快速获取麒麟操作系统版本信息

如何快速获取麒麟操作系统版本信息 一、桌面版系统1. 使用 /etc/kylin-build 文件2. 使用 /etc/.kyinfo 文件 二、服务器版系统1. 使用 /etc/.productinfo 文件2. 使用 nkvers 命令3. 使用 /etc/kylin-release 文件 三、总结 💖The Begin💖点点关注&…...

git提交规范检查husky

一、Eslint 尤雨溪推荐的 prettierrc 配置,句尾不带分号 单引号。 尤雨溪推荐配置:vue-next/.prettierrc lint lint 是最著名的 C 语言工具之一,是由贝尔实验室 SteveJohnson 于 1979 在 PCC(PortableC Compiler) 基础上开发的静态代码分…...

LeetCode 919. 完全二叉树插入器

完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大)的,并且所有的节点都尽可能地集中在左侧。 设计一个用完全二叉树初始化的数据结构 CBTInserter,它支持以下几种操作&#xf…...

C++密码管理器

先问一句 最近有几个关注我的原力等级为0或-1,文章全是转载,转载时间基本都在2021年,而且关注了很多人,这些是僵尸粉吗? 文末有投票,麻烦参与一下谢谢 实现功能列表 暂时还没做加密功能 打算用openssl/a…...

算法【Java】 —— 滑动窗口

滑动窗口 在上一篇文章中,我们了解到了双指针算法,在双指针算法中我们知道了前后指针法,这篇文章就要提到前后指针法的一个经典的使用 —— 滑动窗口,在前后指针法中,我们知道一个指针在前,一个指针在后&a…...

Spring Aware接口执行时机

一. 介绍 Spring Aware 接口的执行时机有两处,都在 getBean() 中的 initializeBean() 中; 下面我们分析这两处时机; // ----------------------- AbstractAutowireCapableBeanFactory --------------------- protected Object initializeB…...

android FD_SET_chk问题定位

android FD_SET_chk问题定位 一、FD报错二、问题定位2.1 APM定位2.2 adb定位2.3. 代码获取FD数 三、FD优化 一、FD报错 App在运行中记录报错如下,FD_SET,这个问题大概是文件描述符(File Descriptor,简称FD)超过了最大…...

Chapter 39 Python多线程编程

欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能! 文章目录 前言一、并行执行二、threading模块 前言 现代操作系统如 macOS、UNIX、Linux 和 Windows 等,均支持多任务处理。本篇文章详细讲解了并行执行的概念以及如何在 …...

STM32(二):GPIO

GPIO(General Purpose Input Output)通用输入输出口 1.可配置为8种输入输出模式,引脚电平:0V~3.3V,部分引脚可容忍5V,输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等,输入模式下…...

一文入门mysql 数据库

一、对数据库的操作 1.展示所有的数据库 show databases; 2.创建数据库 create database 数据库名 charset utf8; 3.删除数据库 drop database 数据库名; 4.查看当前使用的数据库 select database(); 5.使用数据库 use 数据库名; 二、对数据表的操作 1.展示所有表…...

通义千问( 四 ) Function Call 函数调用

4.2.function call 函数调用 大模型在面对实时性问题、私域知识型问题或数学计算等问题时可能效果不佳。 您可以使用function call功能,通过调用外部工具来提升模型的输出效果。您可以在调用大模型时,通过tools参数传入工具的名称、描述、入参等信息。…...

设置idea中放缩字体大小

由于idea没默认支持ctrl滚轴对字体调节大小,下面一起设置一下吧! 点击 文件 -> 设置 按键映射 -> 编辑器操作 -> 搜索栏输入f 点击减小字体大小 -> 选择增加鼠标快捷键 按着ctrl键,鼠标向下滚动后,点击确定即可 然后…...

frameworks 之getEvent指令

frameworks 之getEvent指令 指令解析源码追溯源码解析1.解析参数2.初始化ufds数组3.添加到poll 并做对应处理 通过 getEvent 可以识别按键基本命令和里面的关键信息 涉及到的类如下 system/core/toolbox/toolbox.csystem/core/toolbox/tools.hsystem/core/toolbox/getevent.c …...

tensorboard显示一片空白解决方案

OK艾瑞巴蒂 不知道看这个视频几个小土堆过来的,今天已经发了一篇博文探讨快速下载tensorboard了 下面用的时候叒出现问题了 from torch.utils.tensorboard import SummaryWriter writer SummaryWriter("logs")# writer.add_image() # Yx for i in range…...

C#编程中,如何实现一个高效的数据排序算法?

在C#编程中&#xff0c;可以使用内置的排序方法来实现高效的数据排序。最常用的方法是使用Array.Sort()和List<T>.Sort()。这些方法内部使用了快速排序算法&#xff08;Quick Sort&#xff09;&#xff0c;它是一种非常高效的排序算法&#xff0c;平均时间复杂度为O(n lo…...

LookupError: Resource averaged_perceptron_tagger not found.解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...