我们首先需要明白,权限 = 用户角色 + 文件的权限属性
一、拥有者、所属组和other(用户角色)
以文件file1为例
第一个箭头所指处即是文件的拥有者,拥有者为zz
第二个箭头所指处即使文件的所属组,所属组为zz
除去拥有者和所属组外,其他用户即为other
二、文件的权限属性
r:文件的读权限
w:文件的写权限
x:文件的可执行权限
以文件file1为例
划线部分一共有10格,除去第一格后,三三为一组
第一格为 - 或 d :- 表示该文件是普通文件;d 表示该文件是目录文件
第一组为 rw- :表示对于拥有者zz,对该文件有读、写权限,没有可执行权限
第二组为 rw- :表示对于所属组zz,对该文件有读、写权限,没有可执行权限
第三组为 r-- :表示对于other,对该文件有读权限,没有写权限和可执行权限
三、修改权限的方法
1.修改文件权限属性
chmod u/g/o/a +/- “某权限” “某文件”
chmod u+x file1 :给文件file1的拥有者加上可执行权限
chmod g-w file1 :给文件file1的所属组删去写权限
chmod o-r file1 :给文件file1的other删去读权限
chmod g+wx,o+rwx file1 :也可以同时修改多个角色的多个权限
chmod a-rwx file1 :删去所有人对文件file1的读、写和可执行权限
2.修改文件的拥有者和所属组
修改文件的拥有者和所属组,即修改文件的角色。(为什么不用更改other呢?因为更改完拥有者和所属组后,other也就自动变了)
修改文件的拥有者和所属组相当于将文件“送给”其他人,那么对于其他人就可以选择拒绝或接受。因此通常我们修改拥有者和所属组时需要使用sudo提权,将文件强制送给其他人。
对于root用户修改拥有者:chown “修改的拥有者” “文件名”
对于root用户修改所属组:chgrp “修改的所属组” “文件名”
对于普通用户修改拥有者:sudo chown “修改的拥有者” “文件名”
对于普通用户修改所属组:sudo chgrp “修改的所属组” “文件名”
修改前拥有者为root、所属组为root
修改后拥有者为gjj、所属组为gjj
也可以使用一条指令同时修改拥有者和所属组
对于root用户:chown “修改的拥有者”:“修改的所属组” “文件名”
对于普通用户:sudo chown “修改的拥有者”:“修改的所属组” “文件名”
修改前拥有者为gjj、所属组为gjj
修改前拥有者为zz、所属组为zz
3.八进制法修改文件权限
观察文件file1,其权限为 rw- r-- r--,有权限即是rwx,无权限即是-,将rwx当为1,-当为0,则文件file1的权限可表示为 110 100 100 转换为八进制即为644,644即是文件权限的八进制表示。
要修改file1文件的权限为 110 110 000,转换为八进制即为660,可以如下修改:
chmod “权限八进制表示” “文件名”