Linux 文件特殊权限

来源:互联网 发布:mac自带远程桌面连接 编辑:程序博客网 时间:2024/06/06 03:39

Linux 文件特殊权限

一 文件普通权限介绍

在linux 中,文件的权限主要针对三类对象进行定义:
owner: 属主, u
group: 属组, g
other: 其他, o
每个文件针对每类访问者都定义了三种权限:
r: 可使用文件查看类工具获取其内容,用数字4表示
w: 可在此目录中创建文件,也可删除此目录中的文件,用数字2表示
x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录,用数字1表示。
X:只给目录x权限,不给文件x权限
如下图所示:
这里写图片描述
如果想修改文件的权限可以通过命令
chmod xyz filename 来实现,x 代表文件所有者权限,y代表文件所有组权限,y 代表其他用户权限,filename 表示文件或者文件夹名字。
例如: chmod 755 file1 表示修改文件file1的用户所有者权限为读写执行,所属组权限为读加执行,其他人权限为读加执行。关于修改文件普通权限这里不做详细描述。

二 文件特殊权限
文件的特殊权限有三种: suid、sgid、sticky。SUID 和SGID 是用来累加提升权限的,就是说如果原来的用户可以访问而切换到的用户或者组不能访问 这时候是照样可以访问的。下面将分别介绍这三种权限。
2.1 SUID
1. SUID只对二进制可执行程序有效,不能为普通文件,这点非常重要!
2. 发起者对程序文件必须拥有执行权限
3. 启动为进程之后,其进程的属主为原程序文件的属主,比如 /bin/x的属主为tom ,用户 y 启动了 /bin/x 的进程,这时候y 就相当于切换为tom了。
4. SUID设置在目录上无意义
配置命令 :chmod u+s filename 增加suid
chmod u-s filename 取消 suid
举例:默认情况下普通用户wang 是不能查看 /etc/shadow 文件的
[wang@Centos6.9~]$cat /etc/shadow
cat: /etc/shadow: Permission denied
现在要通过执行二进制文件 /bin/cat 来实现该功能。
1. 在root账号下增加/etc/cat 的 ssuid 权限。
[root@Centos6.9~]#chmod +s /bin/cat
2. 在wang 用户上能通过.bin/cat 程序 可以顺利查看/etc/shadow 了。
这里写图片描述

2.2 SGID
SGID 可以作用在二进制文件和作用在文件夹下。
1. 当作用在二进制文件下作用和SUID相似,只不过SUID是把发起者临时变为文件的所有者,而SGID 是把进程的发起者变成源程序文件的属组。
比如 /bin/cat 文件 所属组为rootgroup ,用户tom 发起/bin/cat 之后会切换成 rootgroup 中,享有的权限为rootgroup 的权限。
 权限设定:
增加SGID: chmod g+s filename
去除SGID: chmod g-s filename。
关于sgid 作用于二进制文件的情况这里不在举例。
2. 默认情况下,用户创建文件时,其属组为此用户所属的主组。当SGID 作用在目录下时,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组, 通常用于创建一个协作目录。
 权限设定:
增加SGID :chmod g+s dirname
去除SGID :chmod g-s dirname.
举例:wang 用户新建一个叫 xiezuo 的文件夹,并执行
[wang@Centos6.9~]$chmod g+s,o+w xiezuo/ (g+s 是增加SGID, o+w 是增加其他用户的写权限,否则其他用户没法在该文件夹下床架文件啦!),之后看看到 文件夹的的属组变成rws了,如图:
这里写图片描述

此时另外一个用户yys ,属组也是yys 进入到 用户wang 的 xiezuo 目录下创建文件 xiezuo-yys 会发现文件的属组变成 wang了!(默认情况下用户创建的时候会属于用户所属组的!)
这里写图片描述

2.3 Sticky
默认情况下用户可以删除具有写权限的目录中的任何文件,无论该文件的权限或拥有权。如果在目录设置Sticky 位,只有文件的所有者或root**可以删除该文件。sticky 位 是作用在文件夹的,设置在文件上无意义。
权限设定:
命令:chmod o+t dirname 增加文件夹的sticky权限
chmod o-t dirname 除去文件夹的sticky权限
例如: [wang@Centos6.9~]$chmod o+t xiezuo/ (增加文件夹xiezuo的 sticky 权限)
普通用户yys 进入 xiezuo 目录下,发现即使里面的文件 xiezuo-wang
是 可读写执行 也照样不能删除,但是是可以读可写入内容的!

这里写图片描述

这里写图片描述