JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:常见任务     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  查找有关 Oracle Solaris 命令的信息

2.  管理用户帐户和组(概述)

用户帐户和组的新增功能

取消了对 Solaris Management Console 的支持

缺省口令散列算法

什么是用户帐户和组?

用户帐户的组成部分

用户名(登录名)

用户 ID 号

使用较大的用户 ID 和组 ID

UNIX 组

用户口令

起始目录

命名服务

用户的工作环境

用于指定用户名、用户 ID 和组 ID 的准则

用户帐户信息和组信息的存储位置

passwd 文件中的字段

缺省的 passwd 文件

shadow 文件中的字段

group 文件中的字段

缺省的 group 文件

用于管理用户和组帐户的命令行工具

定制用户的工作环境

使用站点初始化文件

避免引用本地系统

Shell 功能

Bash Shell 和 ksh93 Shell 历史记录

Bash Shell 和 ksh93 Shell 环境变量

定制 Bash Shell

关于 MANPATH 环境变量

PATH 变量

路径的设置准则

语言环境变量

缺省的文件权限 (umask)

定制用户初始化文件

3.  管理用户帐户和组(任务)

4.  引导和关闭 Oracle Solaris 系统

5.  使用 Oracle Configuration Manager

6.  管理服务(概述)

7.  管理服务(任务)

8.  使用 Fault Manager

9.  管理系统信息(任务)

10.  管理系统进程(任务)

11.  监视系统性能(任务)

12.  管理软件包(任务)

13.  管理磁盘使用(任务)

14.  调度系统任务(任务)

15.  使用 CUPS 设置和管理打印机(任务)

16.  管理系统控制台、终端设备和电源服务(任务)

17.  管理系统故障转储信息(任务)

18.  管理核心文件(任务)

19.  系统和软件问题的故障排除(任务)

20.  其他系统和软件问题的故障排除(任务)

索引

什么是用户帐户和组?

一项基本的系统管理任务就是在站点为每个用户设置一个用户帐户。典型的用户帐户包括在没有系统的 root 口令的情况下,用户登录和使用系统时所需的信息。用户帐户的组成部分中介绍了用户帐户组件。

在设置用户帐户时,您可以将用户添加到某个预定义的用户组中。组的典型用途是为文件和目录设置组权限,从而只允许属于该组的那些用户进行访问。

例如,可能有一个目录中包含只应当由少数几个用户访问的机密文件。您可以设置一个名为 topsecret 的组,将参与 topsecret 项目的用户包括在其中。此外,您可以为 topsecret 组设置对 topsecret 文件的读取权限。这样,只有 topsecret 组中的用户才能够读取这些文件。

角色是一种特殊类型的用户帐户,用于为选定的用户授予特殊特权。有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"基于角色的访问控制(概述)"

用户帐户的组成部分

以下几节介绍了用户帐户的各个组件。

用户名(登录名)

用户名也称为登录名,使用它用户可以访问其各自的系统和具备适当访问权限的远程系统。必须为所创建的每个用户帐户都选择一个用户名。

建议建立一种标准方法来指定用户名,以便于跟踪它们。而且,用户名应便于用户记忆。在选择用户名时,一个简单的方案就是使用用户名字的首字母和姓氏的前七个字母。例如,Ziggy Ignatz 的用户名为 zignatz。如果使用此方案会产生重名,则可以使用用户第一个名字的首字母、中间名字的首字母和姓氏的前六个字母。例如,Ziggy Top Ignatz 的用户名为 ztignatz

如果使用此方案仍产生重名,请考虑使用下面的方案来创建用户名:


注 - 每个新的用户名都必须不同于系统或者 NIS 或 NIS 域已知的任何邮件别名。否则,邮件可能会传送到使用该别名的用户(而非实际用户)。


有关设置用户名(登录名)的详细准则,请参见用于指定用户名、用户 ID 和组 ID 的准则

用户 ID 号

每个用户名都有一个与之相关联的用户标识 (user identification, UID) 号。UID 号在任何用户尝试登录的系统中标识用户名。系统可以使用 UID 号来标识文件和目录的属主。如果在许多不同的系统上为同一个人创建用户帐户,请始终使用相同的用户名和用户 ID 号。这样,用户可以在系统之间方便地移动文件,而不会出现所有权问题。

UID 号必须是一个小于或等于 2147483647 的整数。UID 号是一般用户帐户和特殊系统帐户所必需的。下表列出了为用户帐户和系统帐户保留的 UID 号。

表 2-1 保留的 UID 号

UID 号
用户帐户或登录帐户
说明
0 – 99
rootdaemonbinsys,等等
保留供操作系统使用
100 – 2147483647
一般用户
通用帐户
60001 和 65534
nobodynobody4
匿名用户
60002
noaccess
不可信用户

请勿指定 0 到 99 的 UID。保留这些 UID 以供 Oracle Solaris 分配。按照定义,root 总是具有 UID 0,daemon 具有 UID 1,而伪用户 bin 具有 UID 2。此外,您应该为 uucp 登录和伪用户登录(例如,whottyttytype)提供较低的 UID,以便使它们出现在 passwd 文件的开头。

有关设置 UID 的其他准则,请参见用于指定用户名、用户 ID 和组 ID 的准则

与用户名(登录名)一样,应采用一个方案来指定唯一的 UID 号。某些公司会指定唯一的员工编号。这样,管理员可以在员工编号的基础上添加一个编号,以便为每个员工创建一个唯一的 UID 号。

为了最大限度地降低安全风险,应当避免重新使用已删除帐户的 UID。如果必须重新使用某个 UID,请“彻底清除以前的帐户”,以便新用户不会受到先前用户属性集的影响。例如,先前的用户可能会因包含在打印机拒绝列表中而被拒绝访问打印机。但是,该属性对于新用户可能并不适合。

使用较大的用户 ID 和组 ID

可以为 UID 和组 ID (group ID, GID) 指定带符号整数的最大值,即 2147483647。

下表说明了 UID 和 GID 限制。

表 2-2 较大 UID 和 GID 的限制摘要

UID 或 GID
限制
262144 或更大
使用具有缺省归档格式的 cpio 命令复制文件的用户,会看到系统针对每个文件都返回一条错误消息。而且,归档中的 UID 和 GID 被设置为 nobody
2097152 或更大
使用具有 -H odc 格式的 cpio 命令或者使用 pax -x cpio 命令复制文件的用户,会看到系统针对每个文件都返回一条错误消息。而且,归档中的 UID 和 GID 被设置为 nobody
1000000 或更大
使用 ar 命令的用户,其归档中的 UID 和 GID 设置为 nobody
2097152 或更大
使用 tar 命令、cpio -H ustar 命令或 pax -x tar 命令的用户,其 UID 和 GID 设置为 nobody

UNIX 组

是指可共享文件和其他系统资源的用户的集合。例如,参与同一个项目的用户可以形成一个组。组在以前称作 UNIX 组。

每个组都必须有名称、组标识 (group identification, GID) 号和一个属于该组的用户名的列表。GID 号用来在系统内部标识组。

用户可属于以下两种组:

有关设置组名的详细准则,请参见用于指定用户名、用户 ID 和组 ID 的准则

有时,用户的辅助组并不重要。例如,文件的所有权反映主组,而不反映任何辅助组。但是,其他应用程序可能会依赖用户的辅助组成员身份。例如,用户必须是 sysadmin 组(组 14)的成员才能使用以前的 Solaris 发行版中的 Admintool 软件。但是,如果组 14 是用户的当前主组,则辅助组变得无关紧要。

groups 命令可列出用户所属的组。用户一次只能有一个主组。但是,用户可以使用 newgrp 命令,将其主组临时更改为它所属的任何其他组。

添加用户帐户时,必须为用户指定一个主组或接受缺省组 staff(组 10)。该主组应当已经存在。如果主组不存在,请按 GID 号指定主组。用户名不会添加到主组中。如果将用户名添加到主组中,列表可能会变得太长。要想将用户指定给一个新的辅助组,必须先创建一个新的辅助组并为其指定一个 GID 号。

组可能是系统上的本地组,也可能通过某个名称服务进行管理。为了简化对组的管理,应当使用名称服务(如 NIS)或目录服务(如 LDAP)。使用这些服务可以集中管理组中所有成员身份。

用户口令

可以在添加用户时为用户指定口令。也可以强制用户在首次登录时指定口令。

用户口令必须遵循下面的语法:

尽管用户名是公开的,但口令必须保密且只能由用户知道。应当为每个用户帐户都指定一个口令。


注 - 在 Oracle Solaris 11 中,缺省口令散列算法已更改为 SHA256。因此,与以前的 Oracle Solaris 发行版不同,本发行版中不再有针对用户口令的八字符限制。八字符限制仅应用于使用较旧 crypts_unix(5) 算法的口令,为了向下兼容现有的 passwd 文件项和 NIS 映射,保留了该算法。

口令现已通过使用其他 crypt(3c) 算法之一进行编码,这些算法包括 Solaris 11 policy.conf 文件中作为缺省算法的 SHA256 算法。因此,口令现在的长度远远超过八个字符。


为了使计算机系统更加安全,用户应定期更改其口令。为了实现较高级别的安全,应当要求用户每六周更改一次口令。对于较低级别的安全来说,每三个月更改一次口令就足够了。系统管理登录名(例如 rootsys)应当每月更改一次,或者应当在知道 root 口令的员工离开公司或者换岗时进行更改。

许多计算机安全性破坏都涉及到猜测合法用户的口令。应当确保用户避免使用名词、姓名、登录名和其他只需了解该用户的一些情况就有可能猜到的口令。

最好选择如下口令:

请勿选择如下口令:

有关与任务相关的信息,请参见如何添加用户

起始目录

起始目录是文件系统的一部分,分配给用户以用于存储专用文件。为起始目录分配的空间量取决于用户所创建的文件的种类、大小和数量。

起始目录可以位于用户的本地系统上,也可以位于远程文件服务器上。在任一情况下,都应当按照惯例创建 /export/home/username 形式的起始目录。对于较大的站点,应当将起始目录存储到服务器上。请为每个用户使用一个单独的文件系统。例如,/export/home/alice/export/home/bob。通过为每个用户创建单独的文件系统,您可以根据每个用户的需求设置属性或特性。

通常,无论用户的起始目录位于何处,用户都能够通过名为 /home/username 的挂载点访问其起始目录。如果起始目录是通过使用 AutoFS 挂载的,系统将不允许您在任何系统上的 /home 挂载点下面创建任何目录。当 AutoFS 处于活动状态时,系统能够识别 /home 的特殊状态。有关自动挂载起始目录的更多信息,请参见《Oracle Solaris 管理:网络服务》中的"Autofs 管理的任务概述"

要从网络上的任何位置使用起始目录,应当始终用 $HOME(而非 /export/home/username)来引用起始目录。/export/home/username 与计算机有关。另外,在用户的起始目录中创建的任何符号链接都应使用相对路径(例如,../../../x/y/x),这样,无论起始目录挂载在何处,这些链接都有效。

命名服务

如果要管理大型站点的用户帐户,则可能需要考虑使用名称服务或目录服务,如 LDAP 或 NIS。使用名称服务或目录服务,可以集中存储用户帐户信息,而不是将用户帐户信息存储到每个系统的 /etc 文件中。当针对用户帐户使用了某种名称服务或目录服务时,用户可以使用同一个用户帐户从一个系统移动到另一个系统,而不必在每个系统上都复制这些用户帐户的信息。使用命名服务或目录服务还可以确保用户帐户信息保持一致。

用户的工作环境

除具有用于创建和存储文件的起始目录外,用户还需要一个环境,使之可以访问完成其工作所需的工具和资源。当用户登录系统时,用户的工作环境由初始化文件确定。这些文件由用户的启动 shell 来定义,具体视发行版的不同而异。

用于管理用户工作环境的一个好的策略是,在用户的起始目录中提供定制的用户初始化文件,例如 .bash_profile.bash_login.kshrc.profile


注 - 请勿使用系统初始化文件(如 /etc/profile/etc/.login)来管理用户的工作环境。这些文件驻留在本地系统上,不能进行集中管理。例如,如果使用 AutoFS 从网络上的任何系统挂载用户的起始目录,则必须修改每个系统上的系统初始化文件,以确保用户在系统之间切换时获得一致的环境。


有关为用户定制用户初始化文件的详细信息,请参见定制用户的工作环境

有关如何通过 Oracle Solaris 的基于角色的访问控制 (role-based access control, RBAC) 功能来定制用户帐户的更多信息,请参见《Oracle Solaris 管理:安全服务》中的"基于角色的访问控制(概述)"

用于指定用户名、用户 ID 和组 ID 的准则

用户名、UID 和 GID 在您的组织(可能跨多个域)中应当是唯一的。

在创建用户名或角色名、UID 和 GID 时,请牢记以下准则: