chmod 的权限设置

今天执行sudo 的时候突然报错:

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

谷歌一下终于知道以前所忽略的一些文件权限相关的知识点。上述问题的解决方案是:

如果能够以root用户登录系统那么就修改/usr/bin/sudo 的权限

chmod 4755 /usr/bin/sudo

如果不能就比较困难了。下面介绍一下chmod 4755是怎么回事。

用过linux的人都熟悉chmod这个命令,这个命令用来改变某文件的权限,例如:

chmod 756 filename

表示将filename的权限设置为本用户(7)拥有读写执行权限,group用户拥有(5)读+执行权限,其他用户拥有读+写权限

也就是4为读权限,2位写权限,1位执行权限,组合用和来表示,这种设置保证任何1-7的权限值只有一种权限组合。

但是除了上述的读写执行权限之外还有第四种权限,例如:

chmod 4756 filename

上面的756跟上文提到的756意义相同,但是前面的4是什么意思呢?

这是文件的特殊权限,有三种:SUID,SGID,SBIT,我们只讲用的最多的第一种SUID.

SUID只能给binary设置,当设置了该权限后,binary的权限中的user上的x权限变成了s,这有什么作用呢?假设binary A的权限是755,也就是给所有用户可执行权限。但是A在执行时需要读写文件B,而B没有开放读写权限给other用户,那么other用户即使对A有执行权限也做不了什么事,这时候就需要SUID权限了,假设A设置了SUID权限,那么对于拥有可执行权限的other用户可以在执行A的过程中暂时获得对B的读写权限,那么other用就可以顺利的执行A。

于是我们就能够理解报错的意思以及解决方法的意思了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值