一、文件权限与目录权限有什么不同

同样是 rwx,作用在文件和目录上的含义并不完全相同。

权限 文件 目录
r 是否可以读取文件内容 是否可以查看目录内容,通常需要配合 x 权限
w 是否可以修改文件内容,通常还需要配合 r 权限 是否可以在目录中创建、删除、重命名文件,通常需要配合 rx
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 用来改属主和属组。