以下是本章中参考信息的列表:
有关如何使用权限的信息,请参见第 11 章,权限(任务)。有关概述信息,请参见权限(概述)。
目的 |
命令 |
手册页 |
---|---|---|
检查进程权限 |
ppriv -v pid | |
设置进程权限 |
ppriv -s spec |
|
列出系统上的权限 |
ppriv -l |
|
列出权限及其说明 |
ppriv -lv priv |
|
调试权限故障 |
ppriv -eD failed-operation |
|
为新的本地用户指定权限 |
useradd | |
为现有本地用户添加权限 |
usermod | |
为名称服务中的用户指定权限 |
smuser | |
将权限指定给新的本地角色 |
roleadd | |
为现有本地角色添加权限 |
rolemod | |
为名称服务中的角色指定权限 |
smrole | |
查看设备策略 |
getdevpolicy | |
设置设备策略 |
devfsadm | |
在打开的设备上更新设备策略 |
update_drv -p policy driver | |
向设备中添加设备策略 |
add_drv -p policy driver |
Solaris Management Console GUI 是用于为命令、用户和角色指定权限的首选工具。有关更多信息,请参见如何在 Solaris Management Console 中承担角色。
文件和手册页 |
关键字 |
说明 |
---|---|---|
/etc/security/policy.conf |
系统的可继承权限集 |
|
系统的限制权限集 |
||
/etc/user_attr |
其值通常在 Solaris Management Console GUI 中设置 |
用户或角色的可继承权限集 |
其值通常在 Solaris Management Console GUI 中设置 |
用户或角色的限制权限集 |
|
/etc/security/exec_attr |
命令的配置文件项中的 privs 关键字 命令的策略必须是 solaris |
为权限配置文件中的命令指定的权限列表 |
syslog.conf |
调试消息的系统日志文件 |
权限调试日志 |
请勿直接编辑 exec_attr 和 user_attr 数据库。要管理权限,请使用 Solaris Management Console 或诸如 smuser 的命令。有关更多信息,请参见 smc(1M) 和 smuser(1M) 手册页。有关过程,请参见管理权限(任务列表)。
可以审计权限的使用。当进程使用权限时,将在审计跟踪中记录权限的使用。权限将在其文本说明中记录。以下审计事件记录权限的使用:
AUE_SETPPRIV 审计事件-更改权限集时,此事件会生成审计记录。AUE_SETPPRIV 审计事件位于 pm 类中。
AUE_MODALLOCPRIV 审计事件-从内核外部添加权限时,此审计事件会生成审计记录。AUE_MODALLOCPRIV 审计事件位于 ad 类中。
AUE_MODDEVPLCY 审计事件-更改设备策略时,此审计事件会生成审计记录。AUE_MODDEVPLCY 审计事件位于 ad 类中。
AUE_prof_cmd 审计事件-在配置文件 shell 中执行命令时,此审计事件会生成审计记录。AUE_prof_cmd 审计事件位于 as 和 ua 审计类中。
不会审计基本集中权限的成功使用。尝试使用已从用户基本集中删除的基本权限时会进行审计。
Solaris 内核可防止权限升级。权限升级是指某项权限使进程执行的操作多于其原本能够执行的操作。要防止进程获取的权限超出其应该获得的权限,必须具有完整的权限集才能进行特定系统修改。例如,只有具有完整权限集的进程才能更改 root (UID=0) 拥有的文件或进程。root 用户不需要权限就能更改 root 拥有的文件。但是,非超级用户必须具有所有权限才能更改 root 拥有的文件。
同样,提供设备访问权限的操作需要有效集中的所有权限。
file_chown_self 和 proc_owner 权限可进行权限升级。file_chown_self 权限允许进程放弃其文件。proc_owner 权限允许进程检查不归其拥有的进程。
可通过 rstchown 系统变量限制 file_chown_self 权限。将 rstchown 变量设置为零时,会从系统和所有用户的初始可继承集中删除 file_chown_self 权限。有关 rstchown 系统变量的更多信息,请参见 chown(1) 手册页。
file_chown_self 权限以最安全的方式指定给特定命令,放置在配置文件中,并指定给角色以在配置文件 shell 中使用。
proc_owner 权限不足以将进程 UID 切换为 0。将进程从任何 UID 切换为 UID=0 需要所有权限。由于 proc_owner 权限授予无限制读取系统上所有文件的权限,因此可以非常安全地将该权限指定给特定命令,将其放置在配置文件中,指定给角色以在配置文件 shell 中使用。
可修改用户帐户,以便在该用户的初始可继承集中包含 file_chown_self 权限或 proc_owner 权限。您应当有充分的安全理由将这些功能强大的权限放置在任何用户、角色或系统的可继承权限集中。
有关如何针对设备防止权限升级的详细信息,请参见权限和设备。
为了适应传统应用程序,权限的实现使用超级用户模型和权限模型。内核会自动跟踪 PRIV_AWARE 标志,此标志指示已指定某个程序使用权限。请考虑不能识别权限的子进程。从父进程继承的所有权限均可在子进程的允许集和有效集中找到。如果子进程将 UID 设置为 0,则其可能不具有全部超级用户功能。进程的有效集和允许集会被限制为子进程限制集中包含的那些权限。这样,可识别权限进程的限制集会限制不能识别权限的子进程的超级用户权限。