赞
踩
R | 可使用ls命令获取其下所有文件列表 |
---|---|
W | 可修改此目录下的文件,即删除和添加文件 |
X | 可以使用cd命令进入此目录 |
R | 可以获取文件的内容,可以用cat等命令查看文件内容 |
---|---|
W | 可以编辑文件内容,可以使用vim等命令对其编辑 |
X | 可将此文件运行为进程 |
进程安全上下文:
进程对文件的访问权限应用模型:
进程的属主与文件的属主是否相同;如果相同,则应用属主权限;
否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;
否则,就只能应用other的权限;总的来看进程对文件的权限受限于文件的本身的权限(ugo)
比如有如下场景:
某大牛在QQ群内直播讲解Linux系统的权限管理,讲解完之后,他在一个公有的Linux系统中创建了一个 /project 目录,里面存放的是课后参考资料。那么 /project 目录对于大牛而言是所有者,拥有读写可执行(rwx)权限,对于QQ群内的所有用户他们都分配的一个所属组里面,也都拥有读写可执行(rwx)权限,而对于 QQ 群外的其他人,那么我们不给他访问/project 目录的任何权限,那么 /project 目录的所有者和所属组权限都是(rwx),其他人权限无。
问题来了,这时候直播有旁听的人参与(不属于QQ群内),听完之后,我们允许他访问/project目录查看参考资料,但是不能进行修改,也就是拥有(r-x)的权限,这时候我们该怎么办呢?我们知道一个文件只能有一个所属组,我们将他分配到QQ群所在的所属组内,那么他拥有了写的权限,这是不被允许的;如果将这个旁听的人视为目录/project 的其他人,并且将/project目录的其他人权限改为(r-x),那么不是旁听的人也能访问我们/project目录了,这显然也是不被允许的。怎么解决呢?
我们给指定的用户指定目录分配指定的权限,也就是 ACL 权限分配。
我们看某个文件(Linux系统中目录也是文件,一切皆是文件)是否支持 ACL 权限,首先要看文件所在的分区是否支持 ACL 权限。
mount -o remount,acl /
重新挂载根分区,并挂载加入 acl 权限。注意这种命令开启方式,如果系统重启了,那么根分区权限会恢复到初始状态。
修改配置文件 /etc/fstab
给目录赋予acl权限
给文件赋予acl权限
递归设置默认权限后,之后在此目录创建的文件都将遵循设置的默认权限。
ACL 权限的最后一道防线就是 mask 。它决定了一个用户或组能够得到的最大的权限。上图中的 #effective 显示了对应行的实际权限。
为什么需要 effective 权限?
ACL_MASK 条目 限制的是 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目的最大权限,所以在应用了 ACL_MASK 条目后,需要通过 effective 权限来获得 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目的真正权限(如上图所示)。当 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目包含不包含在 ACL_MASK 条目中的权限,则该条目后面会有一个 “#” 号和字符串 “effective”,以及该条目的有效访问权限。
但是 mask 只对 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目有影响(红框中的内容),对 owner 和 other 的权限是没有任何影响的。
注意:我们给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限“相与”之后的权限才是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的权限。
setfacl --restore test.acl
SUID 权限仅对二进制程序(binary program)有效;
运行者对于该程序需要具有 x 的可运行权限;
本权限仅在运行该程序的过程中有效 (run-time);
运行者将具有该程序拥有者 (owner) 的权限。
密码文件/etc/shadow只有root用户拥有修改权限,那其他用户是如何修改自身密码的呢,那就是由于命令passwd拥有SUID权限
a、vbird 对於 /usr/bin/passwd 这个程序来说是具有 x 权限的,表示 vbird 能运行 passwd;
b、passwd 的拥有者是 root 这个帐号;
c、vbird 运行 passwd 的过程中,会『暂时』获得 root 的权限;
d、/etc/shadow 就可以被 vbird 所运行的 passwd 所修改。
但如果 vbird 使用 cat 去读取 /etc/shadow 时,他能够读取吗?因为 cat 不具有 SUID 的权限,所以 vbird 运行 『cat /etc/shadow』 时,是不能读取 /etc/shadow 的。
展示位置:属主的执行权限位,如果属主原本有执行权限,显示为s;否则显示为S。
粘滞位,在目录创建了此权限,除了root用户,其他用户只能对自己的文件进行删除、移动操作。仅有自己和 root 才有权力删除。
代表文件/tmp目录。
展示位置:属主的执行权限位,如果属主原本有执行权限,显示为t;否则显示为T。
#以符号进行赋权
#SUID赋权
chmod u+s filename
#SGID赋权
chmod g+s filename/dirname
#SBIT赋权
chmod o+t filename
#以数字进行赋权
SUID SGID SBIT
4 2 1
#举例
chmod 1777 filename 等效与chmod o+t filename
chmod 7777 filename 等效于同时为赋权SUID、SGID、SBIT权限
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。