本节讲述 Solaris 8 操作环境中影响系统安全性及文件系统和目录拥有权的新特征。
"Solaris 智能卡"特征执行"开放式卡框架"(OCF) 1.1 标准。安全管理员可以使用此技术保护计算机桌面或单个应用程序,其方法是要求用户使弥悄芸ń?凶晕胰现ぁC扛鲇?Solaris 智能卡"保护的主机都需要一个读卡器。要访问受保护的桌面或应用程序,用户首先要将他们的卡插入读卡器,然后键入卡的 PIN。主机使用嵌入在卡上的 PIN 和用户的口令来检验用户和他们所声称的身份是否相符。
"Solaris 智能卡"支持两个外部读卡器,"Sun 智能读卡器 I"和"iButton 读卡器"。支持三种智能卡:Payflex 智能卡和基于 Java 的 iButton、Cyberflex 卡 。
" "告诉安全管理员如何为他们的站点设置智能卡支持。同时,它还为用户介绍智能卡的技术。
与以前的版本相比,Solaris 8 发行版本中的许多系统文件和目录有不同的缺省拥有权和更严格的许可。缺省拥有权和许可更改为:
缺省文件和目录拥有权已经由 bin 更改为 root
以前缺省许可为 775 的文件和目录,现在的缺省许可为 755
以前缺省许可为 664 的文件和目录,现在的缺省许可为 644
系统的缺省 umask 为 022
创建一个用来添加到运行 Solaris 8 发行版本的系统中的软件包时,请记住下列各点:
所有文件和目录都必须以超级用户作为缺省属主
目录和可执行文件的缺省许可必须为 555 或 755
普通文件的缺省许可必须为 644 或 444
除非属主为超级用户,否则属主不能写 set-uid 和 set-gid 文件
这些更改并非适用于此发行版本的所有文件和目录;例如,这些更改不适用于 OpenWindows 或 CDE 文件和目录。
传统的基于超级用户的系统给任何可以成为超级用户的人授予超级用户全权。Solaris 8 操作环境中有了基于角色的访问控制 (RBAC),网络管理员就可以给一般用户分配有限的管理能力。这是通过三个新特征来实现的:
授权 -- 用户授予到一个受限制功能的访问权的权利
执行概要 -- 用于编组授权的捆绑机制和带特殊属性的命令,通常的超级用户 ID
角色 -- 用于执行管理任务集的特殊类型的用户帐户。
管理员为特定任务或任务集创建包含授权和特权命令的执行概要。此概要可以直接指定给一个用户或一个角色。角色反过来又被指定给用户。要访问角色,被指定角色的用户要执行 su 命令。个别职责更改时,角色有共享帐户 (不需要更新) 的优点。下列新文件支持 RBAC:
/etc/user_attr -- 存储与用户和角色相关的扩展的安全性属性
/etc/security/auth_attr -- 列出并描述授权
/etc/security/prof_attr -- 列出执行概要和相关的授权
/etc/security/exec_attr -- 使执行属性和执行概要相关联
/etc/security/policy.conf -- 为用户级属性提供安全性策略配置
有关详细信息,请参见
文件 /etc/security/audit_user 存储用户和角色的审计预选类,现在名称切换中支持此文件。现在已经不必在用户有访问权的每个系统上都为用户建立审计事件。
此特征提供 Kerberos V5 客户端基础结构,作为对"可插接认证模块"(PAM) 和可用于保证基于 RPC 应用程序 (如 NFS) 的安全的公用程序的补充 。Kerberos 提供可选择的强大的用户或服务器级认证、完整性或保密性支持。Kerberos 客户机可以与"Sun 企业认证机制"(SEAM) (SEAS 3.0 的一部分) 或其他 Kerberos V5 软件 (例如,MIT 分发) 联合使用以创建完整的单网络启动方案。
有关详细信息,请参见 。
实时系统增强本节讲述 Solaris 8 操作环境中影响实时进程的新特征。
高分辨率计时器 (HRT) 绕过传统的 10 毫秒时钟接口,来从硬件揭示物理时钟中断的精细度。这样,HRT 接口就使实时进程能够控制 (多处理器系统中的) 一个处理器并在计时事件中以任何所需的精度运行。
这是使传统的实时应用程序能够在 Solaris 环境下运行的所需要的最后一个元素。
有关详细信息,请参见 System Interface Guide
实时 (RT) 应用程序在实时调度类中可以一次运行不止一个线程。低优先级的实时线程有可能获取此时由高优先级的实时线程要求的互斥锁。高优先级线程此时必须等待拥有互斥锁的低优先级线程结束然后将其释放。这种状况称作"优先级颠倒"。
实时线程特征执行 POSIX 接口 (以前只是其中的伪接口),此类接口允许高优先级线程将其优先级"借给"低优先级线程,直到它释放互斥锁为止。
使用优先级继承或优先级上舍入函数锁定的实时线程应该使用 PTHREAD_SCOPE_SYSTEM 调度范围 (或者绑定的线程)。解开的线程使用的是 PTHREAD_SCOPE_PROCESS 调度,这不合乎实时应用程序的需要。
有关详细信息,请参见 Multithreaded Programming Guide。