Linux 文件权限管理命令

时间:2022-04-17 15:17:52

在讲文件权限管理命令之前,我们先讲一下文件的权限。一个用户对一个文件或目录可以有 r (读)、w (写)、x (执行) 三种权限。这三种权限表示可以对文件和目录进行的操作如下表:

Linux 文件权限管理命令


下面介绍四个权限管理命令:chmod、chown、chgrp、umask 1. 权限管理命令 chmod 英文原意:change the permissions mode of a file 所在路径:/bin/chmod 功能:改变文件或目录的权限 具体有两种方法: (1) chmod  {ugoa}{+-=}{rwx}  文件或目录名 u:所有者, g:所属组, o:其他用户, a:所有用户 例如:赋予文件 aaa 所属组写权限 Linux 文件权限管理命令


(2) chmod  <八进制权限字串>  文件或目录 八进制权限字串由3位八进制数字(0~7)组成,3位数字依次对应于文件所有者、所属组、其他用户对该文件的操作权限。 首先,每种权限对应一个八进制数值: - — 0,x — 1,w — 2,r — 4 八进制权限字串中的每一位八进制数值就是对应个权限之和: --- —— 0,--x —— 1,-w- —— 2,-wx —— 3,r-- —— 4,r-x —— 5,rw- —— 6,rwx —— 7 例如:对上面的例子用八进制字串来设置 rw-rw-r-- 对应的八进制权限字串为 664: Linux 文件权限管理命令

此外,chmod 有一个 -R 选项,表示递归遍历子目录并同时修改相应目录下所有文件和子目录。但此选项是很危险的,比如 chmod -R <权限字串> / 将会改变整个文件系统的权限,可能会导致系统再也无法启动。所以不是只有删除才是最危险的。
2. 权限管理命令 chown 英文原意:change file ownership 所在路径:/bin/chown 功能:改变文件或目录的所有者 语法: chown  用户(新的所有者)  文件或目录 例如:将文件 aaa 的所有者更改为 tmp 用户 Linux 文件权限管理命令


3. 权限管理命令 chgrp 英文原意:change file group ownership所在路径:/bin/chgrp功能:改变文件或目录的所属组语法: chown  用户组(新的所属组)  文件或目录例如:将文件 aaa 的所属组更改为 tmp 组 Linux 文件权限管理命令


4. 权限管理命令 umask 英文原意:the user file-creation mask所在路径:Shell 内置命令功能:显示、设置文件的默认权限语法:umask -S   以rwx形式显示新建文件缺省权限 Linux 文件权限管理命令

通过 umask -S 显示新建文件的缺省权限为 rwxr-xr-x。新建一个目录 /xiaobao,其权限确实为 rwxr-xr-x。但是新建一个文件mm,它的权限却是 rw-r--r--,所有权限上都少了一个 x,这是因为在 Linux 中权限管理有一个最基本的定义:缺省创建的文件是不能具有可执行权限的。这也是基于安全性考虑的,因为常见的病毒、木马、攻击程序都是可执行的。
也可以通过 umask 更改文件的缺省权限: umask <权限字串>(这里的权限字串是缺省权限与 rwx rwx rwx 逻辑与运算的结果)。一般不推荐更改。 Linux 文件权限管理命令
对于这个 0022,第一个 0 是特殊权限,后面的 022 是权限子串。022 即 --- -w- -w-,它与 rwx rwx rwx 逻辑与运算如下:
Linux 文件权限管理命令

如果想要更改默认权限为700(目录权限为 700,文件权限为 600),则通过逻辑与运算反推:
Linux 文件权限管理命令
所以此时通过umask 077 命令就可以更改默认权限为 700。当然是不建议更改的。