linux文件权限由读(r)、写(w)、执行(x)组成,分别对应数字4、2、1,分为所有者(user)、所属组(group)、其他(others)三类用户;使用chmod命令可修改权限,可通过数字方式如755设置,也可用符号方式如g+w添加特定权限;目录需具备执行权限才能进入,修改权限时应避免误操作,常见用途包括设为可执行脚本、防止误删、团队共享等。
在Linux系统中,文件权限是保护数据安全、控制用户访问的核心机制。理解文件权限和掌握chmod命令的使用,几乎是每个使用者都绕不开的基础操作。
一、Linux文件权限的基本结构
Linux中的每个文件都有三类权限:读(r)、写(w)、执行(x),分别对应数字4、2、1。这三类权限又分为三个用户群体:
- 所有者(user):文件创建者
- 所属组(group):文件所属用户组
- 其他(others):既不是所有者也不是组成员的用户
比如,用ls -l查看一个文件时,显示如下:
-rw-r--r-- 1 user group 0 Apr 5 10:00 file.txt
其中:
- – 表示这是一个普通文件
- rw- 表示所有者有读写权限
- r– 表示组成员只有读权限
- r– 表示其他人也只有读权限
理解这个结构后,就能快速判断谁可以对文件做什么操作。
二、chmod命令的作用与基本用法
chmod 是用来修改文件或目录权限的命令,语法为:
chmod [who][operator][permissions] 文件名
或者直接使用数字表示权限:
chmod [mode] 文件名
举个例子,想让所有者可读写执行,组和其他人只能读执行,可以这样写:
chmod 755 file.txt
这里的7=4+2+1(rwx),5=4+1(r-x)。这种方式简洁明了,适合批量设置权限。
你也可以更精细地调整权限,比如只给组添加写权限:
chmod g+w file.txt
这种符号方式的好处是不需要重新计算整个权限组合,只改你想改的部分。
三、常见误区与注意事项
很多人设置完权限后发现还是不能访问,可能是因为忽略了“目录”的特殊性。对于目录来说:
- 读权限(r):允许列出目录内容
- 写权限(w):允许在目录中创建/删除文件
- 执行权限(x):允许进入该目录(即cd)
如果没有执行权限,即使有读写权限也无法进入目录。
另一个容易忽略的是权限叠加问题。例如,如果原本权限是644(rw-r–r–),然后执行:
chmod +x file.txt
结果会变成755(rwxr-xr-x),因为默认加上了所有者的执行权限。如果你只想加某一部分,记得明确指定对象,如chmod u+x。
四、什么时候需要改权限?
最常见的场景包括:
- 把脚本变成可执行文件:chmod +x script.sh
- 防止别人误删文件:去掉写的权限,如chmod o-w file.txt
- 共享目录给团队:通过设置组权限实现协作,如chmod g+rw dir
尤其在Web服务器上,经常要调整上传目录的权限,让Web服务进程能读取或写入文件,这时候常见的做法是把目录归属设为www-data组,并设置合适的权限组合。
基本上就这些。权限管理看起来不复杂,但细节容易出错,建议每次修改前先用ls -l确认当前状态,避免误操作。