linux可执行文件set-user-id位

本文介绍Linux/unix系统中set-user-id位的作用及原理。详细解释了当设置了set-user-id位的可执行文件被运行时,进程的有效用户ID会变成文件属主的用户ID,从而获得该用户的所有权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道linux/unix系统的的权限管理是通过用户和组的,每个文件都属于某个特定的用户和组,每个进程也

拥有相应的用户和组ID。而进程的凭证即进程的身份证明,该身份证明包含了进程的用户和组信息,操作

系统内核通过这个凭证来判断调用当前系统调用的进程的权限。进程凭证包括以下内容:

-实际用户ID和实际组ID(real user id and real group id)即运行该进程的用户的id信息;

-有效用户ID和有效组ID(effective user id and effective group id),与可执行文件的set-user-id 位有关。

-保存的set-user-id和保存的set-user-id;

-文件系统用户id和文件系统组id;

-辅助组id;

我们现在要讲的讲的可执行文件中set-user-id位就和有效用户id有关。如果可执行文件中设置了set-user-id

位,当shell创建该可执行文件的进程时,将运行set-user-id程序(即通过调用exec()将设置了set-user-id的

可执行文件载入内存的进程中),将改进程的有效用户id改成可执行文件属主的用户id。操作系统内核总是通

过有效id来判定进程的权限,因此通过set-user-id程序,该进程就拥有了可执行文件属主的所有权限。同理,

set-group-id也是一样。

总结:

可执行文件的set-user-id的作用可以让任何运行该程序的用户通过该程序拥有可执行文件属主的权限。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值