linux文件的特殊权限是什么?有何用处?
Admin 2021-10-16 群英技术资讯 1915 次浏览
之前我们有简单的了解过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
以上就是linux文件的特殊权限的相关介绍啦,linux文件的特殊权限其实不难理解,希望本文对大家学习linux文件的特殊权限有帮助,如果还想要了解更多,大家可以继续浏览群英网络其他相关的文章。
文本转载自PHP中文网
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章给大家分享的是Linux磁盘分区的相关内容。磁盘分区,顾名思义就是对电脑中的硬盘进行空间划分,这样不仅有利于备份,还可以对文件进行,分门别类。Linux系统怎样进行磁盘分区呢?
查看方法:1、利用top命令,该命令可以显示进程在哪个CPU上运行,语法为“top -p 进程号”;2、利用taskset命令,该命令用于查看进程或线程运行在哪个CPU上,语法为“taskset -p 进程号”。
linux下安装php-fpm的方法:1、下载压缩包并进行解压;2、进入解压目录,执行【./configure】命令配置安装环境;3、编辑配置文件,开启相应功能;4、执行【/usr/local/bin/php-fpm】命令运行。
天给大家分享linux出现网络故障如何排查的方法,掌握排查linux出现网络故障的技巧还是很有必要的,下文介绍的方法也比较容易理解,感兴趣的朋友就继续往下看吧。
今天带大家来了解下Linux更改文件目录访问权所使用的命令内容,想要了解详情的小伙伴一定要看一看这篇文章,希望小编整理的资料能帮助到你解决问题。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008