Linux 文件权限速记:chmod、chown 与 umask 三件套
新文件打不开、上传的脚本执行不了、网站报 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,按这三步走:
- ls -l 看权限位,确认缺的是 r、w 还是 x;
- id 用户名确认当前用户在不在属组里;
- namei -l /var/www/html/index.html 从根目录逐级看,目录缺 x 也会挡住里面的文件。
权限管的是“谁能对文件做什么”。读懂三组九个位,再配上 chmod、chown、umask,日常运维里的大多数权限问题都能在原地解决。
- 点赞
- 收藏
- 关注作者
评论(0)