您的位置:首页 > 运维架构 > Linux

Linux 文件权限管理命令

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



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



(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:



此外,chmod 有一个 -R 选项,表示递归遍历子目录并同时修改相应目录下所有文件和子目录。但此选项是很危险的,比如 chmod -R <权限字串> / 将会改变整个文件系统的权限,可能会导致系统再也无法启动。所以不是只有删除才是最危险的。

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



3. 权限管理命令 chgrp

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



4. 权限管理命令 umask

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



通过 umask -S 显示新建文件的缺省权限为 rwxr-xr-x。新建一个目录 /xiaobao,其权限确实为 rwxr-xr-x。但是新建一个文件mm,它的权限却是 rw-r--r--,所有权限上都少了一个 x,这是因为在 Linux 中权限管理有一个最基本的定义:缺省创建的文件是不能具有可执行权限的。这也是基于安全性考虑的,因为常见的病毒、木马、攻击程序都是可执行的。

也可以通过 umask 更改文件的缺省权限: umask <权限字串>(这里的权限字串是缺省权限与 rwx rwx rwx 逻辑与运算的结果)。一般不推荐更改。



对于这个 0022,第一个 0 是特殊权限,后面的 022 是权限子串。022
即 --- -w- -w-,它与 rwx rwx rwx 逻辑与运算如下:



如果想要更改默认权限为700(目录权限为 700,文件权限为 600),则通过逻辑与运算反推:



所以此时通过umask
077 命令就可以更改默认权限为 700。当然是不建议更改的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息