linux-capabilities

本文介绍Linux中如何将传统超级用户的特权细分为独立的功能,并通过capset系统调用来设置进程的能力权限。从内核2.2起,这些功能可以独立启用或禁用,使得权限管理更为灵活。

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

capabilities
cap
为了执行权限检查,传统的UNIX实现区分两类进程:特权进程(其有效用户ID为0,称为超级用户或根用户)和非特权进程(其有效UID为非零)。特权进程绕过所有内核权限检查,而非特权进程根据进程的凭据(通常为:有效UID、有效GID和补充组列表)接受完全权限检查。
从内核2.2开始,Linux将传统上与超级用户相关的特权划分为不同的单元,称为功能,可以独立启用和禁用。功能是每个线程的属性。

使用capset系统调用设置nobody进程的线程capabilites。
 man 2 capset
 man 7 capabilities

sys/capability.h 如果没有:
apt install libcap-dev
在这里插入图片描述
或者用引用 linux/capability.h 。使用syscall 调用 SYS_capset 系统调用
自定义capset
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值