Linux文件权限755、644含义,chmod修改权限
前言
Linux 文件权限是新手最头疼的东西之一,经常遇到 403 权限不足的报错。755、644 这些数字到底是什么意思?怎么改?本文一次讲清楚。
权限基础
三种身份
Linux 把用户分三类:
- 文件所有者(u):文件的主人
- 同组用户(g):和主人在同一个组的人
- 其他用户(o):所有人
三种权限
每种身份有三种权限:
- 读(r):4
- 写(w):2
- 执行(x):1
加起来就是权限数字。
755、644 是什么意思
755
7 = rwx(读+写+执行)= 4+2+1
5 = r-x(读+执行)= 4+1
5 = r-x(读+执行)= 4+1
合起来就是:所有者能读写执行,同组和其他用户只能读和执行。
常用于: 目录、可执行脚本
644
6 = rw-(读+写)= 4+2
4 = r--(只读)= 4
4 = r--(只读)= 4
合起来就是:所有者能读写,其他人只能读。
常用于: 普通文件、网页
常用权限速查表
| 数字 | 含义 | 用途 |
|---|---|---|
| 755 | rwxr-xr-x | 目录、脚本 |
| 644 | rw-r--r-- | 普通文件、网页 |
| 700 | rwx------ | 私人目录 |
| 600 | rw------- | 私人文件(比如密钥) |
| 777 | rwxrwxrwx | 所有人都能读写执行(不推荐) |
chmod 修改权限
数字方式(最常用)
chmod 755 文件名
比如把 index.php 改成 644:
chmod 644 index.php
字母方式
chmod u+x 文件名
意思是给所有者(u)加执行权限(x)。
常用的:
u+x:所有者加执行权限u-w:所有者去掉写权限g+w:同组加写权限o+r:其他用户加读权限a+x:所有人加执行权限
递归修改目录下所有文件
加 -R 参数:
chmod -R 755 /var/www/html
警告: 递归改权限要小心,别把系统目录改坏了。
chown 修改所有者
有时候不是权限数字的问题,是文件属主不对。
查看文件属主
ls -l 文件名
输出第一列后面就是属主:
-rw-r--r-- 1 www www 1234 Oct 6 10:00 index.php
前面的 www 是用户,后面的 www 是组。
修改文件属主
chown 用户:组 文件名
比如把文件改成 www 用户:
chown www:www index.php
递归修改目录属主
chown -R www:www /var/www/html
常见坑
坑1:网站 403 权限不足
网页打不开,报 403 Forbidden。
原因: 文件权限不对,或者属主不对。
解决:
- 文件改成 644:
chmod 644 文件 - 目录改成 755:
chmod 755 目录 - 属主改成运行用户:
chown www:www 文件
坑2:777 万能解决?
一遇到权限问题就 chmod 777。
原因: 图省事,但不安全。
解决: 777 意味着所有人都能读写执行,恶意文件可以直接往你的目录里写木马。生产环境绝对不要用 777。
坑3:改了权限还是不行
执行了 chmod 还是报权限不足。
原因: SELinux 拦截了。
解决: 检查 SELinux:
getenforce
如果是 Enforcing,临时关掉试试:
setenforce 0
坑4:上传文件没有执行权限
写了个脚本想运行,报 Permission denied。
原因: 文件没有执行权限。
解决:
chmod +x 脚本.sh
总结
| 命令 | 作用 |
|---|---|
chmod 755 文件名 |
改成 755 权限 |
chmod 644 文件名 |
改成 644 权限 |
chmod -R 755 目录 |
递归改目录权限 |
chown www:www 文件名 |
改文件属主 |
chown -R www:www 目录 |
递归改目录属主 |
记住两个常用的:目录 755,文件 644,基本就够用了。
遇到问题加QQ23979811 协助处理