centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!

news2024/12/25 13:17:56

在 CentOS 系统中,权限管理是操作系统的核心功能之一,确保不同用户和进程对文件、目录以及设备的访问被合理控制。

权限系统主要包括传统的 Unix 权限模型、特殊权限(SetUID、SetGID、Sticky 位)和更精细的访问控制列表(ACL)。下面将详细介绍 CentOS 系统中的权限配置及其相关机制。

drwxr-xr-x   2 root             root            6 1011 2023 test
-rwxr-xr-x   1 root             root          862 520 2022 all.sh

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6cbc1f8775e748ff9b652c9d05adb06a.png


1. 基本权限模型

1.1 文件权限概述

在 Linux 系统(包括 CentOS)中,每个文件或目录都有三类用户类型的权限:

  • 文件所有者(Owner):创建文件的用户,通常默认是该文件的所有者。
  • 所属组(Group):文件所有者所在的组,组内所有成员共享该文件的权限。
  • 其他用户(Others):系统中不属于文件所有者或组的其他用户。

每个文件的权限分为三种操作:

  • 读权限(r):允许查看文件内容,或列出目录的内容。
  • 写权限(w):允许修改文件内容,或在目录中创建、删除文件。
  • 执行权限(x):允许执行文件(如脚本、二进制程序),或进入某个目录。

1.2 权限表示

权限以两种方式表示:

  • 符号模式:使用字母 rwx 表示每种权限。例如:

    rwxr-xr--
    
    • 前三位:文件所有者的权限(rwx)。
    • 中三位:文件所属组的权限(r-x)。
    • 后三位:其他用户的权限(r--)。
  • 八进制模式:权限也可以用数字表示,每个权限位转换为一个数字。

    • 读权限(r):4
    • 写权限(w):2
    • 执行权限(x):1
    • 无权限(-):0

    例如,rwxr-xr-- 的数字形式为 755

1.3 查看文件权限

使用 ls -l 命令可以查看文件或目录的权限。

ll /path/to/file

输出示例:

-rwxr-xr--  1 user group 4096 Sep 22 10:30 filename
  • -rwxr-xr--:文件权限
  • user:文件所有者
  • group:文件所属组

2. 修改文件权限

使用 chmod 命令

chmod 用来更改文件或目录的权限。

  • 符号模式修改

    chmod u+rwx,g+rx,o-r /path/to/file
    
    • u:所有者(User)
    • g:组(Group)
    • o:其他用户(Others)
    • +:添加权限
    • -:去除权限
  • 八进制模式修改

    chmod 755 /path/to/file  # 所有者有 rwx 权限,组和其他用户有 rx 权限
    
递归修改权限

对于目录及其子目录和文件,使用 -R 参数递归修改权限:

chmod -R 755 /path/to/directory
chmod -R u+rwx,g+rx,o-r /path/to/file

3. 文件所有权配置

文件所有权涉及文件的所有者(用户)和所属组。通过更改文件的所有权,可以控制谁能够访问和修改文件。

3.1 修改文件的所有者和所属组

使用 chown 命令

chown 用于更改文件的所有者和组:

chown user:group /path/to/file
  • user:新的所有者
  • group:新的所属组

如果只更改所属组,可以省略用户部分:

chown :group /path/to/file
递归更改所有权

对目录及其所有子目录和文件进行所有权的递归修改:

chown -R user:group /path/to/directory

注:chown修改仅针对当前已有的文件,后期新建的文件所属仍为创建者,想要永久生效,修改SetGID,如下


4. 特殊权限

特殊权限可以为文件和目录配置额外的安全措施。

4.1 SetUID

  • SetUID(Set User ID):当文件具有 SetUID 位时,执行该文件的用户将临时获得文件所有者的权限。这通常用于程序(如 passwd)在执行时需要具有 root 权限。

    设置 SetUID 位

    chmod u+s /path/to/file
    

4.2 SetGID

  • SetGID(Set Group ID):当文件具有 SetGID 位时,执行该文件的用户将临时获得文件所属组的权限。对于目录,SetGID 位确保新建文件和子目录继承其父目录的组。即,后期新建的文件都属于当前组
    设置 SetGID 位
    chmod g+s /path/to/directory
    

4.3 Sticky 位

  • Sticky 位 通常用于目录,确保只有文件所有者或 root 用户可以删除或重命名该目录中的文件。Sticky 位常见于 /tmp 目录,确保所有用户可以创建文件但不能删除其他用户的文件。

设置 Sticky 位

chmod +t /path/to/directory

4.4 查看特殊权限

使用 ls -l 命令可以查看特殊权限:

  • SetUID 位:文件权限显示为 -rwsr-xr-x
  • SetGID 位:文件权限显示为 -rwxr-sr-x
  • Sticky 位:目录权限显示为 drwxrwxrwt ,若是Others位权限没有“x”,即r - -,则目录权限显示为“-rwxr-xr-T

在这里插入图片描述


5. 访问控制列表 (ACL)权限后出现“+”

ACL(Access Control List)提供比标准 rwx 权限更细粒度的控制,允许你为文件或目录分配特定用户或组的访问权限。可以为文件设置多个用户和组的权限,而不仅仅局限于文件拥有者、组和其他用户。

5.1 作用:

  • 细粒度权限控制: 允许为每个用户和组设置单独的权限,扩展了传统的 Linux 权限模型。例如,你可以为用户 user1 设置 rw 权限,而给 user2 仅设置读权限。

  • 更灵活的访问控制: 标准权限模型只能为文件的所有者、组和其他用户设置权限,而 ACL 则可以为多个用户或组精确设置不同的权限。

  • 继承权限: 在目录上设置的 ACL 可以被子目录和文件继承,简化了大规模的权限管理。

  • 为目录设置默认 ACL(影响新建文件和目录)

5.2 为用户添加权限

setfacl 命令用于设置文件和目录的访问控制列表(ACL),提供比传统权限更细粒度的控制。以下是一些常用参数:

-m: 修改 ACL。用于添加或修改某个用户或组的权限。
-x: 删除 ACL。用于移除特定用户或组的权限。
-b: 删除所有 ACL。将文件的 ACL 设置为默认权限,仅保留标准权限。
-k: 删除默认 ACL。仅移除目录的默认 ACL,而保留用户或组的 ACL。
-d: 设置默认 ACL。用于目录,以便新创建的文件和子目录继承这些 ACL。
-R: 递归地应用 ACL 到目录及其所有子文件和子目录。
-n: 直接使用名称而不解析,以避免在无法解析用户或组时出错。

使用 setfacl 命令修改 ACL。例如,给用户 Bess 添加读写执行权限:

setfacl -m u:Bess:rwx 文件名

权限后出现“+”
在这里插入图片描述
使用 getfacl 命令查看文件或目录的 ACL。

# file: test.tar
# owner: root
# group: root
user::rwx
user:Bess:rwx      # 用户 Bess 的权限
group::r-x
mask::rwx
other::r-x

5.3 为用户组添加权限

setfacl -m g:groupname:rx 文件名

5.4 删除 ACL 权限:

删除用户ACL权限
setfacl -x u:Bess  文件名

删除用户组ACL权限
setfacl -x  g:groupname  文件名

6. 默认权限设置 (umask)

  • umask(用户文件创建掩码)用于设置新创建文件和目录的默认权限。它通过限制文件的最大权限,确保文件在创建时不被赋予过高的权限。
  • umask 是一个会话级别的设置,无法直接针对特定文件或目录进行配置。
  • 系统会根据 umask 值“减去”部分权限。

6.1 基本概念

  • 默认权限:

    • 新创建的文件通常默认为 666(可读可写)权限。
    • 新创建的目录默认为 777(可读、可写、可执行)权限。
  • umask 的作用:

    • umask 通过从默认权限中减去 umask 值,来决定新文件和目录的最终权限。
  • umask 值的计算
    umask 值是以八进制形式表示的,通常包含三个数字:

    • 第一个数字(用户的掩码)
    • 第二个数字(组的掩码)
    • 第三个数字(其他用户的掩码)

例如,如果 umask 设置为 022,则:

  • 新文件的权限将为 644666 - 022),即可读可写,但不可执行。
  • 新目录的权限将为 755777 - 022),即可读可写可执行。

6.2 配置 umask

  1. 临时设置:
    临时设置的 umask 仅在当前 shell 会话或命令上下文中有效。一旦退出该会话或执行完该命令,umask 设置将恢复为系统默认值或用户的配置文件中的设置。
    在终端中直接输入 umask 命令。例如:

    umask 027
    
  2. 永久设置:
    希望特定用户在每次登录时自动应用相同的文件权限设置,可以在用户的 shell 配置文件(如 ~/.bashrc 或 ~/.bash_profile)中添加 umask。这确保每次该用户登录时都能保持一致的权限策略。

      • 对于系统级别,可以在用户的 shell 配置文件中(如 /etc/profile/etc/bashrc 中设置)添加:
    umask 027
    

6.1 查看和设置 umask

  • 查看当前 umask

    umask
    
  • 设置 umask

    umask 0022  # 设置新建文件的默认权限为 755(目录)或 644(文件)
    

6.2 永久设置 umask

可以将 umask 写入用户的配置文件(如 ~/.bashrc~/.bash_profile),以确保每次登录时生效:

echo "umask 0022" >> ~/.bashrc
source ~/.bashrc

7. SELinux强制访问控制 (MAC) 机制 (权限后出现“.”

在CentOS系统中,SELinux(Security-Enhanced Linux)的配置涉及多个方面,包括查看状态、修改模式、管理策略等。

7.1 查看SELinux状态

要查看SELinux的当前状态,可以使用sestatus命令。该命令将显示SELinux的开关状态、工作模式以及加载的策略等信息。

sestatus

在这里插入图片描述

输出将包含SELinux是否启用、当前模式(Enforcing、Permissive或Disabled)、加载的策略类型等详细信息。

7.2 修改SELinux模式

SELinux有三种模式:Enforcing(强制执行策略)、Permissive(警告但不阻止操作)和Disabled(禁用)。

① 临时修改模式:
使用setenforce命令可以临时更改SELinux的模式。

要将SELinux设置为Enforcing模式:
sudo setenforce 1

要将SELinux设置为Permissive模式:
sudo setenforce 0
    
请注意,这些更改在系统重启后会失效。
② 永久修改模式:

要永久更改SELinux的模式,需要编辑/etc/selinux/config文件。

找到SELINUX=一行,并将其值改为 enforcing、permissive或disabled。

要将SELinux设置为Permissive模式:
SELINUX=permissive

保存并关闭文件后,重新启动计算机以使更改生效。

7.3 管理SELinux策略

SELinux通过安全上下文来标识和控制进程及数据的访问权限。可以使用以下命令查看和管理安全上下文:

使用ls -Z命令查看文件或目录的安全上下文信息。

使用ps -eZ命令查看进程的安全上下文信息。

使用chcon命令临时修改文件或进程的安全上下文。

例如,要将某个文件的安全上下文更改为system_u:object_r:admin_home_t:s0,可以使用以下命令:
sudo chcon -t admin_home_t /path/to/file

请注意,这种更改是临时的,不会在系统重启后保留。

要进行持久化修改,需要编辑SELinux策略文件或使用semanage、audit2allow等工具生成并应用新的SELinux策略规则。

7.4 注意事项

在修改SELinux配置之前,建议备份原始配置文件,以便在出现问题时能够恢复。
更改SELinux模式或策略可能会影响系统的安全性和稳定性,因此应谨慎进行。
如果不熟悉SELinux的配置和管理,建议咨询经验丰富的系统管理员或参考官方文档。

觉得有用,点赞再走呗~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2265300.html

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

相关文章

HarmonyOS NEXT 技术实践-基于基础视觉服务实现骨骼点识别

本示例展示了如何在HarmonyOS Next中实现基于基础视觉服务的骨骼点识别功能。骨骼点识别是计算机视觉中的一项重要技术,广泛应用于运动分析、健身监控和增强现实等领域。通过使用HarmonyOS Next提供的视觉API,开发者能够轻松地对人物图像进行骨骼点检测&…

【RAG实战】语言模型基础

语言模型赋予了计算机理解和生成人类语言的能力。它结合了统计学原理和深度神经网络技术,通过对大量的样本数据进行复杂的概率分布分析来学习语言结构的内在模式和相关性。具体地,语言模型可根据上下文中已出现的词序列,使用概率推断来预测接…

workman服务端开发模式-应用开发-vue-element-admin挂载websocket

一、项目根目录main.js添加全局引入 import /utils/websocket 二、在根目录app.vue 中初始化WebSocket连接 <template><div id"app"><router-view /></div> </template><script>import store from ./store export default {n…

2024-12-24 NO1. XR Interaction ToolKit 环境配置

文章目录 1 软件配置2 安装 XRToolKit3 配置 OpenXR4 安装示例场景5 运行测试 1 软件配置 Unity 版本&#xff1a;Unity6000.0.26 ​ 2 安装 XRToolKit 创建新项目&#xff08;URP 3D&#xff09;&#xff0c;点击进入 Asset Store。 进入“Unity Registry”页签&#xff0…

华为手机鸿蒙4.2连接不上adb

1、下载HiSuite华为手机助手 https://consumer.huawei.com/cn/support/hisuite/ 2、安装后点连接 3、就可以adb连接了

GitPuk安装配置指南

GitPuk是一款开源免费的代码管理工具&#xff0c;上篇文章已经介绍了Gitpuk的功能与优势&#xff0c;这篇文章将为大家讲解如何快速安装和配置GitPuk&#xff0c;助力你快速的启动GitPuk管理代码 1. 安装 支持 Windows、Mac、Linux、docker 等操作系统。 1.1 Windows安装 下载…

【从零开始入门unity游戏开发之——C#篇20】C#面向对象的封装——静态成员(`static`)(静态字段、静态方法、静态属性、静态构造函数、静态类)

文章目录 静态成员&#xff08;static&#xff09;1、静态成员的特点&#xff1a;2、为什么可以直接点出来使用&#xff1f;3、不同的静态成员介绍3.1. 静态字段3.2. 静态方法3.3. 静态属性3.4. 静态构造函数3.5. 静态类 4、静态成员的优缺点优点&#xff1a;缺点&#xff1a; …

【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?

文章目录 前言问题描述问题分析问题解决1.允许所有用户上传驱动文件2.如果是想只上传白名单的驱动 前言 该方法适合永洪BI系列产品&#xff0c;包括不限于vividime desktop&#xff0c;vividime z-suit&#xff0c;vividime x-suit产品。 问题描述 当我们连接数据源的时候&a…

我的JAVA-Web基础(2)

1.JDBC 防止sql注入 2.JSP JSP的基本语法 基本语法是 <% %> Java代码 <% %> 输出变量 可以转换成${变量}的EL表达式 <%! %>定义变量 JSP的基本语法包括以下几个主要部分&#xff1a; 1. 表达式&#xff08;Expression&#xff09; 表达式用于将…

新闻网站的个性化推荐:机器学习的应用

3.1可行性分析 开发者在进行开发系统之前&#xff0c;都需要进行可行性分析&#xff0c;保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该新闻网站所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识&#xff0c;同时也…

IIC驱动EEPROM

代码参考正点原子 i2c_dri:主要是三段式状态机的编写 module iic_dri#(parameter SLAVE_ADDR 7b1010000 , //EEPROM从机地址parameter CLK_FREQ 26d50_000_000, //模块输入的时钟频率parameter I2C_FREQ 18d250_000 //IIC_SCL的时钟频率)( …

【动手学轨迹预测】2.3 场景表征方法

场景表征是指在所有可用的场景信息数据中, 提取出对于预测网络有用的数据, 并将其转换为易于模型学习的数据格式. 对于预测网络来说, 最重要的数据是交通参与者的历史轨迹和地图信息, 表达它们的常见方法有:栅格化和稀疏化 2.1.1 栅格化 多通道表达 如上图所示, 将历史轨迹和…

亚信安全举办“判大势 悟思想 强实践”主题党日活动

为深入学习和贯彻党的二十届三中全会精神&#xff0c;近日&#xff0c;亚信安全举办了 “学习贯彻党的二十届三中全会精神——‘判大势 悟思想 强实践’党日活动”&#xff0c;并取得圆满成功。 本次活动特邀南京市委宣讲团成员、南京市委党校市情研究中心主任王辉龙教授出席。…

医疗大模型威胁攻击下的医院AI安全:挑战与应对策略

一、引言 1.1 研究背景与意义 随着人工智能技术的迅猛发展,医疗大模型作为一种新兴的技术手段,正逐渐渗透到医疗领域的各个环节,为医疗服务的数字化转型带来了前所未有的机遇。从辅助诊断到疾病预测,从个性化治疗方案的制定到医疗资源的优化配置,医疗大模型展现出了巨大…

如何在谷歌浏览器中使用内置翻译功能

谷歌浏览器作为全球最受欢迎的网络浏览器之一&#xff0c;提供了强大且便捷的内置翻译功能。这一功能帮助用户轻松跨越语言障碍&#xff0c;浏览不同语言的网页内容。本文将详细介绍如何在谷歌浏览器中使用其内置翻译功能。 一、启用谷歌浏览器内置翻译功能 1、打开谷歌浏览器…

【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

1.0 help &#xff1f; 帮助指令&#xff0c;查询某个指令的解释、用法、说明等。详情参考博文&#xff1a; 【数据库】6.0 MySQL入门学习&#xff08;六&#xff09;——MySQL启动与停止、官方手册、文档查询 https://www.cnblogs.com/xiaofu007/p/10301005.html 2.0 在cmd命…

基于推理的目标检测 DetGPT

基于推理的目标检测 DetGPT flyfish detgpt.github.io 近年来&#xff0c;由于大型语言模型&#xff08;LLMs&#xff09;的发展&#xff0c;计算机视觉领域取得了重大进展。这些模型使人类与机器之间能够进行更有效、更复杂的交互&#xff0c;为模糊人类与机器智能界限的新技…

概率论 期末 笔记

第一章 随机事件及其概率 利用“四大公式”求事件概率 全概率公式与贝叶斯公式 伯努利概型求概率 习题 推导 一维随机变量及其分布 离散型随机变量&#xff08;R.V&#xff09;求分布律 利用常见离散型分布求概率 连续型R.V相关计算 利用常见连续型分布的计算 均匀分布 正态…

探索 Python编程 调试案例:计算小程序中修复偶数的bug

在 学习Python 编程的过程里&#xff0c;会遇到各种各样的bug。而修复bug调试代码就像是一场充满挑战的侦探游戏。每一个隐藏的 bug 都是谜题&#xff0c;等待开发者去揭开真相&#xff0c;让程序可以顺利运行。今天&#xff0c;让我们通过一个实际案例&#xff0c;深入探索 Py…

Redis 介绍和安装

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Redis 入门介绍 收录于专栏[redis] 本专栏旨在分享学习Linux的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 本章将带领读者进入 Redis 的世…