使用setcap向二进制程序提供附加权限时,应该将新权限写入某个地方,存储在存储区或内存中,存储在何处?
按原样使用lsof不起作用,因为进程消失得太快。
发布于 2017-08-26 23:12:23
扩展权限(如setfacl设置的访问控制列表和setcap设置的功能标志)存储在与传统权限相同的位置,并在文件的inode中设置由chmod:设置的ugid标志。
(它们实际上可能存储在磁盘上的一个单独的块中,因为inode具有固定的大小,可以容纳传统的权限位,但不能用于潜在的无界扩展权限。但这只在少数情况下才重要,比如必须关心setcap可能耗尽磁盘空间。但是,即使是chmod,在使用去重复的系统上也可能耗尽磁盘空间!)
GNU不显示文件的setcap属性。您可以用getcap显示它们。您可以用getfattr -d -m -列出所有扩展属性;setcap属性称为security.capability,它以二进制格式编码,getcap为您解码。
发布于 2017-08-26 16:49:04
setcap设置文件功能,这些功能存储在文件系统扩展属性中。这些在man 7 capabilities中都有解释:
文件功能集存储在名为security.capability的扩展属性(参见setxattr(2))中。
您可以通过检查/proc/PID/status中的CapInh/CapPrm/CapEff字段来检查正在运行的进程的功能。请参阅我对"如何使用setcap命令设置功能?“的回答,以了解如何将这些功能应用于执行部分的进程。
https://unix.stackexchange.com/questions/388500
复制相似问题