6月7日任务
2.18 特殊权限set_uid
2.19 特殊权限set_gid
2.20 特殊权限stick_bit
2.21 软链接文件
2.22 硬连接文件
2.18 特殊权限set_uid
会发现有些文件的前三位并不是rwx而是rws,而s就代表的set_uid的权限
要更改passwd,就要更改系统文件,而这个系统文件就是/etc/shadow,而shadow是---权限无法更改,所以就用到了set_uid这个权限,他可以让普通用户临时拥有root的权限,来修改passwd
所以set_uid的意思就是:他可以让普通用户临时拥有该命令所有者的身份(u=所有者),有了这个的权限,就可以修改这个带s的文件
那么给一个文件设置set_uid的前提是这个文件必须是二进制文件、可执行文件
(二进制文件比如ls命令,.txt就不是二进制文件)
su - 可切换用户
那么如何给一个文件加上set_uid权限呢,写法如下:
chmod u+s /user/bin/passwd
-s可取消set_uid权限
chmod u-s /user/bin/passwd
实例:
我们先用su - 切换到普通用户下,并查看/root/,发现查看不了,因为没有权限
我们把ls加上set_uid权限,然后在查看ls,会发现ls已经变成了rws
我们再回到普通用户下,再查看/root,就会发现可以打开了
注意:目录页可以加set_uid,但是没意义,我们不执行目录
总结:
set_uid是可以让普通用户临时拥有这个文件所有者身份的权限
对一个文件加set_uid的写法是:
chmod u+s
chmod u-s 可取消set_uid权限
---------------------------------------------------------------------------------------------------------------------------------------
2.19 特殊权限set_gid:
set_gid是作用在所属组者个权限位上的
set _gid是可以让这个文件临时拥有所属组的身份(g=所属组)
写法为 chmod g+s
set_gid加在文件上的时候是跟set_uid是一样的,但是他是可以加在目录上的
实例:
我们新建一个叫111的目录,给他增加set_gidde quanxian ,更改他的所属组,我们发现在里面新建的子目录和子文件就都是wangxin了
然后我们在取消掉set_gid,再给他增加子文件和子目录,就会发现这时候就都是root了
总结:
作用在文件上时用set_uid类似,可以让执行这个文件的普通用户临时拥有这个所属组的权限
作用在目录上时,当你创建子目录或者子文件,子目录和子文件的所属组和该目录的所属组保持一致
写法也是 chmod g+a
取消为 chmod g-a
---------------------------------------------------------------------------------------------------------------------------------------
2.20 特殊权限stick_bit:
stick_bit防止别人删除自己的文件(root用户除外)
stick_bit通常用在/tmp/下
在一个用户/tmp/建了一个文件,在另一个用户/tmp/下是可以看到的,但是不能删
---------------------------------------------------------------------------------------------------------------------------------------
2.21 软链接文件:
软连接相当于Windows的快捷方式,把一个文件的路径放到另一个目录下,就可以执行这个目录的名字,比较节省空间
如图:
ls就是在bin下的,所以我们执行哪个都可以
那么给一个目录做软连接的写法是:
ln -s /root/123/12/1.txt /tmp/456/45/6.txt
源文件路径 目的地文件路径
软连接不仅可以做文件也可以做目录,但是最好使用绝对路径
实例:
假如有一个叫aming的服务一直在往/boot下写日志(.log),而/boot已经快满了,再写就满了,我们可以这样做
cp /boot/aming.log /aming.log 先把这个服务的日志复制到根下
rm /boot/aming.log 再把原有这个服务的日志删掉,让他往根下面写,那现在这个服务的原路径就在跟下了
ln -s /aming.log /boot/aming.log 再把现在这个的源文件路径软连接给/boot下就好了
---------------------------------------------------------------------------------------------------------------------------------------
2.22 硬连接文件:
写法为ln (源文件绝对路径) (目的地绝对路径)
不支持对目录做硬链接,硬链接只能对文件做硬链接
不能跨分区做硬链接
硬链接可以删除,因为还有其他iNode使用了这个硬链接,
比如创建了一个文件,他跟一个文件有一样的iNode号,那这两个文件相互为硬链接
硬链接相当于是一个文件多了一张皮,我可以删掉其中一个,或者哪个都无所谓,真正储存该信息的是inode
相当于备份