在 Oracle® Solaris 11.2 中确保用户和进程的安全

退出打印视图

更新时间: 2014 年 7 月
 
 

特权指定

术语“privilege(特权)”通常表示权限有所增加。由于 Oracle Solaris 系统上的每个进程都使用某些权限运行,您可以通过删除特权减少某个进程的权限。在此发行版中,您还可以使用扩展特权策略删除缺省授予特定资源的特权之外的大多数特权。

为用户和进程指定特权

安全管理员负责指定特权。现有的权限配置文件包含已经指定给配置文件中的命令的特权。您之后可以将权限配置文件指定给一个角色或用户。

特权还可以直接指定给用户、角色或权限配置文件。如果您信任某些用户能够在其整个会话中会负责地使用某种特权,则可以直接指定该特权。适合直接指定的特权是具有有限影响的特权,如 proc_clock_highres。不适合直接指定的特权是具有广泛影响的特权,如 file_dac_write。有关更全面的论述,请参见指定权限时的安全注意事项

还可以拒绝用户、角色或进程行使某些特权。从用户或角色的初始可继承特权集合或限制特权集合中删除特权时必须小心谨慎。

扩展用户或角色的特权

用户和角色具有可继承特权集合。只能减少限制特权集合中的特权,因为限制特权集合最初包括所有特权。通过指定不在初始可继承特权集合中的特权,可以为用户、角色和进程扩展该特权集合。

    您可以通过三种方法扩展可用的特权:

  • 可以将不在初始可继承特权集合中、但是在限制特权集合中的特权指定给进程。可以进行间接指定(通过权限配置文件中的特权命令),也可以进行直接指定。

  • 可显式将不属于可继承特权集合的特权指定给某个进程,例如为脚本或应用程序添加特权。

  • 可显式将不属于可继承特权集合但属于限制特权集合的特权指定给网络端口、UID 或文件对象。特权的这种用法称为扩展特权策略,这同样是一种限制可用特权的方法。有关详细信息,请参见使用扩展特权策略限制特权使用

将特权只指定给需要该特权的管理任务是扩展用户或角色的特权的最精确方法。创建包含命令或脚本及其所需特权的权限配置文件。然后将此权限配置文件指定给用户或角色。通过指定,用户或角色可以运行特权命令。否则用户将无法获得此特权。

扩展用户或角色的初始可继承特权集合是一种不太可取的特权指定方法。可继承特权集合中的所有特权都位于允许特权集合和有效特权集合中。用户或角色在 shell 中键入的所有命令都可以使用直接指定的特权。有关更全面的论述,请参见指定权限时的安全注意事项

要降低不必要的特权的可用性,您可以将扩展特权指定给网络端口、UID 和文件对象。这种指定可以从有效特权集合中删除不属于扩展特权指定的特权。有关讨论,请参见使用扩展特权策略限制特权使用

限制用户或角色的特权

特权和权限配置文件还可以应用于不可信用户,以限制他们的权限。通过删除特权,您可以防止用户和角色执行特定任务。可以从初始可继承特权集合和限制特权集合中删除特权。在分配小于缺省特权集合的初始可继承特权集合或限制特权集合之前,应谨慎地测试特权删除操作。通过从初始可继承特权集合中删除特权,可以阻止用户登录。如果从限制特权集合中删除了特权,传统的 setuid root 程序可能会失败,因为该程序所需的特权已被删除。有关删除特权的示例,请参见Example 3–21Example 5–6

要限制用户 ID、端口或文件对象可用的特权,请参见使用扩展特权策略限制特权使用

为脚本指定特权

与命令类似,脚本是可执行文件。因此,在权限配置文件中,可以为脚本添加特权,就像为命令添加特权一样。当指定有权限配置文件的用户或角色在配置文件 shell 中执行脚本时,将会使用添加的特权来运行该脚本。如果脚本包含需要特权的命令,则具有已添加特权的命令也必须在指定的权限配置文件中。有关示例,请参见向应用程序和脚本指定权限

使用扩展特权策略限制特权使用

通过扩展特权策略,除了基本特权和您显式授予的特权之外,对端口、用户 ID 或文件对象的访问会受到限制。由于特权较少,难以轻易使用该资源攻击系统。事实上,用户可以防止可能的恶意进程访问所拥有的文件和目录。有关扩展特权策略的示例,请参见将应用程序、脚本和资源限定于特定权限