可以覆盖系统控制的应用程序和命令被视为特权应用程序。使用安全属性(如 UID=0)、特权和授权,可以将应用程序成为特权应用程序。
检查 root ( UID=0) 或其他某个特殊 UID 或 GID 的特权应用程序在 UNIX 环境中已经存在很久。通过权限配置文件机制,可以隔离需要特定 ID 的命令。您不必更改任何人都可访问的命令的 ID,而是可以将具有指定 UID 的命令放置在某个权限配置文件中。这样,拥有此权限配置文件的用户或角色不必成为超级用户便可作为该 UID 运行程序。
可以将 ID 指定为实际 ID 或有效 ID。指定有效 ID 优先于指定实际 ID。有效 ID 等效于文件权限位中的 setuid 功能,该 ID 还可以标识 UID 以进行审计。但是,由于某些 shell 脚本和程序需要 root 的实际 UID,因此也可设置实际 UID。例如,reboot 命令需要实际 UID 而不是有效 UID。
特权应用程序可以检查特权的使用。通过权限配置文件机制,可以为需要安全属性的特定命令指定特权。然后,可以在权限配置文件中隔离具有指定安全属性的命令。这样,拥有此权限配置文件的用户或角色便可仅使用命令所需的特权来运行此命令。
Kerberos 命令,如 kadmin、kprop 和 kdb5_util
网络命令,如 ipadm、routeadm 和 snoop
文件和文件系统命令,如 chmod、chgrp 和 mount
控制进程的命令,如 kill、pcred 和 rcapadm
要将具有特权的命令添加到权限配置文件中,请参见如何创建权限配置文件和 profiles(1) 手册页。要确定哪些命令可检查特定配置文件中的特权,请参见Chapter 6, 列出 Oracle Solaris 中的权限。
部分 Oracle Solaris 命令检查授权,包括以下命令:
审计管理命令,如 auditconfig 和 auditreduce
打印机管理命令,如 cupsenable 和 lpadmin
批处理作业命令,如 at、atq、batch 和 crontab。
面向设备的命令,如 allocate、deallocate、list_devices 和 cdrw。
有关用于授权的脚本或程序的指南,请参见Example 4–3。要编写需要授权的程序,请参见面向开发者的 Oracle Solaris 11 安全性指南 中的关于授权。