在Linux系统中,查看文件夹权限最核心且最常用的方法是使用 ls -l 命令,该命令执行后,输出结果的第一列即为详细的权限字符串,drwxr-xr-x,这串字符不仅定义了文件类型,还精确划分了文件所有者、所属组以及其他用户的读取、写入和执行权限,掌握如何解读这一字符串以及结合 stat 和 getfacl 等高级命令,是进行Linux系统权限管理和故障排查的基础。

使用 ls -l 命令查看基础权限
ls -l 是查看目录权限的标准指令,能够以长列表格式显示目录内容,当针对文件夹执行该命令时,输出信息的第一个字段至关重要,通常由10个字符或更多组成。
权限字符串的构成解析
以输出结果 drwxr-xr-x 为例,这10个字符的具体含义如下:
- 首位字符(文件类型):这里的
d表示这是一个目录,如果是 则表示普通文件,l表示符号链接,c表示字符设备等。 - 第2-4位(所有者权限 User):
rwx表示文件拥有者拥有的权限。 - 第5-7位(所属组权限 Group):
r-x表示与文件所属组相同的用户拥有的权限。 - 第8-10位(其他用户权限 Others):
r-x表示既不是拥有者也不属于该组的其他用户拥有的权限。
查看特定目录的权限
若要直接查看某个特定文件夹本身的权限,而不是其内部内容,应结合 -d 参数使用,查看 /var/www 目录的权限,命令为 ls -ld /var/www,如果不加 -d,系统会列出 /var/www 内部文件的权限列表,而非该文件夹本身的属性。
深入解读文件夹权限位的特殊含义
在Linux中,文件夹的权限位与文件权限位在功能上存在显著差异,理解这些差异对于系统安全至关重要。
- 读取权限:对于文件夹而言,
r权限允许用户查看该目录内的文件列表,即可以使用ls命令。注意:如果没有x权限,即使拥有r权限,虽然能看到文件名,但无法查看文件的详细信息(如大小、权限、时间戳等)。 - 写入权限:
w权限允许用户在目录内创建、删除或重命名文件。关键点在于:能否删除一个文件,取决于用户是否对文件所在的父目录拥有w权限,而不是对文件本身拥有w权限,即使一个文件对你来说是只读的,如果你对其所在目录有写权限,你依然可以删除该文件。 - 执行权限:这是文件夹最容易被忽视的权限。
x权限允许用户“进入”该目录,即可以使用cd命令切换到该目录下,或者访问该目录内的文件元数据。没有x权限,用户无法穿越该目录,这会极大地限制用户对目录树深层结构的访问。
数字权限表示法与计算
Linux权限除了使用字母 rwx 表示外,还常使用八进制数字表示,这在 chmod 修改权限时尤为常见。
- r (Read) = 4
- w (Write) = 2
- x (Execute) = 1
通过将这三个数值相加,可以得到一组权限的数字代码。

- rwx = 4+2+1 = 7
- r-x = 4+0+1 = 5
- r-= 4+0+0 = 4
常见的 drwxr-xr-x 也可以理解为权限代码 755(即所有者7,组5,其他5),在查看权限时,虽然 ls -l 默认显示字符,但理解其背后的数字逻辑有助于快速判断权限的开放程度,777代表所有人拥有所有权限,存在极高安全风险;而644则代表所有者可读写,其他人只读,是较为安全的文件配置。
使用 stat 命令查看详细属性
当需要获取比 ls -l 更为详尽的权限和元数据信息时,stat 命令是最佳选择。stat 命令会显示文件或文件系统的详细状态,包括 inode 号、块数量、访问时间、修改时间以及原始的八进制权限值。
执行 stat /path/to/directory,输出中的 Access 行会直接显示权限的八进制代码(如 (0755/drwxr-xr-x)),这对于编写脚本或需要精确核对权限数值的场景非常有用。stat 还能显示文件的具体创建时间(Birth time,取决于文件系统支持),这是 ls 命令无法提供的。
查看访问控制列表(ACL)
在传统的用户、组、其他权限之外,现代Linux文件系统通常支持访问控制列表,允许为特定用户或组设置单独的权限,而不受其所属组的限制,仅使用 ls -l 查看到的 rwx 后面如果出现一个 号(drwxr-xr-x+),则表示该目录设置了ACL。
要查看详细的ACL权限,必须使用 getfacl 命令。
- 命令:
getfacl /path/to/directory - 输出解读:除了显示标准的 user::rwx, group::r-x, other::r-x 之外,还会列出特定的条目,如
user:john:rwx,表示用户john在该目录拥有特定的读写执行权限,这是解决复杂权限分配问题的专业方案。
常见权限问题与排查思路
在运维过程中,经常遇到“Permission denied”(权限被拒绝)的错误,排查此类问题时,应遵循以下逻辑:

- 检查目标路径的每一级目录:用户要访问
/var/www/html/index.html,必须对 、/var、/var/www、/var/www/html每一级目录都拥有x(执行)权限,只要有一级目录没有x权限,路径就会中断。 - 确认用户身份:使用
whoami确认当前登录用户,使用groups确认用户所属的组,Linux权限是基于当前有效UID和GID进行匹配的。 - 检查ACL:如果基础权限看起来没问题,但依然被拒绝,务必使用
getfacl检查是否有ACL规则限制了访问。
相关问答
Q1:为什么我对文件夹有 r 权限,却无法 cd 进入该目录?
A: 在Linux中,cd 命令(切换目录)依赖于文件夹的 执行权限,而不仅仅是读取权限。r 权限只允许你列出目录内的文件名,而 x 权限才是允许用户将工作目录切换至该目录内部的“通行证”,要进入目录,必须至少拥有 x 权限。
Q2:如何递归查看一个目录下所有文件和子目录的权限?
A: 可以使用 ls 命令配合 -R(Recursive,递归)参数,执行 ls -lR /path/to/directory,该命令会列出指定目录及其下所有子目录和文件的详细信息,如果需要更直观的树状结构并显示权限,可以结合 tree 命令(如果已安装)使用 tree -p /path/to/directory,-p 参数用于显示每个文件和目录的权限位。
如果您在设置或查看Linux权限时有特定的应用场景或遇到报错,欢迎在下方留言,我们可以进一步探讨具体的解决方案。

















