Linux特殊权限:SUID、SGID、SBIT

摘要:
a、 首先,检查passwd命令的绝对路径和passwd命令权限。发现密码的所有者是root,所有者权限中应该是x的列显示为s,表示该命令具有SUID权限。b、 因为locate命令具有SGID权限,所以当堆栈用户运行locate生成过程时,该过程将获得locate命令的用户组权限,这相当于堆栈临时添加到用户组slocate,因此文件mlocate。数据库具有r权限。

1、suid

suid 只对二进制程序有效,执行者对于程序需要有x权限,在程序运行过程中,执行者拥有程序拥有者的权限

例如:普通用户执行passwd命令。

a、首先查看passwd命令的绝对路径及passwd命令权限,发现passwd的owner是root,且owner权限里本应是x的那一列显示为s,说明这个命令具有SUID权限。

Linux特殊权限:SUID、SGID、SBIT第1张

b、/bin/passwd的权限是-rwsr-xr-x,普通用户没有w权限,按理普通用户不能执行passwd命令去修改密码文件/etc/shadow,且/etc/shadow的权限是000,只有root有rw权限。

Linux特殊权限:SUID、SGID、SBIT第2张

ps:root用户对所有文件都是有rw权限的,对所有目录都是有rwx权限

c、因passwd具有suid权限,所以普通用户执行passwd时,系统生成的对应进程,具有/bin/passwd文件拥有者root的权限,所以可以修改密码。如下所示

Linux特殊权限:SUID、SGID、SBIT第3张

2、sgid

sgid 对于二进制程序有效,执行者对于程序需要有x权限,在程序执行过程中,执行者拥有程序用户组的权限(相当于临时加入了程序的用户组) 

例如:普通用户使用locate命令

a、/bin/locate的用户组权限中,应该出现x的位置显示的s,表示这个命令具有SGID权限。而普通用户只有x权限而没有rw权限。

而locate这个命令,实际上会去访问/var/lib/mlocate/mlocate.db这个文件,查看mlocate.db文件对于普通用户没有任何权限。所以理论上普通用户执行locate命令是不行的。

Linux特殊权限:SUID、SGID、SBIT第4张

b、由于locate命令有SGID权限,所以stack用户运行locate生成进程时,这个进程会得到locate命令的用户组权限,相当于stack被临时加入了用户组slocate,于是就对mlocate.db这个文件有了r权限。

sgid 对于目录有效,用户对此目录需要有rx权限可以进入目录。用户进入此目录后,有效用户组会变成该目录的用户组,若用户在此目录有w权限,则用户创建的文件用户组与该目录用户组相同

如下所示

使用cloud用户,在权限为drwxr-srwx的目录/home/stack/test/,生成文件test.txt,文件的用户组为目录的用户组stack,而不是创建者的用户组cloud

Linux特殊权限:SUID、SGID、SBIT第5张

3、SBIT

只针对目录有效,当用户对目录拥有wx权限时,用户在该目录创建的文件或目录,只有自己与root才可以删除。

4、设置和查看SUID/SGID/SBIT权限的方法:

说明:SUID是4、SGID是2、SBIT是1

a、增加特殊权限的方法

Linux特殊权限:SUID、SGID、SBIT第6张

b、查看特殊权限的方法,ls即可

SUID会在所属用户权限本应是x的地方显示s

SGID会在所属用户组权限本应是x的地方显示s

SBIT在其它用户权限本应是x的地方显示t

c、目录取消特殊权限的方法

 chmod 000755 /home/stack/test

 Linux特殊权限:SUID、SGID、SBIT第7张

d、查找系统中的具有特殊权限的文件和目录

find / -perm /7000 

免责声明:文章转载自《Linux特殊权限:SUID、SGID、SBIT》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇白话数字签名(番外篇)——签名EXE文件(下)滚动效果--marquee的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

react 脚手架cra的注意事项,以及脚手架生成目录的分析,以及四个脚本命令

安装阶段 1.新建文件夹test 2.不需要在tset里npm init 3.全局安装脚手架 npm install -g create-react-app 4.create-react-app XXX,这里的名字,不能使react,或者react-dom等等,如果是这些关键词,他会提示错误。 create-react-app demo01 //用脚...

Centos7基本命令

shell基本命令 linux命令行的组成结构 linux系统命令操作语法格式 命令 空格 参数 空格 文件路径或者需要处理的内容 rm -rf /tmp/* ls -la /home 1.一般情况下,【参数】是可选的,一些情况下【文件路径】也是可选的 2.参数》同一个命令,跟上不同的参数执行不同的功能...

linux oracle em的一些用法

一、乱码 1)分别备份ORACLE自带JRE和JDK下的当前字体配置文件(font.properties)cp ($ORACLE_HOME)或者/u01/app/oracle/product/10.2.0/db_1/jre/1.4.2/lib/font.properties ($ORACLE_HOME)或者/u01/app/oracle/product/1...

linux --> Linux 的启动流程

Linux 的启动流程  操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。   因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但一旦进入操作系统,程序员几乎可以定制所有方面。所以,这个部分与程序员的关系更密切,下面的内容针对的是Debian发行版。 第一步、加载内核   操作系统接管硬件以后,首先读入 /boot 目...

linux学习之-vsftp

一、简介   vsftp是一个基于GPL发布的类unix系统上使用的ftp服务器软件,它的全称是very secure FTP ,软件的编写初衷是为了代码的安全,另外高速与高稳定性也是vsftp的两个重要特性。 二、ftp服务的连接方式   ftp并不是只单一的支持一种工作模式,它可以支持主动模式(active ftp)和被动模式(passive ftp)...

Linux中的端口占用问题

本文将会阐述两种解决端口占用的方法。 本文会用到的服务器端的程序如下: 1 #include "unp.h" 2 #include <time.h> 3 4 int main(int argc, char **argv) 5 { 6 intlistenfd, connfd; 7 socklen_t len; 8 struct...