9.set_uid、set_gid、stick_bit以及软硬链接文件

    咱们今天看一个特殊权限,平时用的不算很多,但也需大家认识。我们都知道,在Windows里普通用户是可以给自己改密码的,在Linux里/usr/bin/passwd也可以支持普通用户改自己的密码,但是我们的Linux很安全,我们存储密码的文件/etc/shadow是个零权限文件,除了root谁也修改不了它,那我们咋么办呢?set_uid,也就是s权限,可以让普通用户,也就是除了所有者之外的其他用户,执行带set_uid的权限的命令时,它会被临时赋予此命令所有者的权限,更改完再还回去,前提是此文件是一个可执行的二进制文件。比如lspasswd,都是二进制文件。我们可以给ls命令加一个set_uid权限,我们先切到1用户去,su - 1 ,ls /root会提示权限不够,我们可以给ls设置set_uid权限,chmod u+s /usr/bin/ls回车  我们在ll查看一下,会发现也变色,前面权限也变成rws了,让他临时拥有了root身份。这就是set_uid的作用。那么如何去掉呢?chmod u-s /usr/bin/ls即可,rws减去x权限等于rwS实际上权力是相同的,因为s本身就有执行含义,普通用户的执行也要看后三位,目录也可以设置这个权限,但是没有意义。

    接下来我们讲另一个特殊权限。set_gid,他作用在组权限上。我们chmod g+s /usr/bin/ls一下,会发现颜色变成了黄色背景,实际上它作用在文件上功能和上一个很相像,只是作用的角色不一样。这个命令是普通用户临时拥有所属组的权限;当作用在目录上的时候,创建子目录或者是文件时,他们的所属组和该目录的所属组保持一致。

    接下来我们讲stick_bit,我们有一个系统文件夹有这个权限,那就是/tmp文件夹,他的其他用户权限位是rwt,这个t就是stick_bit,又叫做防删除位,什么意思呢?我们都知道/tmp文件夹。他的权限是777,说明任何用户都可以对这个文件夹进行读取,写入,执行操作。那我们的用户一创建了它自己的文件。那我们的用户二是不就可以看,可以改?那有了t这个权限看是可以看,但是删除不行。谁的文件谁做主,我的文件你凭什么删除我的?这个权限是靠他的父级目录而决定的。

    接下来我们讲一下软链接,以及硬链接,这两种都属于链接文件。

    软链接它类似windows的快捷方式。/bin就是一个软连接,它真正的位置在/usr/bin,软链接文件的大小和路径的长短有关系,路径越长,软链接文件越大。软链接到底有什么用呢?可以节省存储空间,我们可以使用ln -s创建软链接文件,将源文件写的前面,将想把软链接文件放的地方写在后面。软链接不仅可以链接文件也可以链接目录,而且还可以跨分区。提示:做软链接,尽量使用绝对路径。

    我们继续来讲一下硬链接。我们之前提到了一个概念。就是inode,不知道大家是否还记得。当我们使用ls查看文件的详细信息时,第二列的数字代表了,有几个文件和它共用一个inode号,一般文件通常都是1,也就是说没有另外一个文件和他使用相同的inode,但是目录较为特殊,下面有几个子目录,包括...。他的数字就是几。咱们今天讲的硬链接和目录没有关系。也就是说,硬链接仅支持对文件做,为什么呢?目录和上级目录以及子目录是如何串起来的呢?就是靠...,我们再去做硬链接这一套系统就会乱套。文件做硬链接也有一个前提就是不能跨分区。因为每个分区都有自己独立的inode体系,格式化时就已经创建好了的。
用法:ln 源文件 目标硬链接文件  
硬链接它的特性。简单来讲,我创建了一个文件,这个文件和另一个文件inode号一样,这两个文件相互为硬链接文件。软连接文件,我们把它的源文件删除掉,即不可使用,但是硬链接随便删掉两个其中之一,另外一个都可正常使用。我们可以理解为看到的文件名,只是它的一张皮,真正存文件信息的在inode信息。硬链接,其实就是一个文件多了另外一张皮。当然不能把所有皮都删除,那样就彻底没了~

转载于:https://my.oschina.net/Hamm/blog/1556942

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值