08-文件许可和有效能力集的目的
39.3.4 文件许可和有效能力集的目的
文件许可能力集为可执行文件向进程赋予能力提供了一种机制,它指定了在exec()调用中被赋给进程的许可能力集的一组能力。
文件有效文件集是一个可以被启用或禁用的标记(位)。要理解为何这个集合只由一个位构成就需要考虑在程序被执行时会发生的两种情况。
- 程序可能是一个能力哑元,表示它对能力一无所知(即传统的set-user-ID-root程序)。这种程序不知道需要在其有效集中提升能力以便能够执行特权操作。对于这样的程序来讲,exec()应该将进程的新许可集中的所有能力自动加到其有效集中,这是通过启用文件有效位来完成的。
- 程序可能是知道能力的,表示在设计程序的时候使用了能力框架,并且会使用合适的系统调用(稍后讨论)来在其有效集中提升和删除能力。对于这样的程序来讲,最小权限表示在exec()调用之后,进程的有效能力集中的所有能力一开始都是被禁用的,这是通过禁用文件有效能力位来完成的。