以下信息说明了 Oracle Solaris 11 中的角色、权限、特权和授权机制:
指定授权与委托授权-Oracle Solaris 提供授权,用于将特定管理权限委托给单个用户和角色,以实现职责分离。在 Oracle Solaris 10 中,需要以 .grant 结尾的授权来将授权委托给另一个用户。从 Oracle Solaris 11 开始,使用了两个新后缀(.assign 和 .delegate)。例如,solaris.profile.assign 和 solaris.profile.delegate。前者授予将任何权限配置文件委托给任何用户或角色的权限。后者受到更严格的限制,因为仅可以委托已经指定给当前用户的权限配置文件。由于 root 角色指定为 solaris.*,因此该角色可以将任何授权指定给任何用户或角色。作为安全措施,缺省情况下任何配置文件中都不包括以 .assign 结尾的授权。
groupadd 命令更改-在创建组时,系统会为管理员分配 solaris.group.assign/groupname 授权。此授权使管理员可以完全控制该组,并且可以根据需要修改或删除 groupname。请参见 groupadd(1M) 和 groupmod(1M) 手册页。
Media Restore 权限配置文件-此权限配置文件和授权集可以升级非 root 帐户的特权。配置文件存在,但是不属于任何其他权限配置文件的一部分。因为 Media Restore 权限配置文件提供对整个根文件系统的访问,因此使用它时可能会升级特权。可以恢复故意更改的文件或替代介质。缺省情况下,root 角色包括此权限配置文件。
删除的主管理员配置文件-为安装时创建的初始用户提供了以下角色和权限:
root 角色
System Administrator 权限配置文件
对作为 root 运行的所有命令的 sudo 命令的访问
角色验证-可以为 roleauth 关键字指定 user 或 role。
可以按如下方式确定向 root 角色分配了哪个密码:
# userattr roleauth root
没有输出意味着没有定制 root 帐户,表示密码为 Oracle Solaris 缺省密码,而不是此用户的密码。
请参见 user_attr(4)。
root 作为角色-在 Oracle Solaris 11 中,root 是一个缺省角色,因此,它不是匿名的,无法远程登录到系统。有关将 root 角色更改为用户的信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的如何将 root 角色更改为用户。
Oracle Solaris 基本特权包括:
file_read
file_write
net_access
常规 shell 的配置文件 shell 版本-在 Oracle Solaris 11 中,每个常规 shell 都有自己的配置文件版本。以下配置文件 shell 可用:
pfbash
pfcsh
pfksh
pfksh93
pfrksh93
pfsh
pftcsh
pfzsh
请参见 pfexec(1)。
权限配置文件-user_attr、prof_attr 和 exec_attr 数据库现在为只读数据库。这些本地文件数据库是从位于 /etc/user_attr.d、/etc/security/prof_attr.d 和 /etc/security/exec_attr.d 的分段进行汇编的。分段文件不会合并到单个版本的文件中,而是仍为分段。此更改可使软件包传送完整或部分权限配置文件。使用 useradd 和 profiles 命令添加到本地文件系统信息库中的项被添加到分段目录中的 local-entries 文件中。要添加或修改配置文件,请使用 profiles 命令。请参见关于权限配置文件。
停止权限配置文件-此配置文件可使管理员创建受限的帐户。请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的有关权限配置文件的更多信息。
pfsh script 命令-此命令的运行效果与 pfsh –c script 命令相同。先前,脚本内的命令不能使用权限配置文件,除非该脚本将配置文件 shell 指定为其第一行。此规则需要修改所有脚本来使用权限配置文件,现在则不必修改,因为脚本的调用者(或者会话中的祖先)可以指定配置文件 shell。
pfexec 命令-此命令不再为 setuid 根。当执行 pfexec 命令或配置文件 shell 时,会设置新 PF_PFEXEC 进程属性。然后,内核对 exec 设置适当的特权。此实现确保根据情况授权或限制子 shell。
当内核处理 exec (2) 时,会将 setuid 处理为 root 以示区别。请注意至任何其他 uid 或 setgid 的 setuid 和先前的一样。内核在 exec_attr(4) 中的 Forced Privilege 权限配置文件中搜索项,以确定程序运行应使用的特权。程序不会以 uid root 和所有特权启动,而是以当前 uid 以及仅 Forced Privilege 执行权限配置文件已指定给该路径名称的附加特权来运行。