系统管理指南:安全性服务

第 12 章 权限(参考)

以下是本章中参考信息的列表:

有关如何使用权限的信息,请参见第 11 章,权限(任务)。有关概述信息,请参见权限(概述)

用于处理权限的管理命令

下表列出了可用于处理权限的命令。

表 12–1 用于处理权限的命令

目的 

命令 

手册页 

检查进程权限 

ppriv -v pid

ppriv(1)

设置进程权限 

ppriv -s spec

 

列出系统上的权限 

ppriv -l

 

列出权限及其说明 

ppriv -lv priv

 

调试权限故障 

ppriv -eD failed-operation

 

为新的本地用户指定权限 

useradd

useradd(1M)

为现有本地用户添加权限 

usermod

usermod(1M)

为名称服务中的用户指定权限 

smuser

smuser(1M)

将权限指定给新的本地角色 

roleadd

roleadd(1M)

为现有本地角色添加权限 

rolemod

rolemod(1M)

为名称服务中的角色指定权限 

smrole

smrole(1M)

查看设备策略 

getdevpolicy

getdevpolicy(1M)

设置设备策略 

devfsadm

devfsadm(1M)

在打开的设备上更新设备策略 

update_drv -p policy driver

update_drv(1M)

向设备中添加设备策略 

add_drv -p policy driver

add_drv(1M)

Solaris Management Console GUI 是用于为命令、用户和角色指定权限的首选工具。有关更多信息,请参见如何在 Solaris Management Console 中承担角色

包含权限信息的文件

以下文件包含权限信息。

表 12–2 包含权限信息的文件

文件和手册页 

关键字 

说明 

/etc/security/policy.conf

policy.conf(4)

PRIV_DEFAULT

系统的可继承权限集 

PRIV_LIMIT

系统的限制权限集 

/etc/user_attr

user_attr(4)

用户项或角色项中的 defaultpriv 关键字

其值通常在 Solaris Management Console GUI 中设置 

用户或角色的可继承权限集 

用户项或角色项中的 limitpriv 关键字

其值通常在 Solaris Management Console GUI 中设置 

用户或角色的限制权限集 

/etc/security/exec_attr

exec_attr(4)

命令的配置文件项中的 privs 关键字

命令的策略必须是 solaris

为权限配置文件中的命令指定的权限列表 

syslog.conf

syslog.conf(4)

调试消息的系统日志文件 

priv.debug 项中设置的路径

权限调试日志 


注 –

请勿直接编辑 exec_attruser_attr 数据库。要管理权限,请使用 Solaris Management Console 或诸如 smuser 的命令。有关更多信息,请参见 smc(1M)smuser(1M) 手册页。有关过程,请参见管理权限(任务列表)


权限和审计

可以审计权限的使用。当进程使用权限时,将在审计跟踪中记录权限的使用。权限将在其文本说明中记录。以下审计事件记录权限的使用:

不会审计基本集中权限的成功使用。尝试使用已从用户基本集中删除的基本权限时会进行审计。

防止权限升级

Solaris 内核可防止权限升级。权限升级是指某项权限使进程执行的操作多于其原本能够执行的操作。要防止进程获取的权限超出其应该获得的权限,必须具有完整的权限集才能进行特定系统修改。例如,只有具有完整权限集的进程才能更改 root (UID=0) 拥有的文件或进程。root 用户不需要权限就能更改 root 拥有的文件。但是,非超级用户必须具有所有权限才能更改 root 拥有的文件。

同样,提供设备访问权限的操作需要有效集中的所有权限。

file_chown_selfproc_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,则其可能不具有全部超级用户功能。进程的有效集和允许集会被限制为子进程限制集中包含的那些权限。这样,可识别权限进程的限制集会限制不能识别权限的子进程的超级用户权限。