我爱编程

1-7RHEL7文件的权限管理

2018-05-28  本文已影响0人  秋的懵懂

时间:2018-05-26 姓名:魏文应


一、权限的作用

通过设置权限,可以达到以下三种控制效果:

权限参数说明:

通过 ls -l,列出当前文件夹文件相关参数,比如:

drwxr-xr-x. 2 root root  4096 May 23 16:54 Desktop
d rwx r-x r-x 2 root root 4096 May 23 16:54 Desktop
文件类型 拥有者的权限 所属组的权限 其他人的权限 硬链接数目 拥有者 属组 文件大小 最后修改时间 对象

文件类型:

参数 说明
p 表示命名管道文件
d 表示目录文件
l 表示符号连接文件
- 表示普通文件
s 表示socket文件
c 表示字符设备文件
b 表示块设备文件

权限类型:

参数 对于文件来说 对于目录来说 没有权限
r 读(看到目录里面有什么):ls - 表示没有该权限
w 创建、删除、移动文件:touch mkdir rm mv cp - 表示没有该权限
x 执行 进入 : cd cat - 表示没有该权限

二、权限查看与修改

修改文件权限

用英文字母方法修改(中间的+、-表示添加还是删除该用户的对应权限):

参数 对应的意思 权限参数 举例子
u 拥有者(user) w、r、x chmod u+w 表示给拥有者添加写权限
g 组(group) w、r、x chmod g-w 表示给组内所有用户去掉写权限
o 其它用户(other) w、r、x chmod o-w 表示给其它用户去掉写权限
a 所有用户(all) w、r、x chmod a-w 表示给所有用户去掉写权限

权限参数对应的数值:

权限参数 功能 对应二进制 对应十进制
r 100 4
w 010 2
x 执行 001 1

权限参数组合的值:

要修改的权限 计算方法 十进制的值
rwx 4 + 2 + 1 7
rw- 4 + 2 + 0 6
r-x 4 + 0 + 1 5
r-- 4 + 0 + 0 4
-wx 0 + 2 + 1 3
-w- 0 + 2 + 0 2
--x 0 + 0 + 1 1
--- 0 + 0 + 0 0

使用数值方法修改权限:

比如,我们要把文件 a.txt 的权限修改为 rw-rw-r--,则使用命令为 chmod 664 a.txt

修改文件所有者:

修改创建文件时的默认权限

创建文件时,系统都会给文件一个默认权限:

通过设置umask值,可以修改默认权限。

umask计算方法:

默认权限设置默认位置:一般在 /etc/profile$ [HOME]/.bash_profile$[HOME]/.profile 中设置umask值。

文件的特殊权限

设置SUID权限

什么是SUID权限:

为什么passwd需要这个SUID权限呢? 我们先看 /etc/shadow 这个文件:

shadow密码文件

你会发现 /etc/shadow 这个文件没有任何权限,所有用户在使用 sudo passwd 修改自己密码时,要将密码写到这里面来。然而普通用户对这个文件是不能读写的啊!!!怎么办呢?这时我们想,能不能通过一个程序,让这个程序帮我们写进去呢?这个程序就是执行权限为 s 的文件程序。根本原因是:即使文件显示没有任何权限,但拥有者是可以有文件的所有权限的。 这个过程就像这样:

注意:这个权限很大,一般不要使用。具有很高的安全风险。

注意:如果文件一开始就没有可执行权限(x权限),直接设置 s权限 是无效的,会显示的是大写的 S。

设置SGID

对文件夹设置了 s 权限以后, 创建文件时主组不一样:

比如上面的:root用户执行 chmod g+s tencent,那么,在tencent这个文件夹中创建文件,默认主组由原来的 wwy 变成了 root

设置粘滞位

创建一个文件夹 mkdir 777 tencent/ (最好在 /tmp目录 下创建这个文件,因为所有用户都能进入这个文件夹)。在 777 这个权限下,所有用户都可以对 tencet文件夹内 的文件进行 删除操作。如果一个用户参加了一个文件,又不想其它用户删除这个文件,那么这个文件夹就要 粘滞位

设置有 粘滞位 的文件夹,权限后面原来的 执行参数x 变成有一个 参数t

三、ACL 访问控制列表

ACL(Access Control List) 访问控制列表:

下面我们使用ACL工具包管理文件权限:

使用setfacl设置权限:

上一篇 下一篇

猜你喜欢

热点阅读