术语无特权或无权限在 Oracle Solaris 中不适用。Oracle Solaris 中的每个进程(包括一般用户进程)都至少有部分特权或其他用户权限,例如授权。要了解 Oracle Solaris 授予所有 UNIX 进程的基本特权集合,请参见进程权限管理。
以下元素用于在 Oracle Solaris 中实现用户权限。可以配置这些权限来强制实施许可性安全策略或限制性安全策略。
授权-一种权限,允许用户或角色执行某一类需要额外权限才能执行的操作。例如,默认安全权限为控制台用户提供 solaris.device.cdrw 授权。用户可使用此授权来读取和写入 CD-ROM 设备。有关授权的列表,请使用 auths list 命令。授权在用户应用程序级别(而不是内核级别)实施。请参见有关用户授权的更多信息。
特权-可以授予命令、用户、角色或特定资源(例如一个端口或 SMF 方法)的权限。特权是在内核中实施的。例如,proc_exec 特权允许进程调用 execve()。一般用户具有基本特权。要查看您的基本特权,请运行 ppriv -vl basic 命令。有关详细信息,请参见进程权限管理。
安全属性-允许进程执行某个操作或实现某个权限的属性。在典型的 UNIX 环境中,安全属性允许进程执行原本禁止一般用户执行的操作。例如,setuid 和 setgid 程序具有安全属性。在权限模型中,授权和特权是除 setuid 和 setgid 程序之外的安全属性。可以将这些属性或权限指定给某位用户。例如,具有 solaris.device.allocate 授权的用户可以分配设备供独占使用。特权可以置于某个进程上。例如,具有 file_flag_set 特权的进程可以设置不变的、未解除链接的或仅附加的文件属性。
安全属性还可以限制权限。例如,access_times 和 access_tz 安全属性可以设置允许执行特定安全相关操作的日期和时间以及(可选)时区。您可以直接限制用户或通过向他们指定包含这些关键字的需要验证权限配置文件来限制用户。有关更多信息,请参见 user_attr(4) 手册页。
特权应用程序-可以通过检查权限来覆盖系统控制的应用程序或命令。有关更多信息,请参见检查权限的应用程序和面向开发者的 Oracle Solaris 11 安全性指南 。
权限配置文件-可以指定给角色或用户的权限的集合。一个权限配置文件可以包含授权、直接指定的特权、具有安全属性的命令以及其他权限配置文件。其他配置文件中的配置文件称为补充权限配置文件。权限配置文件提供了一种便捷的权限分组方法。可以将配置文件直接指定给用户或称为角色的特殊帐户。只有当进程识别了权限后,才能使用权限配置文件中的命令。另外,可能会要求您提供口令。或者,可以提供缺省口令验证。请参见有关权限配置文件的更多信息。
角色-用于运行特权应用程序的特殊身份。这种特殊身份只能由指定的用户承担。在按角色运行的系统中,初始配置后可能就不再需要超级用户。请参见有关角色的更多信息。
下图显示了用户权限和进程权限协同工作的方式。
图 1-2 用户权限和进程权限协同工作
下图使用 "Network Security"(网络安全)角色和 "Network Security"(网络安全)权限配置文件说明了如何使用指定的权限。
图 1-3 用户权限和进程权限指定示例
"Network Security"(网络安全)角色用于管理 IPsec、wifi 和网络链路。该角色被指定给了用户 jdoe。jdoe 可以通过切换到该角色然后提供角色口令来承担该角色。管理员可以启用角色通过用户口令而不是角色口令进行验证。
在本图中,"Network Security"(网络安全)权限配置文件指定给 "Network Security"(网络安全)角色。"Network Security"(网络安全)权限配置文件包含一些按顺序评估的补充配置文件:Network Wifi Security(网络 Wifi 安全)、Network Link Security(网络链接安全)和 Network IPsec Management(网络 IPsec 管理)。这些补充配置文件包含完成该角色的主要任务的权限。
"Network Security"(网络安全)权限配置文件有三个直接指定的授权,没有直接指定的特权,还有两个具有安全属性的命令。补充权限配置文件有直接指定的授权,其中两个包含具有安全属性的命令。
如果 jdoe 承担了 "Network Security"(网络安全)角色,shell 将更改为 profile shell(配置文件 shell)。配置文件 shell 进程会评估权限的使用,这样 jdoe 可以管理网络安全。