Linux 文件权限入门:读懂 rwx 与 chmod
引言
刚接触 Linux 时,很多人第一次被拦住不是命令本身,而是“Permission denied”。文件明明存在,路径也没有错,系统却不让读、不让写、不让执行。原因大多在文件权限上。看懂 ls -l 的输出,区分权限“对谁生效”,并理解 rwx 在文件和目录上的不同含义,就能解决大多数这类问题。
一、看懂 ls -l 的输出
执行 ls -l 会看到类似的一行:
-rw-r--r-- 1 zhangsan dev 2048 10-25 10:00 notes.txt
第一个字段共 10 个字符。首位是类型,- 为普通文件,d 为目录。后面 9 个字符分三组,依次是所有者、所属组、其他人。每组中 r 可读,w 可写,x 可执行,- 表示没有该权限。上例就是所有者可读写,组用户和其他人只能读。
二、rwx 对文件和目录含义不同
对文件,r 是读内容,w 是修改内容,x 是执行程序或脚本。对目录,含义会变化:r 是列出目录中的名字,w 是在目录中新建、删除或重命名文件,x 是进入目录并访问其中已知名字的文件。
因此,目录只有 r 没有 x 时,能看到文件名却打不开文件;只有 x 没有 r 时,看不到列表,但知道确切文件名仍可访问。排错时不要只看文件本身,还要检查它所在的每一级目录是否有 x 权限。
三、数字表示法:755 与 644
r、w、x 可换算为数字:r=4,w=2,x=1,无权限为 0。每组相加即得一位数:rwx 为 7,rw- 为 6,r-- 为 4。于是 755 表示所有者 rwx、组用户和其他人 r-x;644 表示所有者 rw-、其余只读。静态文件常用 644,目录常用 755,私有配置文件常用 600。
四、chmod、chown 与 umask
改权限用 chmod,改所有者用 chown。chmod 755 deploy.sh 是数字写法;chmod u+x deploy.sh 只给所有者加执行权限,更精细。批量改目录可用 -R,但切勿图省事用 chmod -R 777,它会把私有文件也暴露给所有人。
新建文件的默认权限由 umask 决定。常见 umask 为 022,新建文件默认 644,目录默认 755;改为 027 后,新建文件默认 640,更适合多人共用服务器时默认收敛。
五、排错三问
遇到拒绝访问时,先问:当前是谁,用 id 查看;再看文件与各级目录的权限,用 ls -l 和 ls -ld 对照;最后确认缺的是哪一位:读文件缺 r,进目录缺 x,写目录缺 w。坚持最小权限、只补真正需要的那一位,既能解决问题,也保住了安全边界。
- 点赞
- 收藏
- 关注作者
评论(0)