《Linux 新手入门:用 chmod 和 chown 管文件权限,先看懂再改》

举报
yd_292135771 发表于 2026/11/11 06:13:31 2026/11/11
【摘要】 前面几篇学会了看服务状态、查端口、翻日志、管进程,今天补一块新手迟早要碰的拼图:文件权限。脚本明明写好了,一运行却报「没有权限」;文件明明在那儿,一打开却说「拒绝访问」——多半不是文件坏了,是权限没给对。先看懂,再动手改,顺序不能反。先看一个文件到底是谁的、谁能动它,用 ls -l:ls -l myscript.sh输出开头那串字符就是权限,比如 -rwxr-xr-x。第一个字符是类型,- ...

前面几篇学会了看服务状态、查端口、翻日志、管进程,今天补一块新手迟早要碰的拼图:文件权限。脚本明明写好了,一运行却报「没有权限」;文件明明在那儿,一打开却说「拒绝访问」——多半不是文件坏了,是权限没给对。先看懂,再动手改,顺序不能反。

先看一个文件到底是谁的、谁能动它,用 ls -l:

ls -l myscript.sh

输出开头那串字符就是权限,比如 -rwxr-xr-x。第一个字符是类型,- 是普通文件,d 是目录;后面九个字符分三组,每组三个:第一组是文件所有者能干什么,第二组是同组用户,第三组是其他所有人。每组里 r 是读,w 是写,x 是执行,- 是没有这项权限。myscript.sh 是 -rwxr-xr-x,意思就是所有者可读可写可执行,同组和其他人只能读和执行、不能改。

数字写法是同一套规则的简写:r 是 4,w 是 2,x 是 1,三组分别相加。rwx 是 7,r-x 是 5,r-- 是 4,所以 755 就是所有者 rwx、同组 r-x、其他人 r-x,644 就是所有者 rw-、其余两组 r--。看到 755 和 644 不用背,拆成三组一算就明白了。

脚本写好却执行不了,最常见就是缺了 x。先看一眼权限,再补执行权限:

chmod +x myscript.sh

chmod +x 是给所有者、同组、其他人一起加上执行权限,只改这一项,别的权限不动。想精确地定成某一种,用数字写法:

chmod 755 myscript.sh

chmod 644 notes.txt

脚本、可执行程序一般给 755,普通文本、配置文件一般给 644。只给自己看的私密文件可以收紧一点:

chmod 600 mykey.txt

600 是只有所有者能读写,其他人什么都看不到,存密钥、存密码的配置文件就该这样。

权限之外还有归属问题:文件是谁的、属于哪个组,用 ls -l 的第三、四列看。自己建的文件归自己,用 sudo 建出来的文件可能归 root,普通用户就改不动它。这时候别急着放宽权限,先看归属对不对:

ls -l /var/www/index.html

归属错了,用 chown 改回来。把文件交给某个用户:

sudo chown www-data /var/www/index.html

连同组一起改,用冒号把用户和组写在一起:

sudo chown www-data:www-data /var/www/index.html

只改组、不改所有者,用 chgrp:

sudo chgrp www-data /var/www/index.html

还有两个新手常踩的坑。第一,chmod 777 是把读、写、执行全放开给所有人,看着省事,实际上等于把门拆了——谁都能改你的文件,脚本被改了都不知道,出问题先查权限是不是被放得太宽,而不是再放宽一点。第二,chmod -R 和 chown -R 是递归改整个目录,目录里文件多的时候一不留神就把系统目录的归属改乱了;对不熟悉的目录,先不加 -R,改一个文件确认没问题再说,更不要对系统目录用递归。

总结一下排查顺序:打不开、执行不了,先 ls -l 看权限和归属三组各是什么,再决定是 chmod 补权限、还是 chown 改归属,改完再跑一次验证。配合前面学过的 ps 看进程、ss 看端口、grep 翻日志,文件「谁能读、谁能改、谁能执行」这条链就全了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。