网站服务器 内存,关键词林俊杰的寓意,做电影网站侵权吗,广州社交软件app开发在 CentOS 系统中#xff0c;权限管理是操作系统的核心功能之一#xff0c;确保不同用户和进程对文件、目录以及设备的访问被合理控制。
权限系统主要包括传统的 Unix 权限模型、特殊权限#xff08;SetUID、SetGID、Sticky 位#xff09;和更精细的访问控制列表#xff…在 CentOS 系统中权限管理是操作系统的核心功能之一确保不同用户和进程对文件、目录以及设备的访问被合理控制。
权限系统主要包括传统的 Unix 权限模型、特殊权限SetUID、SetGID、Sticky 位和更精细的访问控制列表ACL。下面将详细介绍 CentOS 系统中的权限配置及其相关机制。
drwxr-xr-x 2 root root 6 10月 11 2023 test
-rwxr-xr-x 1 root root 862 5月 20 2022 all.sh1. 基本权限模型
1.1 文件权限概述
在 Linux 系统包括 CentOS中每个文件或目录都有三类用户类型的权限
文件所有者Owner创建文件的用户通常默认是该文件的所有者。所属组Group文件所有者所在的组组内所有成员共享该文件的权限。其他用户Others系统中不属于文件所有者或组的其他用户。
每个文件的权限分为三种操作
读权限r允许查看文件内容或列出目录的内容。写权限w允许修改文件内容或在目录中创建、删除文件。执行权限x允许执行文件如脚本、二进制程序或进入某个目录。
1.2 权限表示
权限以两种方式表示 符号模式使用字母 rwx 表示每种权限。例如 rwxr-xr--前三位文件所有者的权限rwx。中三位文件所属组的权限r-x。后三位其他用户的权限r--。 八进制模式权限也可以用数字表示每个权限位转换为一个数字。 读权限r4写权限w2执行权限x1无权限-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 urwx,grx,o-r /path/to/fileu所有者Userg组Groupo其他用户Others添加权限-去除权限 八进制模式修改 chmod 755 /path/to/file # 所有者有 rwx 权限组和其他用户有 rx 权限递归修改权限
对于目录及其子目录和文件使用 -R 参数递归修改权限
chmod -R 755 /path/to/directory
chmod -R urwx,grx,o-r /path/to/file3. 文件所有权配置
文件所有权涉及文件的所有者用户和所属组。通过更改文件的所有权可以控制谁能够访问和修改文件。
3.1 修改文件的所有者和所属组
使用 chown 命令
chown 用于更改文件的所有者和组
chown user:group /path/to/fileuser新的所有者group新的所属组
如果只更改所属组可以省略用户部分
chown :group /path/to/file递归更改所有权
对目录及其所有子目录和文件进行所有权的递归修改
chown -R user:group /path/to/directory注chown修改仅针对当前已有的文件后期新建的文件所属仍为创建者想要永久生效修改SetGID如下 4. 特殊权限
特殊权限可以为文件和目录配置额外的安全措施。
4.1 SetUID SetUIDSet User ID当文件具有 SetUID 位时执行该文件的用户将临时获得文件所有者的权限。这通常用于程序如 passwd在执行时需要具有 root 权限。 设置 SetUID 位 chmod us /path/to/file4.2 SetGID
SetGIDSet Group ID当文件具有 SetGID 位时执行该文件的用户将临时获得文件所属组的权限。对于目录SetGID 位确保新建文件和子目录继承其父目录的组。即后期新建的文件都属于当前组 设置 SetGID 位chmod gs /path/to/directory4.3 Sticky 位
Sticky 位 通常用于目录确保只有文件所有者或 root 用户可以删除或重命名该目录中的文件。Sticky 位常见于 /tmp 目录确保所有用户可以创建文件但不能删除其他用户的文件。
设置 Sticky 位
chmod t /path/to/directory4.4 查看特殊权限
使用 ls -l 命令可以查看特殊权限
SetUID 位文件权限显示为 -rwsr-xr-xSetGID 位文件权限显示为 -rwxr-sr-xSticky 位目录权限显示为 drwxrwxrwt 若是Others位权限没有“x”,即r - -则目录权限显示为“-rwxr-xr-T” 5. 访问控制列表 (ACL) 权限后出现“”
ACLAccess 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-x5.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 临时设置: 临时设置的 umask 仅在当前 shell 会话或命令上下文中有效。一旦退出该会话或执行完该命令umask 设置将恢复为系统默认值或用户的配置文件中的设置。 在终端中直接输入 umask 命令。例如 umask 027永久设置: 希望特定用户在每次登录时自动应用相同的文件权限设置可以在用户的 shell 配置文件如 ~/.bashrc 或 ~/.bash_profile中添加 umask。这确保每次该用户登录时都能保持一致的权限策略。 对于系统级别可以在用户的 shell 配置文件中如 /etc/profile 或 /etc/bashrc 中设置添加 umask 0276.1 查看和设置 umask 查看当前 umask umask设置 umask umask 0022 # 设置新建文件的默认权限为 755目录或 644文件6.2 永久设置 umask
可以将 umask 写入用户的配置文件如 ~/.bashrc 或 ~/.bash_profile以确保每次登录时生效
echo umask 0022 ~/.bashrc
source ~/.bashrc7. SELinux强制访问控制 (MAC) 机制 权限后出现“.”
在CentOS系统中SELinuxSecurity-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模式
SELINUXpermissive保存并关闭文件后重新启动计算机以使更改生效。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的配置和管理建议咨询经验丰富的系统管理员或参考官方文档。觉得有用点赞再走呗~