CentOS7文件夹及子文件夹权限管理是系统安全的核心,涉及用户、组及其他主体的读(r)、写(w)、执行(x)权限,通过chmod命令设置权限(如755表示所有者读写执行,组和其他读执行),搭配-R选项实现递归修改;chown与chgrp分别用于变更所有者及所属组,特殊权限如SUID、SGID、粘滞位可增强安全性,如共享目录设置粘滞位防文件删除,需注意权限继承与最小权限原则,避免过度开放导致安全风险,确保系统资源合理访问控制。
在Linux系统管理中,文件与文件夹的权限控制是保障系统安全、规范数据访问的核心机制,CentOS7作为广泛使用的服务器操作系统,其权限管理机制延续了Linux的传统逻辑,同时通过chmod、chown、chgrp等工具提供了灵活的权限控制手段,本文将详细讲解CentOS7中文件夹及子文件夹的权限管理概念、操作方法及注意事项,帮助读者掌握权限控制的核心技能。
权限管理基础:为什么需要控制文件夹权限?
在多用户或服务器环境中,不同用户可能需要对同一目录下的文件进行操作(如读取、编辑、删除),若权限设置不当,可能导致敏感数据泄露、文件误删等问题,文件夹权限的核心作用包括:
- 限制访问:控制哪些用户可以进入目录、查看目录内容;
- 规范操作:明确用户对目录内文件的创建、修改、删除权限;
- 安全隔离:通过权限划分实现不同用户/业务的数据隔离。
Linux权限的核心概念
理解文件夹权限需先掌握Linux权限的三大要素:用户(User)、用户组(Group)、其他用户(Others),以及三种基本权限类型:读(r)、写(w)、执行(x)。

权限主体
- 用户(Owner):文件/文件夹的所有者,通常为创建该文件的用户;
- 用户组(Group):多个用户组成的集合,可统一设置组内权限;
- 其他用户(Others):除所有者及所属组外的其他所有用户。
权限类型
| 权限 | 符号 | 数字表示 | 对文件夹的作用 |
|---|---|---|---|
| 读 | r | 4 | 可列出目录内容(ls),查看目录下文件名 |
| 写 | w | 2 | 可在目录中创建、删除、重命名文件/子目录 |
| 执行 | x | 1 | 可进入目录(cd),访问目录内文件内容 |
注意:文件夹的“执行权限(x)”至关重要,若无x权限,即使有r权限也无法查看目录内容(ls会报错“Permission denied”),更无法进入目录。
权限表示法
- 符号表示法:如
rwxr-xr--,分别对应“所有者、用户组、其他用户”的权限,表示无对应权限; - 数字表示法:将
r=4、w=2、x=1叠加,如rwx=7(4+2+1)、r-x=5(4+0+1)、r--=4(4+0+0)。
查看文件夹权限
使用ls -l命令可查看当前目录下文件/文件夹的权限信息,
ls -l
输出示例:
drwxr-xr-x 2 user group 4096 Oct 20 10:30 test_dir
各字段含义:
d:文件类型(d表示目录,表示普通文件);rwxr-xr--:权限(所有者rwx、用户组r-x、其他用户r--);2:硬链接数;user:所有者;group:所属用户组;4096:大小(目录大小通常固定为4096字节);Oct 20 10:30:修改时间;test_dir:目录名称。
若需查看子文件夹权限,可结合find命令递归显示:
find /path/to/directory -type d -ls
-type d表示仅显示目录,-ls以详细格式输出权限信息。
修改文件夹及子文件夹权限
修改权限:chmod命令
chmod用于修改文件/文件夹的权限,递归修改子文件夹权限需添加-R参数。
(1)符号表示法修改权限
语法:chmod [ugoa][+-=][rwx] 目录名
u(所有者)、g(用户组)、o(其他用户)、a(所有用户);- (添加权限)、(移除权限)、(精确设置权限)。
示例:
- 为所有者添加写权限:
chmod u+w test_dir - 移除其他用户的读权限:
chmod o-r test_dir - 为所有用户设置“读+执行”权限:
chmod a=rx test_dir
(2)数字表示法修改权限(常用)
语法:chmod -R 权码 目录名
示例:
- 递归设置
test_dir及其子目录权限为“所有者rwx、用户组r-x、其他用户r-x(即755)”:chmod -R 755 test_dir
- 递归设置目录权限为“所有者
rwx、用户组rwx、其他用户(即770,仅限所有者和组内用户访问):chmod -R 770 test_dir
修改所有者:chown命令
若需修改文件夹的所有者(如将目录从user1转移至user2),使用chown命令,递归修改需加-R参数。
语法:chown [-R] 新所有者:新用户组 目录名
示例:
- 递归修改
test_dir的所有者为user2,所属组为`dev

