面向开发者的 Oracle® Solaris 11 安全性指南

退出打印视图

更新时间: 2014 年 7 月
 
 

特权应用程序开发指南

    本节为开发特权应用程序提供了以下建议:

  • 使用隔离系统。绝不应在生产系统中调试特权应用程序,因为不完整的特权应用程序可能会危及安全。

  • 正确设置 ID。调用进程的有效集合中需要具备 proc_setid 特权,以更改其用户 ID、组 ID 或补充组 ID。

  • 使用特权包围。应用程序使用特权时,将覆盖系统安全策略。应该包围特权任务并仔细进行控制,以确保不会破坏敏感信息。有关如何包围特权的信息,请参见Privilege Coding Example

  • 使用基本特权启动。基本特权是最基本的操作所必需的。特权应用程序应该使用基本集合启动。然后,该应用程序应该适当地删除和添加特权。

      以下是典型的启动方案。

    1. 守护进程以 root 身份启动。

    2. 守护进程启用基本特权集合。

    3. 守护进程禁用不必要的所有基本特权,例如 PRIV_FILE_LINK_ANY。

    4. 守护进程添加需要的所有其他特权,例如 PRIV_FILE_DAC_READ。

    5. 守护进程切换到守护进程 UID。

  • 请避免 shell 转义序列。shell 转义序列中的新进程可以使用父进程的可继承集合中的任何特权。因此,最终用户可以通过 shell 转义序列违反信任。例如,某些邮件应用程序可能会将 !command 行解释为命令并执行该行。因而,最终用户可以创建脚本,以充分利用所有邮件应用程序特权。建议删除不必要的 shell 转义序列。