00:00
大家好,欢迎大家继续收看上回谷的云计算课程,我是审查老师。这节课呢,我们继续来学习权限啊,上节课我们学习了S级权限。那这节课呢,我们来看看S这样。那首先我们先要确定一件事,就是这个特殊权限。特殊权限的,它有一些区别,首先suid你还记得吗?它是只能针对。执行程序了。对吧,只有执行程序在执行的过程中,普通用户会把他的身份权限变成这个这个执行文件的所有者,这就是SUID的作用,对吧,那SJD呢?它是可以。针对。执行文件。也就执行程序也可以干嘛,针对目录,那各位目录其实也是文件,Linus下一切性文件,但是目录到底和普通文件不太一样。
01:06
那针对目录呢,是没有风险的,但是针对执行文件,它和UD的作用是一致的,都是有风险啊,那还有一个叫做SBT的。对吧,那它是只能针对。目录了。哎,它是针对目录的,这是这三个权限的这个区别在这儿,那针对目录都没有风险。而针对文件都是有风险,是需要严格禁止手工赋予,而且要监控系统中有没有出现新的。那好。各位,那我们来看看,既然它是针对文件。和针对目录两个作用,那我们一个一个来,那我们先来看针对文件的作用,那么。SJD针对文件的作用和suidd相似。区别在于是。Sui是在这个,如果这个命令,比如说帕。
02:05
有。Suid的这个权限,那么普通用户U在执行这个命令的时候,他的身份会变成root,变成他的所有者,对吧?这就是的事情。那SGD呢,它就是说如果某一个命令啊,常见的是这个命令lock啊,我们待会来说啊,那假设locket命令lock我们讲过了啊。哎哎哎,这玩意儿。LC啊,好,那普通用户在执行拥有SJ文件的这个权限的时候,他的所属组身份会变成这个文件的所属组。也就是说,Suid是变成了所有者。他的所有者身份UC变成root,而SJD文件呢?是用户执行这个文件的时候会变成这个文件的所属I,那假设这个文件是一个叫做s lock的组,那UC在执行它的时候就会变成它的所属组,会变成s lock。
03:07
其实我说这两个类似啊,就是SJD和这个SUIDD2个类似,只不过就是一个是变所有者,一个是变所属组。哎,就这点作用,但是这个东西也是有风险,那知道了大概的作用,我们来看一下,首先如果针对的是文件,它也只能针对执行文件才能设置,同样啊,如果是给非执行文件设置,它的S就会变成大S啊,它是在所属组位置变成S。在这变成SOK,那大S是不能执行的,那也就是说首先强调的是必须针对。执行文件。第二个强调的事情是普通用户,也就是说执行这个命令的人要有权限能执行,也就是说U31对这个命令,对这个命令要有命令,要有权限,能执行才行。然后呢,命令在执行的过程中,主身份升级为该程这个程序文件的所属组,升级成这个程序的所属,哎,所属组啊,这。
04:07
升级成它的寿命。同样,SJD只在程序执行过程中有效,一旦结束,这个身份就会消失。OK,这是SJ针对这个执行文件的作用。那为什么要有这样一个东西啊?那我们来看一件事,什么事还记得locket吧,我们讲过这个命令。这个命令是最典型的老的命令是搜索文件名的命令,对吧?如果我们比如说我想搜索一下叫阿帕奇的配置文件,对吧?它就能找到这个配置文件的名称。OK,对吧,那这是lock作用,但是我们前面讲了,我说lock对比范的它的优势在哪。哎,Find是不是在搜索整个硬盘,他搜的是整盘,对吧?而locket呢,是不是会有一个数据库存在,他搜的是不是库,而我们说了搜库是不是耗费的资源小,再一个搜起来更快,对吧?所以lo搜的是数据库。
05:05
那他的库在哪呢?我们当时就要求你们记了,对吧,瓦下列不下了这个,那我们看看这个权限。哇,下的力不像m lock下的m lock.db那我们可以看见一件事什么?普通用户UC对这个文件来讲是所这个其他人权限看所有者是root,所属组是S老对吧,那U41是没有权限啊空的没有权限,就是其他的所有普通用户都是没有权限访问这个目录的。那换句话说,我们说market既然收了是。这个这个这个数据库,那普通用户对这个数据库就没有权限,连读权限都没有,那普通用户是不是就不能执行了,那我们试一下啊来。我拿普通用户来登录,我拿普通用户。我拿普通用户登录,哎,稍微等一下有点有点慢。
06:02
这应该是我的这个中路环境的事。好了,那普通用户。到了没错吧,那我们搜一下。哎,好卡了一下老给它,然后呢,httpd.com。来普通用户是不是也是能搜索的。那就不太对了呀,你看普通用户是没有权限的呀,而我们说locket就是一个搜索的,就是这个这个数据库啊,那普通用户为什么能够搜索呢?原因原因就在lock命令啊,Lock命令的特权音,那我们看一下lock命令。有病下的locket。好了,那我们可以看到一件事啊。这个就没有s suidd那个颜色那么一样的,Suidd是深红色的,记得吧,那我们说Linux这个跟蘑菇是一样的,颜色越鲜艳,蘑菇啊,越鲜艳代表这个家伙毒性越大越危险,这个它其实威胁程度没有那个Su高,但同样的也是很麻烦的事,所以不允许手工复予,那原因是啥,看他。
07:10
Lo命令由SJD权限,所以用户普通用户一在执行这个命令的时候,他的身份会变成谁?是不是这个命令的所属组?而这个所属组对这个数据库是有毒了,那也就说UC在执行这条命令的时候,他的身份变成了这个家伙,那这个家伙对他是有读权限的,那就可以访问文件,从而可以读取里面的内容,看到了,哎,对了,那我们说SJD没有这个s suidd危胁性这么高,但同样是有风险的,所以呢,我们不推荐或者是坚决禁止用户手工建立SJD文件,S suidd更不要提了。那所以我们之前在。讲这个这个脚本的时候,是不是同样也搜了拥有SJD文件对吧?那把它也包含在内了,这是针对文件的时候,它其实是有风险的,OK,那当然如果你要想知道一下这个系统下有有多少这个SJD文件,那我们就可以看到这是干扰箱搜索全部分都有了,然后这些就是SPID,包括user色下的lock。
08:23
对吧,那系统就应该有这些,再多就不对了,就有问题了,OK,这些是SJ针对文件的作用,那再多说一句,这个东西是有威胁性的,是不允许手工添加的,所以写的脚本当中也是需要有这个东西的,好,各位。这节课呢,我们讲了一下SJD针对文件的作用,它的作用就是什么。它这个执行这个lock命令的时候,当U1执行lock命令的时候,因为lock拥有SJD这个情况,而且US1U1对locket是可以执行的,那我们可以看到lock命令普通用户是能执行的,对吧?那这个时候在执行这个命令的时候,S1的组身份会升级为这个组。
09:07
而这个组对这个数据库是有读权限的。所以呢,就可以结束了,就可以执行lock命令,然后命令结束,U的组身份又返回UC组,不再在lock组,不再在这个s lock组,那也就是说只在命令执行过程中,这个身份会改变。好,这就是SJD针对文件的作用,好,我们这节课就到这里,下节课再见。
我来说两句