Linux 文件权限速记:chmod、chown 与 umask 三件套

举报
yd_270610013 发表于 2026/11/09 11:18:42 2026/11/09
【摘要】 新文件打不开、上传的脚本执行不了、网站报 403,很多时候不是程序错了,而是权限不对。文件权限只看三组九个位,配合 chmod、chown、umask 三个命令,日常运维够用。 一、先读懂权限位ls -l 输出的第一列就是权限,例如:-rw-r--r-- 1 root root 120 11-09 10:00 app.confdrwxr-xr-x 2 www www 4096 11-0...

新文件打不开、上传的脚本执行不了、网站报 403,很多时候不是程序错了,而是权限不对。文件权限只看三组九个位,配合 chmod、chown、umask 三个命令,日常运维够用。

一、先读懂权限位

ls -l 输出的第一列就是权限,例如:

-rw-r--r-- 1 root root  120 11-09 10:00 app.conf
drwxr-xr-x 2 www  www  4096 11-09 10:00 html

以 -rw-r–r-- 为例:首位 - 是普通文件(d 是目录),后面每三位一组,依次是属主、属组、其他的读(r=4)、写(w=2)、执行(x=1)。rwx 对应数字 7,rw- 对应 6,r-- 对应 4。记住这组数字,权限位就能心算。

二、chmod:改权限

数字法最直观,755 是目录常用值,644 是文件常用值:

chmod 755 deploy.sh        # 属主可读写执行,其他人可读执行
chmod 644 app.conf         # 配置文件:属主可写,其他人只读
chmod -R 755 html/         # 递归改目录及子项

符号法适合只改一位:

chmod u+x run.sh           # 只给属主加执行权限
chmod g-w data.txt         # 收走属组的写权限

一条提醒:不要图省事 chmod -R 777,从根目录一路放开等于把门拆了。

三、chown:改归属

文件归谁管,就用 chown 换属主或属组,部署网站时最常用:

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

只换属组写 chown :www file,只换属主写 chown www file。改归属前先用 id www 确认用户和组存在,改完用 ls -l 核对一遍。

四、umask:新建文件的默认权限

新建文件的默认权限由 umask 决定:文件是 666 减 umask,目录是 777 减 umask:

umask            # 常见返回值 0022
umask 0022       # 新文件 644,新目录 755

想让新建文件默认不对外可读,可在 ~/.bashrc 里加一行 umask 0027,再重新登录生效。umask 只影响之后新建的文件,不会回头改旧文件。

五、排障三步

权限问题先别急着 chmod 777,按这三步走:

  1. ls -l 看权限位,确认缺的是 r、w 还是 x;
  2. id 用户名确认当前用户在不在属组里;
  3. namei -l /var/www/html/index.html 从根目录逐级看,目录缺 x 也会挡住里面的文件。

权限管的是“谁能对文件做什么”。读懂三组九个位,再配上 chmod、chown、umask,日常运维里的大多数权限问题都能在原地解决。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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