在linux系统的文件权限管理中,x权限是执行权限的标识,属于基础权限类型之一,和读权限r、写权限w共同组成linux文件权限的核心配置项,用于控制用户对文件或目录的可执行操作范围。

linux x权限的基础定义
linux系统中每个文件或目录都有对应的权限标识,通过ls -l命令查看时,权限字符串的第2到第10位分为三组,分别对应所有者、所属组、其他用户的权限,每组三个字符依次代表读、写、执行权限,x就是执行权限的标识。
如果对应位置是x,说明该用户组拥有执行权限;如果是-,则说明没有执行权限。比如权限字符串rwxr-xr--中,所有者的权限是rwx(读、写、执行),所属组的权限是r-x(读、执行,无写权限),其他用户的权限是r--(仅读权限)。
x权限对文件和目录的不同作用
x权限对普通文件和目录的作用存在明显差异,需要分别理解:
针对普通文件的作用
当普通文件拥有x权限时,说明该文件可以被执行。这里的执行分为两种情况:
- 如果是脚本类文件(比如shell脚本、python脚本等),拥有x权限后可以直接通过路径调用执行,不需要额外指定解释器。
- 如果是二进制可执行文件(比如编译后的程序),x权限是运行该程序的必要条件。
如果普通文件没有x权限,即使文件内容是可执行的脚本或二进制程序,用户也无法直接运行它,会提示权限不足。
针对目录的作用
目录的x权限作用和文件完全不同,它代表用户是否可以进入该目录,以及是否可以访问目录下的文件元数据(比如文件大小、修改时间等)。
如果用户对一个目录没有x权限,即使对该目录下的文件有读、写权限,也无法进入目录,更无法访问目录下的任何文件内容。只有同时拥有目录的x权限和文件的对应权限,才能正常操作目录中的文件。
如何查看和修改x权限
查看x权限
使用ls -l命令可以查看文件或目录的权限信息,示例输出如下:
# 查看当前目录下所有文件的权限 ls -l # 输出示例 -rwxr-xr-- 1 user group 1024 10月 1 12:00 test.sh drwxr-x--- 2 user group 4096 10月 1 12:00 test_dir
上述示例中,test.sh的所有者和所属组都有x权限,其他用户没有;test_dir的所有者有x权限,所属组有x权限,其他用户没有。
修改x权限
修改x权限通常使用chmod命令,有两种常用配置方式:
字母模式修改
通过u(所有者)、g(所属组)、o(其他用户)、a(所有用户)配合+(添加)、-(移除)、=(赋值)操作x权限:
# 给test.sh的所有用户添加x权限 chmod a+x test.sh # 移除test.sh所属组和其他用户的x权限 chmod go-x test.sh # 给test_dir的所有者赋值rwx权限,所属组和其他用户赋值rx权限 chmod u=rwx,go=rx test_dir
数字模式修改
linux权限也可以用三位八进制数字表示,每一位分别对应所有者、所属组、其他用户的权限,r对应4,w对应2,x对应1,三个权限值相加就是该用户组的权限数字:
| 权限组合 | 数值 | 说明 |
|---|---|---|
| rwx | 7 | 读+写+执行 |
| rw- | 6 | 读+写 |
| r-x | 5 | 读+执行 |
| r-- | 4 | 仅读 |
| -wx | 3 | 写+执行 |
| -w- | 2 | 仅写 |
| --x | 1 | 仅执行 |
| --- | 0 | 无权限 |
使用数字模式修改x权限的示例如下:
# 设置test.sh权限为rwxr-xr-x,对应数字755 chmod 755 test.sh # 设置test_dir权限为rwx------,对应数字700 chmod 700 test_dir
常见问题说明
很多用户会遇到脚本文件有x权限但无法执行的情况,这时候需要检查两个内容:一是脚本第一行是否指定了正确的解释器路径,比如#!/bin/bash;二是脚本文件的换行符是否是linux格式的换行符,windows格式的换行符会导致执行失败。
另外不要随意给所有文件添加x权限,尤其是普通文档类文件,不需要执行权限的文件添加x权限会增加系统的安全风险,建议按照最小权限原则配置权限。