跳过导航链接 | |
退出打印视图 | |
![]() |
从 Oracle Solaris 10 转换到 Oracle Solaris 11 Oracle Solaris 11 Information Library (简体中文) |
以下信息说明了角色、权限和特权在 Oracle Solaris 11 中的作用:
指定授权与委托授权-Oracle Solaris 提供授权,用于将特定管理权限委托给单个用户和角色,以实现职责分离。在 Oracle Solaris 10 中,需要以 .grant 结尾的授权来将授权委托给另一个用户。在 Oracle Solaris 11 中,使用了两个新后缀 .assign 和 .delegate,例如 solaris.profile.assign 和 solaris.profile.delegate。前者授予将任何权限配置文件委托给任何用户或角色的权限。后者受到更严格的限制,因为仅可以委托已经指定给当前用户的权限配置文件。由于 root 角色指定为 solaris.*,因此该角色可以将任何授权指定给任何用户或角色。作为安全措施,缺省情况下任何配置文件中都不包括以 .assign 结尾的授权。
Media Restore(介质恢复)权限配置文件-此权限配置文件和授权集可以升级非 root 帐户的特权。配置文件存在,但是不属于任何其他权限配置文件的一部分。因为 Media Restore 权限配置文件提供对整个根文件系统的访问,因此使用它时可能会升级特权。可以恢复故意更改的文件或替代介质。缺省情况下,root 角色包括此权限配置文件。
删除的主管理员配置文件-为安装时创建的初始用户提供了以下角色和权限:
root 角色
System Administrator 权限配置文件
对作为 root 运行的所有命令的 sudo 命令的访问
角色验证-可以为 roleauth 关键字指定 user 或 role。请参见 user_attr(4)。
root 作为角色-root 现在在缺省情况下为角色,因此并非匿名,并且无法远程登录到系统中。有关将 root 角色更改为用户的信息,请参见《Oracle Solaris 管理:安全服务》中的"如何将 root 角色更改为用户"。
Oracle Solaris 11 基本特权包括以下:
file_read
file_write
net_access
常规 shell 的配置文件 shell 版本-每个常规 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 的分段进行汇编的。分段文件不会合并到单个版本的文件中,而是仍为分段。此更改可使软件包传送完整或部分的 RBAC 配置文件。使用 useradd 和 profiles 命令添加到本地文件系统信息库中的项被添加到分段目录中的 local-entries 文件中。要添加或修改配置文件,请使用 profiles 命令。请参见《Oracle Solaris 管理:安全服务》中的"如何创建或更改权限配置文件"。
停止权限配置文件-此配置文件可使管理员创建受限的帐户。请参见《Oracle Solaris 管理:安全服务》中的"RBAC 权限配置文件"。
pfsh script 命令-此命令现在运行与 pfsh -c script 命令相同的命令。先前,脚本内的命令不能使用 RBAC,除非该脚本将配置文件 shell 指定为其第一行。此规则需要修改所有脚本来使用 RBAC,现在则不必修改,因为脚本的调用者(或者会话中的祖先)可以指定配置文件 shell。
pfexec 命令-此命令现在不再为 setuid 根。当执行 pfexec 命令或配置文件 shell 时,会设置新 PF_PFEXEC 进程属性。然后,内核对 exec 设置适当的特权。此实现确保根据情况授权或限制子 shell。
当内核处理 exec(2) 时,会不同地将 setuid 处理为 root。请注意至任何其他 uid 或 setgid 的 setuid 和先前的一样。现在内核在 exec_attr(4) 中的 Forced Privilege RBAC 配置文件中搜索项,以确定程序应该用于运行的特权。程序不会以 uid root 和所有特权启动,而是以当前 uid 以及仅 Forced Privilege RBAC 执行配置文件已指定给该路径名称的附加特权来运行。
当将特权直接指定给用户时,实际上,特权位于每个 shell 中。未直接将特权指定给用户时,用户必须打开一个配置文件 shell。例如,当具有指定特权的命令位于用户权限配置文件列表内的权限配置文件中时,用户必须在配置文件 shell 中执行此命令。
要在联机时查看特权,请参见 privileges(5)。显示的特权格式由开发者使用。
$ man privileges Standards, Environments, and Macros privileges(5) NAME privileges - process privilege model ... The defined privileges are: PRIV_CONTRACT_EVENT Allow a process to request reliable delivery of events to an event endpoint. Allow a process to include events in the critical event set term of a template which could be generated in volume by the user. ...
示例 9-1 查看直接指定的特权
如果已经为您直接指定了特权,则基本特权集包含的特权会多于缺省的基本特权集。在以下示例中,用户能始终访问 proc_clock_highres 特权。
$ /usr/bin/whoami jdoe $ ppriv -v $$ 1800: pfksh flags = <none> E: file_link_any,…,proc_clock_highres,proc_session I: file_link_any,…,proc_clock_highres,proc_session P: file_link_any,…,proc_clock_highres,proc_session L: cpc_cpu,dtrace_kernel,dtrace_proc,dtrace_user,…,sys_time $ ppriv -vl proc_clock_highres Allows a process to use high resolution timers.