Linux文件特殊权限
2021/10/25 7:09:34
本文主要是介绍Linux文件特殊权限,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文件的权限除了rwx即读、写、执行的权限还有其他特殊的权限
SUID
即Set UID,当s的标志出现在文件拥有者的x位置上时,就拥有SUID的权限,具体来说功能如下
- SUID仅对二进制程序有效
- 执行者对该程序需要有x的权限
- 本权限仅在该程序执行时有效
- 执行者会拥有程序拥有者的权限
我们可以由如下的例子,对于linux系统/usr/bin/passwd这个文件记录所有账号的密码,只有root可以读写入这个文件
但对于我的普通用户astraym也可以通过passwd指令来修改自己的密码
但是如果用cat指令去读取密码就不能读取
这是因为cat指令没有被设置SUID的权限
用一张示意图来说明SUID执行的过程
如果我们想要让astraym能够读取/etc/passwd文件的内容,只需要让root用户用chmod指令给与其SUID的权限即可
SGID
即Set GID,当s的标志出现在用户组的x位置上时,就拥有SUID的权限。与SUID不同的是,SGID可以针对目录或者文件来设置,对文件来说SGID有如下的功能,这个时候SGID的用法和SUDI非常相似。
- SGID对二进制程序有用
- 程序执行者对于该程序来说,需具有x的权限
- 执行者在执行的过程中会获得用户组的权限
除了二进制程序之外,SGID也能作用于目录,当一个目录被设置了SGID的权限之后
- 用户若对于这个目录有r与x的权限时,该用户能进入此目录
- 用户在此目录下的有效用户组将会变成该目录的用户组
- 若用户在此目录下具有w的权限,则用户所建立的新文件,该新文件的用户组与此目录的用户组相同
SBIT
即Sticky Bit目前只针对目录有效,对于文件没有效果,SBIT的作用是:
- 当用户对于此目录具有w、x权限,即具有写入的作用
- 当用户在该目录下建立文件或目录时,仅有自己与root才有权利删除该文件
简单来说,当SBIT位标记的时候,除了所有者和root能够删除该目录的文件
举个例子,linux的/tmp本身的权限是[drwxrwxrwt],权限信息的最后一位t表面该目录被设置了SBIT权限。我们在这里新建一个名为test的文件并将权限设置为777,然后尝试删除该文件。
可以看到我们没法删除/tmp下的test文件
设置SUID/SGID/SBIT权限
以数字类型设置权限
SUID/SGID/SBID权限对应的数字分别为
SUID->4 SGID->2 SBIT->1 #设置一个权限为'-rwxr-xr-x'的文件test的SUID权限,在原先的755前加上4即可,其他同理 chmod 4755 test;
一般情况下,s或者t会代替x这个权限。但是当这个文件或者目录本身没有x权限,添加SUID、SGID、SBIT之后会显示为大写的S或T:
这种情况是需要非常注意的,当文件的拥有者都无法执行该文件时,拥有SUID的用户当然也没法执行。
以符号类型设置权限
chmod u+s test #为test文件加上SUID权限 chmod g+s test #为test目录加上SGID权限 chmod o+t test #为test目录加上SBIT权限 chmod g+s,o+t test #为test目录加上SGID和SBIT权限
这篇关于Linux文件特殊权限的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南