Linux setuid相关

prolog:

linux文件系统的安全性在一定程度上会带来一些“不方便”,为了取一个平衡,或者说为了让使用者有更多的可控选择,引入了setuid 和setgid控制bit。

使用场景举例:

Linux上80端口的listen必须是root权限才可以监听,那假如我不想把root密码告诉所有运维,但是又需要运维来负责管理这些80端口的服务,那如何解决?可能有很多办法,但是setuid以及setgid是其中一种。

setuid是什么?

setuid是文件的扩展属性,经常我们会用到的是777或者755等等,加了setuid就成了6777 4755等等,setuid是4,setgid是2.

setuid的作用?

设置了setuid,当任何进程启动该进程的时候会以root来启动进程,而不管当前uid是什么,通常需要的是root。

setuid如何设置?

chmod u+s file ;

如何查看文件是不是已经具有setuid属性?

stat -c %a%A file

linux相关:

setuid是一个文件扩展属性标志位,同时linux提供了setuid函数,seteuid函数,setguid函数,怎么用呢?:

首先要想使用setuid功能,必须先把文件使用chmod添加扩展setuid属性,扩展了之后,进程运行默认使用的是root,其它uid也可能有;在通常默认是root的情况下,就等同于使用了setuid(0),当然理论上也可以设置为其它用户的uid,比如想改变产生的日志文件属性。

seteuid是setuid之后引入的函数,设置当前进程的efficitive uid。

还有一个函数是setreuid,设置real和efficitive uid。

realuid:哪个uid启动进程的,或者你想让进程是属于哪个uid,一般更想说明的是前置。

efficitive uid:以root来启动进程

stored uid:文件owner的uid。

setreuid这个函数就两个参数,大概测试了下,也没有太揪着这个点,测试的感觉还是必须efficitive uid得是0。然后也创建了一个文件,文件属性也很奇怪,欢迎留言做详细说明。

参考链接:

https://en.wikipedia.org/wiki/Setuid

man 3 setuid

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值