java 软连接使用_9.特殊权限 软连接 硬链接

6月7日任务

2.18 特殊权限set_uid

2.19 特殊权限set_gid

2.20 特殊权限stick_bit

2.21 软链接文件

2.22 硬连接文件

2.18 特殊权限set_uid

b3c2c104116c6fcb034475af673ba142.png

会发现有些文件的前三位并不是rwx而是rws,而s就代表的set_uid的权限

a143e4b5e8bead3d9e37cab3945fe771.png

要更改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/,发现查看不了,因为没有权限

d0b02aa6fa9d50c6d84dd66ea50fd1dd.png

我们把ls加上set_uid权限,然后在查看ls,会发现ls已经变成了rws

a143e4b5e8bead3d9e37cab3945fe771.png

我们再回到普通用户下,再查看/root,就会发现可以打开了

d0b02aa6fa9d50c6d84dd66ea50fd1dd.png

注意:目录页可以加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

3454a7f40800fa44efe34f9824b95e48.png

set_gid加在文件上的时候是跟set_uid是一样的,但是他是可以加在目录上的

实例:

d05da21c212917e32fc8a7b66e5eb802.png

我们新建一个叫111的目录,给他增加set_gidde quanxian ,更改他的所属组,我们发现在里面新建的子目录和子文件就都是wangxin了

然后我们在取消掉set_gid,再给他增加子文件和子目录,就会发现这时候就都是root了

a143e4b5e8bead3d9e37cab3945fe771.png

总结:

作用在文件上时用set_uid类似,可以让执行这个文件的普通用户临时拥有这个所属组的权限

作用在目录上时,当你创建子目录或者子文件,子目录和子文件的所属组和该目录的所属组保持一致

写法也是 chmod g+a

取消为 chmod g-a

---------------------------------------------------------------------------------------------------------------------------------------

2.20 特殊权限stick_bit:

stick_bit防止别人删除自己的文件(root用户除外)

stick_bit通常用在/tmp/下

在一个用户/tmp/建了一个文件,在另一个用户/tmp/下是可以看到的,但是不能删

---------------------------------------------------------------------------------------------------------------------------------------

2.21 软链接文件:

软连接相当于Windows的快捷方式,把一个文件的路径放到另一个目录下,就可以执行这个目录的名字,比较节省空间

如图:

7041dd5def917dbb953119a678145f79.png

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

相当于备份

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值