centos权限大聚集,覆盖多种权限范例,解惑权限后有“. + t s”题目!

[复制链接]
发表于 2025-11-21 21:06:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在 CentOS 体系中,权限管理是操纵体系的核心功能之一,确保差别用户和进程对文件、目次以及装备的访问被公道控制。
权限体系重要包罗传统的 Unix 权限模子、特别权限(SetUID、SetGID、Sticky 位)和更精致的访问控制列表(ACL)。下面将详细先容 CentOS 体系中的权限设置及其相干机制。
  1. drwxr-xr-x   2 root             root            6 10月 11 2023 test
  2. -rwxr-xr-x   1 root             root          862 5月  20 2022 all.sh
复制代码


1. 根本权限模子

1.1 文件权限概述

在 Linux 体系(包罗 CentOS)中,每个文件或目次都有三类用户范例的权限:

  • 文件全部者(Owner):创建文件的用户,通常默认是该文件的全部者。
  • 所属组(Group):文件全部者所在的组,组内全部成员共享该文件的权限。
  • 其他用户(Others):体系中不属于文件全部者或组的其他用户。
每个文件的权限分为三种操纵:

  • 读权限(r):答应查察文件内容,或列出目次的内容。
  • 写权限(w):答应修改文件内容,或在目次中创建、删除文件。
  • 实验权限(x):答应实验文件(如脚本、二进制步伐),或进入某个目次。
1.2 权限表现

权限以两种方式表现:

  • 符号模式:利用字母 rwx 表现每种权限。比方:
    1. rwxr-xr--
    复制代码

    • 前三位:文件全部者的权限(rwx)。
    • 中三位:文件所属组的权限(r-x)。
    • 后三位:其他用户的权限(r--)。

  • 八进制模式:权限也可以用数字表现,每个权限位转换为一个数字。

    • 读权限(r):4
    • 写权限(w):2
    • 实验权限(x):1
    • 无权限(-):0
    比方,rwxr-xr--
    的数字情势为 755。

1.3 查察文件权限

利用 ls -l 下令可以查察文件或目次的权限。
  1. ll /path/to/file
复制代码
输出示例:
  1. -rwxr-xr--
  2.   1 user group 4096 Sep 22 10:30 filename
复制代码

  • -rwxr-xr--
    :文件权限
  • user:文件全部者
  • group:文件所属组
2. 修改文件权限

利用 chmod 下令

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

  • 符号模式修改:
    1. chmod u+rwx,g+rx,o-r /path/to/file
    复制代码

    • u:全部者(User)
    • g:组(Group)
    • o:其他用户(Others)
    • +:添加权限
    • -:去除权限

  • 八进制模式修改:
    1. chmod 755 /path/to/file  # 所有者有 rwx 权限,组和其他用户有 rx 权限
    复制代码
递归修改权限

对于目次及其子目次和文件,利用 -R 参数递归修改权限:
  1. chmod -R 755 /path/to/directory
  2. chmod -R u+rwx,g+rx,o-r /path/to/file
复制代码

3. 文件全部权设置

文件全部权涉及文件的全部者(用户)和所属组。通过更改文件的全部权,可以控制谁可以或许访问和修改文件。
3.1 修改文件的全部者和所属组

利用 chown 下令

chown 用于更改文件的全部者和组:
  1. chown user:group /path/to/file
复制代码

  • user:新的全部者
  • group:新的所属组
如果只更改所属组,可以省略用户部门:
  1. chown :group /path/to/file
复制代码
递归更改全部权

对目次及其全部子目次和文件举行全部权的递归修改:
  1. chown -R user:group /path/to/directory
复制代码
注:chown修改仅针对当前已有的文件,后期新建的文件所属仍为创建者,想要永世收效,修改SetGID,如下

4. 特别权限

特别权限可以为文件和目次设置额外的安全步伐。
4.1 SetUID


  • SetUID(Set User ID):当文件具有 SetUID 位时,实验该文件的用户将临时得到文件全部者的权限。这通常用于步伐(如 passwd)在实验时必要具有 root 权限。
    设置 SetUID 位:
    1. chmod u+s /path/to/file
    复制代码
4.2 SetGID


  • SetGID(Set Group ID):当文件具有 SetGID 位时,实验该文件的用户将临时得到文件所属组的权限。对于目次,SetGID 位确保新建文件和子目次继承其父目次的组。即,后期新建的文件都属于当前组
    设置 SetGID 位:
    1. chmod g+s /path/to/directory
    复制代码
4.3 Sticky 位


  • Sticky 位 通常用于目次,确保只有文件全部者或 root 用户可以删除或重定名该目次中的文件。Sticky 位常见于 /tmp 目次,确保全部用户可以创建文件但不能删除其他用户的文件。
设置 Sticky 位:
  1. 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),提供比传统权限更细粒度的控制。以下是一些常用参数:
  1. -m: 修改 ACL。用于添加或修改某个用户或组的权限。
  2. -x: 删除 ACL。用于移除特定用户或组的权限。
  3. -b: 删除所有 ACL。将文件的 ACL 设置为默认权限,仅保留标准权限。
  4. -k: 删除默认 ACL。仅移除目录的默认 ACL,而保留用户或组的 ACL。
  5. -d: 设置默认 ACL。用于目录,以便新创建的文件和子目录继承这些 ACL。
  6. -R: 递归地应用 ACL 到目录及其所有子文件和子目录。
  7. -n: 直接使用名称而不解析,以避免在无法解析用户或组时出错。
复制代码
利用 setfacl 下令修改 ACL。比方,给用户 Bess 添加读写实验权限:
  1. setfacl -m u:Bess:rwx 文件名
复制代码
权限后出现“+”

利用 getfacl 下令查察文件或目次的 ACL。
  1. # file: test.tar
  2. # owner: root
  3. # group: root
  4. user::rwx
  5. user:Bess:rwx      # 用户 Bess 的权限
  6. group::r-x
  7. mask::rwx
  8. other::r-x
复制代码
5.3 为用户组添加权限
  1. setfacl -m g:groupname:rx 文件名
复制代码
5.4 删除 ACL 权限:
  1. 删除用户ACL权限
  2. setfacl -x u:Bess  文件名
  3. 删除用户组ACL权限
  4. setfacl -x  g:groupname  文件名
复制代码

6. 默认权限设置 (umask
)



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


  • 默认权限:

    • 新创建的文件通常默以为 666(可读可写)权限。
    • 新创建的目次默以为 777(可读、可写、可实验)权限。

  • umask
    的作用
    :

    • umask
      通过从默认权限中减去 umask
      值,来决定新文件和目次的终极权限。

  • umask
    值的盘算

    umask
    值是以八进制情势表现的,通常包罗三个数字:

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

比方,如果 umask
设置为 022,则:

  • 新文件的权限将为 644(666 - 022),即可读可写,但不可实验。
  • 新目次的权限将为 755(777 - 022),即可读可写可实验。
6.2 设置 umask



  • 临时设置:
    临时设置的 umask
    仅在当前 shell 会话或下令上下文中有用。一旦退出该会话或实验完该下令,umask
    设置将规复为体系默认值或用户的设置文件中的设置。
    在终端中直接输入 umask
    下令。比方:
    1. umask
    2. 027
    复制代码
  • 永世设置:
    渴望特定用户在每次登录时自动应用雷同的文件权限设置,可以在用户的 shell 设置文件(如 ~/.bashrc 或 ~/.bash_profile)中添加 umask
    。这确保每次该用户登录时都能保持划一的权限计谋。



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

    1. umask
    2. 027
    复制代码
6.1 查察和设置 umask



  • 查察当前 umask
    :
    1. umask
    复制代码
  • 设置 umask
    :
    1. umask
    2. 0022  # 设置新建文件的默认权限为 755(目次)或 644(文件)
    复制代码
6.2 永世设置 umask


可以将 umask
写入用户的设置文件(如 ~/.bashrc 或 ~/.bash_profile),以确保每次登录时收效:
  1. echo "umask
  2. 0022" >> ~/.bashrcsource ~/.bashrc
复制代码
7. SELinux逼迫访问控制 (MAC) 机制 (权限后出现“.”)

在CentOS体系中,SELinux(Security-Enhanced Linux)的设置涉及多个方面,包罗查察状态、修改模式、管理计谋等。
7.1 查察SELinux状态

要查察SELinux的当前状态,可以利用sestatus
下令。该下令将体现SELinux的开关状态、工作模式以及加载的计谋等信息。
  1. sestatus
复制代码

输出将包罗SELinux是否启用、当前模式(Enforcing、Permissive或Disabled)、加载的计谋范例等详细信息。
7.2 修改SELinux模式

SELinux有三种模式:Enforcing(逼迫实验计谋)、Permissive(告诫但不克制操纵)和Disabled(禁用)。
① 临时修改模式:
  1. 使用setenforce命令可以临时更改SELinux的模式。
  2. 要将SELinux设置为Enforcing模式:
  3. sudo setenforce 1
  4. 要将SELinux设置为Permissive模式:
  5. sudo setenforce 0
  6.    
  7. 请注意,这些更改在系统重启后会失效。
复制代码
② 永世修改模式:

要永世更改SELinux的模式,必要编辑/etc/selinux/config文件。
找到SELINUX=一行,并将其值改为 enforcing、permissive或disabled。
  1. 要将SELinux设置为Permissive模式:
  2. SELINUX=permissive
  3. 保存并关闭文件后,重新启动计算机以使更改生效。
复制代码
7.3 管理SELinux计谋

SELinux通过安全上下文来标识和控制进程及数据的访问权限。可以利用以下下令查察和管理安全上下文:
  1. 使用ls -Z命令查看文件或目录的安全上下文信息。
  2. 使用ps -eZ命令查看进程的安全上下文信息。
  3. 使用chcon命令临时修改文件或进程的安全上下文。
  4. 例如,要将某个文件的安全上下文更改为system_u:object_r:admin_home_t:s0,可以使用以下命令:
  5. sudo chcon -t admin_home_t /path/to/file
复制代码
请注意,这种更改是临时的,不会在体系重启后保存。
要举行恒久化修改,必要编辑SELinux计谋文件或利用semanage、audit2allow等工具天生并应用新的SELinux计谋规则。
7.4 注意事项
  1. 在修改SELinux配置之前,建议备份原始配置文件,以便在出现问题时能够恢复。
  2. 更改SELinux模式或策略可能会影响系统的安全性和稳定性,因此应谨慎进行。
  3. 如果不熟悉SELinux的配置和管理,建议咨询经验丰富的系统管理员或参考官方文档。
复制代码
以为有用,点赞再走呗~
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表