加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

linux文件的特殊权限是什么?有何用处?

发布时间:2021-11-10 04:53:26 所属栏目:系统 来源:互联网
导读:之前我们有简单的了解过linux文件权限,一些朋友可能知道linux文件权限有用户、组、文件权限、默认权限、隐藏属性、ACL、特殊权限。这篇文章就主要给大家介绍linux文件的特殊权限,那么linux文件的特殊权限是什么?有什么用? 我们来看一个文件 ls /usr/bin
 之前我们有简单的了解过linux文件权限,一些朋友可能知道linux文件权限有用户、组、文件权限、默认权限、隐藏属性、ACL、特殊权限。这篇文章就主要给大家介绍linux文件的特殊权限,那么linux文件的特殊权限是什么?有什么用?
 
我们来看一个文件
 
ls /usr/bin/passwd  -l
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
发现没有,怎么出现了一个奇怪的东西s。这个s出现在了文件所有者的x上面,此时就被称为Set UID,简称为SUID。如果出现在所属组的x上面,则表示SGID。如果是在其他人的x上面,则表示Sticky。
 
下面通过一个表格来解释下各特殊权限的用处:
 
 
文件 目录
SUID 此用户将继承此程序的所有者权限 无意义
SGID 此用户将继承此程序的所属组权限 此目录下所有用户新建文件都自动继承此目录的用户组
Sticky 无意义 目录中每个用户仅能删除、移动或改名自己的文件或目录
下面,我们通过/usr/bin/passwd这个文件来讲解下SUID的用途。
 
我们知道,linux下每个用户都可以修改自己的密码,而root则可以修改所有用户的密码。那你有没有想过,为什么普通用户也可以修改自己的密码?密码不是保存在/etc/shadow文件中的么?这个文件对于普通用户没有写入权限阿。
 
# ls -l /etc/shadow
---------- 1 root root 969 Sep 10 09:37 /etc/shadow
这个就是SUID的用途了,普通用户通过passwd命令来修改自己的密码。执行期间,用户会暂时拥有该文件所有者即root的权限,所以普通用户可以修改自己的密码。如果该文件特殊权限为SGID,那么执行期间就会拥有该文件所属组的权限。
 
SGID除了可以作用于文件外,还可以作用于目录,注意,对于文件和目录,它的作用完全不同。我们通过一个场景来讲解SGID对于目录的作用。
 
下面,我们模拟一个场景:公司现在需要开发一个项目,原型图已经给出,需要交给设计部门design进行设计。现在创建一个目录project1_ps。design部门所有人员对这个目录下的文件均具有rwx权限。
 
我们知道,在linux中,当新建一个文件或目录时,所有者是自己,所属组为自己所属的组。这样一来,当设计师a新建了一个文件时,其他用户对这个文件是其他人的权限,不符合我们的要求。所以,我们需要SGID来完成需求。
 
# groupadd design  #创建design用户组
# useradd -G design --no-create-home dgn1 # 创建用户
# useradd -G design --no-create-home dgn2 # 创建用户
# id dgn1
uid=1003(dgn1) gid=1004(dgn1) 组=1004(dgn1),1003(design)
# id dgn2
uid=1004(dgn2) gid=1005(dgn2) 组=1005(dgn2),1003(design)
 
# mkdir design # 工作目录
# chgrp design design/
# chmod 2770 design/  <== 如果是SUID则是4770
# ll -d design/
drwxrws--- 2 root design 4096 5月   5 19:06 design/
 
# su dgn1
$ umask
0022
$ umask 0002
$ touch design/1.ps
$ ls design -l
总用量 0
-rw-rw-r-- 1 dgn1 design 0 5月   5 19:31 1.ps  <=== 新创建的文件默认组为design了
最后,我们来看看Sticky。这个非常好理解,目录中每个用户仅能删除、移动或改名自己的文件或目录。其实/tmp目录就是使用该特殊权限。
 
# ll /tmp -d
drwxrwxrwt. 9 root root 868352 Sep 13 08:24 /tmp

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读