特殊权限set_uid
特殊权限set_gid
特殊权限stick_bit
软链接文件
硬连接文件


特殊权限set_uid

a21566d1706191c7ed2afa52f4002cb6.jpg

s: set_uid

改密码的文件:

e0de11f1dda1c0740695a0c609ae9f84.jpg

当普通用户set_uid执行这个命令时,就会临时拥有root用户的身份

对一个文件执行set_uid命令,前提是这个文件是一个二进制的文件,而且是一个可执行的文件。


eg:

给ls 加一个set_uid 的权限


首先切换到一个普通用户下面去:

9112d9c44080cafa744d379db7b99821.jpg


加上s权限

3fc842817234afa2c12a06ce4170a7da.jpg


再来执行,看能不能查看:

67b1b1f7d71dcf11f9e91f7600cf74c0.jpg


看一下权限变了没有:

9c82f63d503ce0fa5faf24874b2ae92b.jpg

权限没变。(只是临时拥有root用户身份)


如何去掉:chmod u-s /usr/bin/ls


另一种方式:

e84cd733e4bafc6900c5ce6f8edd238a.jpg


变成了大写S,是因为没有x 权限。

加上x 权限

bae05ddf57296b2be05cc4b7cf3e3351.jpg

就算是大S,也是能执行的。


set_gid  作用在组权限位上


先把ls 还原成原始的权限:

ce74ccc36d18692e6dab7862fcc1f236.jpg

普通用户临时拥有所属组的身份:

f7954d1beddf5e899266914e4732f96c.jpg

试验一下普通用户能不能看root用户下子文件和子目录

ff8681707cdf70cceaa0fac16fd38dc9.jpg

能看,原因:

是有权限的

ed3e2683ad3e94a4ae511c51cb79531a.jpg


也可以作用在目录上:

8a03efd1fc5df271cc904f543b9bc2db.jpg


创建一个子文件,子文件所属组也是user1

d874a06e3f9535fc252d63106e299cde.jpg


是不是没有set_gid 也这样呢

13b84c034adf52ff63b52df358465b4e.jpg

子文件,子目录所属组都是user1


把s权限去掉,创建一个新的文件再来看...

6f4772bab5ff2087abc5d8871ef4f6da.jpg

所属组变成了root

cc0c366d949eb939079e3243027d93bb.jpg

创建目录也是一样的, 所属组也变成了root。


使用 set_gid 创建文件和目录的权限会跟着父级目录(刚刚创建gid权限的这个目录)保持一致


特殊权限stick_bit

810f23e0859add605690bfa8f773ffe4.jpg-wh_

这个t就叫做stick bit ,防删除位


创建一个文件server, 随便写点东西,权限改成777,再来查看


723353c47d3c728dffcbeb44c3a1b1d1.jpg


切换到user1下,看能不能改 。可以改,不能删

95c7559caac92d845c99fd7e68179e67.jpg


再创建一个目录user1, 改成777权限(777权限意味着任何一个用户都可以去读,写,执行)

529cda0d46ccc42db42bf331e72a104a.jpg


3fda2c7424d32b9f1846545071847447.jpg-wh_

user1可以删文件,也可以删目录

70ba91ec5208755802969e13ccbc66ab.jpg-wh_

删 user1下1.txt 看的不是1.txt的权限,看的是user1的权限,user1的权限是777,所以当然可以删1.txt

但是加上 stick_bit 防删除位,虽然可以改,但是就不能删除了。


 软链接文件

文件本身里面存了一个目录的路径

da40e1f23a9d61e7abbf5036fef5a354.jpg

什么样的文件属于软链接呢:

ls -l /lib64/

1ecb05a99ece2752fb95812e4055ad46.jpg


把tmp下yum.log 文件做一个软链接到 root下 yum.log


ee7761dfb3a15ac04e152eaf16ab626a.jpg

ln -s   源文件   目标文件

不仅可以链接文件,也可以链接目录:

8f3fd576b18ff13d40dc315c8f82c8de.jpg


这个是相对路径,做的这个软链接仅仅是在当前目录下,这样做会有一些弊端

假如说把文件copy到另一机器,或者是改了名字,软链接就失效了。

所以,做软链接尽量使用绝对路径

5960b94ef1003fb5b275d11fe1c38d1f.jpg

把文件移一个位置,链接一直在闪,说明源文件不存在

81f32fd97cb611e1955670d6dc991b09.jpg

因为当前目录下没有yum.log

可以touch一个,touch完了就正常了

82dde965a9720b5e59569df0c6d0a5d9.jpg 


工作中,常用解决磁盘空间不够的问题

651715ea1557b359750d68a39da7a187.jpg


硬链接文件

硬链接不支持对目录做硬链接,只支持文件

软链接很小,硬链接很大

442b81579ca16616490d9c655fc06830.jpg

acf7e24c8ca235ef0abf06963aa0d1d2.jpg

看一下inode 号
8811ac6fd2fccb67e2d9ff1905217aaa.jpg

特性:

删掉源,软链接失效,硬链接不受影响

9a315d13a16a0c168f86f63ca6e35eff.jpg

真正的文件存在inode文件中

4e53ba4b6077583690fd19820582b31d.jpg

硬链接相当于多了一个“皮儿”皮可以删掉,还有一个皮

不会占双份空间,因为inode只有一个

不能对目录做硬链接:

6b1763bba1ed57af7a6898ef02b4577c.jpg

(上一个目录和下一个目录靠 . 和 .. 串起来)


文件做硬链接有一个前提:不能跨区域

(因为这两个分区是存在相同inode文件的。分区之间都有自己独立的inode体系,分区的时候都创建好了)

061c6250a75449dfa3ea2debfd1c1662.jpg