专栏首页无心的梦呓Linux特殊权限详解

Linux特殊权限详解

实际上Linux有12位权限,我们前面说的Linux权限都只说了常用的9位权限,剩下的特殊权限也经常被用来进行Linux提权,如果没有了解了的,可以移步之前的文章《Linux权限详解》、《Linux安全权限

目录

0x01 介绍

0x02 特殊权限详解

0x01 介绍

Linux一共有12位权限,除过之前说的rwxrwxrwx的9位权限,还有3位的特殊权限

suid位:setuid,用S表示,如果用户位对应的x位上有x时使用s表示,对应数字为4,与用户相关的权限

sgid位:setgid,用S表示,如果用户组对应的x位上有x时使用s表示,对应数字为2,与用户组相关的权限

sticky位,粘滞位,用T表示,如果其他用户组对应的x位上有x时使用t表示,对应数字为1,与其他用户组相关的权限

粘滞位有一个特殊的目录就是tmp目录

0x02 特殊权限详解

suid

suid是让普通用户可以以root或其他的用户角色运行只有root或其他账号才能运行的命令或程序,或程序命令对应本来没有权限操作的文件等,suid为某一个命令设置特殊权限,使用者为所有人。

这里用一个例子来说明这个问题

先添加一个新的用户,并为其设置密码

我们再明确一下更改密码的话shadow文件是否会更改

说明shadow文件确实被更改了,那shadow的权限又是怎样的

会发现只有root用户拥有写权限,那是不是意味着其他用户不能更改密码

事实并不是这样的,其他用户也是可以修改密码的,这就是因为这个文件的特殊权限的原因,可以发现它是拥有suid权限的,所以任何用户执行这个命令都会拥有和这个命令所对应的权限,用这个例子来说就是任何用户执行这个命令就拥有了root的权限

我们再用一个删除操作来看一下

我们来看一下默认情况下的删除操作

如果我们给删除命令增加suid权限又会发生什么情况

可以发现添加了suid权限,使用低权限用户就可以删除root用户才能操作的文件

到这里基本就可以理解清楚suid的用法了,但是还有几点需要注意一下的

suid仅对二进制命令程序有效,不能作用在shell等脚本文件上,而且suid权限仅在命令执行过程中有效

我们可以搜索一下哪些文件时有s权限的

find /bin -type f -perm 4755 -exec ls -l {} \;

等后面在使用suid进行提权的时候我们还会再次提到这个东西

如果对这个find命令不太懂的可以移步《Linux文件查找命令详解

sgid

sgid是与用户组相关的,sgid与suid不同的是,sgid既可以针对文件也可以针对目录

对于文件来说,sgid仅对二进制命令程序有效,执行命令的用户可以获得该程序执行期间所属组的权限,suid是拥有这个用户的权限

对于目录来说(继承目录所属的组),Linux默认情况下用户创建文件,默认用户和组都是它自己,sgid可以让用户在此目录下创建的文件和目录,具有与此目录相同的用户组设置

这里就不再举例子来说明了,跟suid所验证的方式是一样的

粘滞位

粘滞位就是你可以往里面放内容但是却不能对这个目录进行操作

本文分享自微信公众号 - 无心的梦呓(wuxinmengyi),作者:Vesel无心

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux安全权限

    之前说了Linux文件的权限区分,这次来说一说Linux的安全权限,不知道权限划分的可以移步《Linux权限详解》

    无心的梦呓
  • 时间到底是什么

    与时间有关的东西永远都是那么神秘,哲学家思考时间的本质是什么;物理学家探究时间是否是单向线性的,时间旅行是不是可行的,时间到底是一个点,还是一个维度;神经学家不...

    无心的梦呓
  • 基于数组越界的缓冲区溢出

    上一篇文章说了函数调用时候的堆栈变化,这里就基于这个内容来验证一下基于数组越界的缓冲区溢出。

    无心的梦呓
  • 删库背后,是权限管控的缺失

    “删库”事件过去了,微盟数据已经全面找回,并公布了相应的赔付方案。这事儿就算渐渐淡出了人们的视野,观众吃瓜一时爽,企业也纷纷顺着热点蹭上来,踩着别人的错误往上爬...

    FB客服
  • 数据权限通用设计方案

    问题引出 最近,许多学员反馈项目中需要处理数据权限,但是不知道怎么处理比较合适。这篇文章将针对这个问题,给出一种比较通用且容易扩展的数据权限设计方案。 现状 目...

    企鹅号小编
  • 777 意味着什么?

    本文最先发布在: https://www.itcoder.tech/posts/what-does-chmod-777-mean/

    雪梦科技
  • Greenplum数据库权限管理

    每个数据库的逻辑结构对象都有一个所有者,所有者默认拥有所有的权限,不需要重新赋予。

    小徐
  • Linux文件特殊权限SUID、SGID与SBIT

    Linux使用9个权限位来标识文件权限,三大权限分别是r、w、x(读、写、执行)。除此之外,还有特殊权限SUID,SGID,SBIT。

    Dabelv
  • mysql权限与安全

    程序员同行者
  • 快速学习-Linux权限管理

    由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。...

    cwl_java

扫码关注云+社区

领取腾讯云代金券