Linux 权限入门:rwx 与 chmod 一次讲清
Linux 权限入门:rwx 与 chmod 一次讲清
刚接触 Linux 时,很多人第一次被拦住不是命令记不住,而是权限看不懂:ls -l 输出的一串 -rw-r--r-- 像密码,chmod 755 像暗号。今天就把这套规则一次讲清。
先看懂 ls -l 的第一列
执行 ls -l,每一行开头有 10 个字符。以 -rw-r--r-- 为例:
- 第 1 位是文件类型:
-是普通文件,d是目录,l是软链接。 - 后面 9 位分成三组,每组 3 位,依次是所有者(user)、所属组(group)、**其他人(other)**的权限。
- 每组里的三个位置固定是
r(读)、w(写)、x(执行),没有该权限就显示-。
所以 -rw-r--r-- 的意思是:这是一个普通文件,所有者可读写,组内成员和其他人只可读。目录的 x 有点特别:对目录来说,r 是能列出里面有什么,x 是能进入这个目录、访问已知路径下的文件。没有 x,哪怕有 r 也进不去子路径,这一点新手最容易踩坑。
数字表示法:755 到底是什么意思
r=4,w=2,x=1,每组三个权限相加就是一个数字。755 拆开看:所有者 7=4+2+1(读、写、执行全有),组 5=4+1(读和执行),其他人同样是 5。常见的组合可以按需套用:
644:文件默认权限,所有者可读写,其他人只读。适合普通配置文件和文章。755:目录和可执行脚本的常用权限,所有者全权,其他人可读可执行。600:只有所有者能读写,适合私钥、保存密码的文件。700:只有所有者能进能改,适合放私密内容的目录。
注意不要图省事把什么都改成 777。777 意味着任何人都能改这个文件,一旦是网站目录或脚本,就等于把大门钥匙交给了所有人,出问题时很难追溯。
chmod 与 chown 的分工
改权限用 chmod,有两种写法:chmod 755 deploy.sh 是数字写法,一次定好三组;chmod u+x deploy.sh 是符号写法,只给所有者加上执行权限,不动其他位,改动更精细。符号写法里 u 是所有者、g 是组、o 是其他人、a 是全部,+ 加权限、- 减权限、= 直接设定。
改归属用 chown:chown 用户名:组名 文件。比如把网站目录交给 www-data 用户和组:chown -R www-data:www-data /var/www/mysite,-R 表示连同子目录一起改。改归属一般需要管理员权限,普通用户改不了别人的文件,这是正常的保护。
新手最常见的三个坑
第一,脚本报 Permission denied:先看文件有没有 x,chmod +x 往往就解决了,而不是用 sudo 强行绕过去。第二,目录只给了 r 没给 x:能看到文件名却打不开里面的文件,补上 x 即可。第三,改完权限立刻用 ls -l 再确认一遍,确认改的是目标文件而不是同名文件,尤其在用 -R 递归时更要先确认路径。
权限这套规则看起来繁琐,其实只有一句话:谁(所有者、组、其他人)能对这个文件做什么(读、写、执行)。看懂 ls -l 的第一列,记住 4、2、1 三个数字,日常够用;再遇到 Permission denied,先查权限再查路径,大多数问题到这一步就解决了。
- 点赞
- 收藏
- 关注作者
评论(0)