首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用setcap时,权限存储在哪里?

当使用setcap时,权限存储在哪里?
EN

Unix & Linux用户
提问于 2017-08-26 16:39:53
回答 2查看 8K关注 0票数 17

使用setcap向二进制程序提供附加权限时,应该将新权限写入某个地方,存储在存储区或内存中,存储在何处?

按原样使用lsof不起作用,因为进程消失得太快。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-08-26 23:12:23

扩展权限(如setfacl设置的访问控制列表和setcap设置的功能标志)存储在与传统权限相同的位置,并在文件的inode中设置由chmod:设置的ugid标志。

(它们实际上可能存储在磁盘上的一个单独的块中,因为inode具有固定的大小,可以容纳传统的权限位,但不能用于潜在的无界扩展权限。但这只在少数情况下才重要,比如必须关心setcap可能耗尽磁盘空间。但是,即使是chmod,在使用去重复的系统上也可能耗尽磁盘空间!)

GNU不显示文件的setcap属性。您可以用getcap显示它们。您可以用getfattr -d -m -列出所有扩展属性;setcap属性称为security.capability,它以二进制格式编码,getcap为您解码。

票数 14
EN

Unix & Linux用户

发布于 2017-08-26 16:49:04

setcap设置文件功能,这些功能存储在文件系统扩展属性中。这些在man 7 capabilities中都有解释:

文件功能集存储在名为security.capability的扩展属性(参见setxattr(2))中。

您可以通过检查/proc/PID/status中的CapInh/CapPrm/CapEff字段来检查正在运行的进程的功能。请参阅我对"如何使用setcap命令设置功能?“的回答,以了解如何将这些功能应用于执行部分的进程。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/388500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档