Linux 新手的第一课:读懂文件权限 rwx
刚接触 Linux 的新手,几乎都会在第一次执行 ls -l 时愣住:文件名前面那一串 drwxr-xr-x 到底是什么暗号?为什么脚本明明存在,执行时却报 Permission denied?为什么老手总说“别动不动就 chmod 777”?
这篇文章带你从零读懂 Linux 文件权限,内容不多,但都是日常真正用得上的。
一、权限位:三组、九位
ls -l 输出的开头是一段 10 个字符,例如:
drwxr-xr-x 2 root root 4096 Oct 23 10:00 demo
-rw-r--r-- 1 root root 120 Oct 23 10:01 hello.txt
第 1 位表示文件类型:d 是目录,- 是普通文件,l 是软链接。
后面 9 位分成三组,每组 3 位,依次代表文件所有者(user)、文件所属组(group)、其他人(other)的权限。以 -rw-r--r-- 为例:所有者可读可写(rw-),组和其他人都只可读(r–)。
二、rwx 到底是什么意思
r(read,读):可以查看文件内容;对目录来说,可以列出目录下的文件列表。w(write,写):可以修改文件内容;对目录来说,可以在目录里新建、删除、重命名文件。x(execute,执行):文件可以作为程序执行;对目录来说,可以cd进入该目录。
新手常踩的一个坑:目录的 x 和文件的 x 含义不同。目录没有 x,你连 cd 都进不去,哪怕有 r 也列不出内容——这就是为什么目录权限通常是 755 而不是 644。
三、数字表示法:421 口诀
r=4,w=2,x=1,每组三位相加就是一个数字:
rwx=7,rw-=6,r--=4,r-x=5755:所有者 rwx,组和其他人 r-x(目录常用)644:所有者 rw-,组和其他人 r–(普通文件常用)
chmod 755 demo 就是把 demo 设成所有者可读写执行、其他人可读可执行,一条命令,清晰明了。
四、两个常用命令
chmod 644 hello.txt # 修改权限
chmod +x run.sh # 给脚本加上执行权限
chown user:group file # 修改所有者和所属组
下载的脚本报 Permission denied,十有八九是缺了 x 权限,chmod +x 一下就好,不用 sudo,更不用 777。
五、新手最常见的三个坑
- 滥用 777:
chmod -R 777确实能解决一切权限报错,但也等于把大门钥匙发给了所有人。生产环境这么干风险极高,能 755 就别 777。 - 只改文件不看目录:Web 服务报 403,很多时候不是文件权限不对,而是上层目录缺了
x,进程进不去目录。 - root 建的文件普通用户改不动:用 sudo 建的文件所有者是 root,普通用户自然写不了,用
chown把所有者改回来,而不是一味放宽权限。
结语
权限是 Linux 安全模型的基石,读懂这 9 个字符,你就拿到了 Linux 世界的第一把钥匙。下次再看到 Permission denied,先 ls -l 看一眼权限,八成的问题都能自己定位。
- 点赞
- 收藏
- 关注作者
评论(0)