一、文件权限与目录权限有什么不同¶
同样是 r、w、x,作用在文件和目录上的含义并不完全相同。
| 权限 | 文件 | 目录 |
|---|---|---|
| r | 是否可以读取文件内容 | 是否可以查看目录内容,通常需要配合 x 权限 |
| w | 是否可以修改文件内容,通常还需要配合 r 权限 |
是否可以在目录中创建、删除、重命名文件,通常需要配合 r、x |
| x | 是否可以执行文件(命令、脚本),通常还需要配合 r 权限 |
是否可以进入目录,以及访问目录下文件属性 |
二、日常操作需要哪些权限¶
从日常使用角度看,常见操作与权限的对应关系如下:
| 日常操作 | 需要的权限 |
|---|---|
| 查看文件内容 | 文件需要有 r 权限 |
| 编辑或修改文件内容 | 文件通常需要有 rw 权限 |
| 执行脚本或命令 | 文件通常需要有 rx 权限 |
| 查看目录内容 | 目录通常需要有 rx 权限 |
| 创建文件、删除文件 | 文件所在目录需要有 rwx 权限 |
| 重命名文件 | 文件所在目录需要有 rwx 权限 |
三、使用 chmod 修改权限¶
更改文件或目录权限一般使用 chmod 命令,常见有两种写法:
| chmod 用法 | 说明 |
|---|---|
chmod 数字权限 文件 |
使用数字形式修改权限 |
chmod 字符权限 文件 |
使用字符形式修改权限 |
常见示例如下:
修改 a.txt 的权限为 755:
$ chmod 755 a.txt
给 a.sh 添加执行权限:
$ chmod +x a.sh
给 /etc/rc.d/rc.local 的所有位置增加执行权限:
$ chmod a+x /etc/rc.d/rc.local
给 /etc/rc.d/rc.local 的文件所有者增加执行权限:
$ chmod u+x /etc/rc.d/rc.local
只保留文件所有者的执行权限:
$ chmod u=x /etc/rc.d/rc.local
四、使用 chown 修改所有者和用户组¶
更改文件所有者或用户组一般使用 chown 命令。常见写法如下:
| chown 用法 | 说明 |
|---|---|
chown 文件所有者:用户组 文件 |
同时修改文件所有者和用户组 |
chown 文件所有者 文件 |
只修改文件所有者 |
说明:
- 在部分场景中,
文件所有者.用户组也可以使用,但更推荐使用:,可读性更好。 - 修改为某个用户或用户组之前,目标用户或用户组需要已经存在。
示例:把 a.txt 的所有者和用户组修改为 mysql:
$ chown mysql:mysql a.txt
五、小结¶
在 Linux 权限管理中,建议优先记住以下规律:
- 文件权限更多影响“能不能看、能不能改、能不能执行”。
- 目录权限更多影响“能不能进、能不能列出、能不能创建和删除”。
chmod用来改权限位,chown用来改属主和属组。