跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中管理用户帐户和用户环境 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍了以下信息:
一项基本的系统管理任务就是在站点为每个用户设置一个用户帐户。典型的用户帐户包括在没有系统的 root 口令的情况下,用户登录和使用系统时所需的信息。用户帐户的组成部分中介绍了用户帐户组件。
在设置用户帐户时,您可以将用户添加到某个预定义的用户组中。组的典型用途是为文件和目录设置组权限,从而只允许属于该组的那些用户进行访问。
例如,可能有一个目录中包含只应当由少数几个用户访问的机密文件。您可以设置一个名为 topsecret 的组,将参与 topsecret 项目的用户包括在其中。此外,您可以为 topsecret 组设置对 topsecret 文件的读取权限。这样,只有 topsecret 组中的用户才能够读取这些文件。
角色是一种特殊类型的用户帐户,用于为选定的用户授予特殊特权。有关详细信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"基于角色的访问控制(概述)"。
用户名也称为登录名,使用它用户可以访问其各自的系统和具备适当访问权限的远程系统。必须为所创建的每个用户帐户都选择一个用户名。
建议建立一种标准方法来指定用户名,以便于跟踪它们。而且,用户名应便于用户记忆。在选择用户名时,一个简单的方案就是使用用户名字的首字母和姓氏的前七个字母。例如,Ziggy Ignatz 的用户名为 zignatz。如果使用此方案会产生重名,则可以使用用户第一个名字的首字母、中间名字的首字母和姓氏的前六个字母。例如,Ziggy Top Ignatz 的用户名为 ztignatz。
如果使用此方案仍产生重名,请考虑使用下面的方案来创建用户名:
用户第一个名字的首字母、中间名字的首字母和姓氏的前五个字母
数字 1、2 或 3,依此类推,直到用户名唯一
有关设置用户名(登录名)的详细准则,请参见用于指定用户名、用户 ID 和组 ID 的准则。
每个用户名都有一个与之相关联的用户标识 (user identification, UID) 号。UID 号在任何用户尝试登录的系统中标识用户名。系统可以使用 UID 号来标识文件和目录的属主。如果在许多不同的系统上为同一个人创建用户帐户,请始终使用相同的用户名和用户 ID 号。这样,用户可以在系统之间方便地移动文件,而不会出现所有权问题。
UID 号必须是一个小于或等于 2147483647 的整数。UID 号是一般用户帐户和特殊系统帐户所必需的。下表列出了为用户帐户和系统帐户保留的 UID 号。
表 1-1 保留的 UID 号
|
请勿指定 0 到 99 的 UID。保留这些 UID 以供 Oracle Solaris 分配。按照定义,root 总是具有 UID 0,daemon 具有 UID 1,而伪用户 bin 具有 UID 2。此外,您应该为 uucp 登录和伪用户登录(例如,who、tty 和 ttytype)提供较低的 UID,以便使它们出现在 passwd 文件的开头。
有关设置 UID 的其他准则,请参见用于指定用户名、用户 ID 和组 ID 的准则。
与用户名(登录名)一样,应采用一个方案来指定唯一的 UID 号。某些公司会指定唯一的员工编号。这样,管理员可以在员工编号的基础上添加一个编号,以便为每个员工创建一个唯一的 UID 号。
为了最大限度地降低安全风险,应当避免重新使用已删除帐户的 UID。如果必须重新使用某个 UID,请“彻底清除以前的帐户”,以便新用户不会受到先前用户属性集的影响。例如,先前的用户可能会因包含在打印机拒绝列表中而被拒绝访问打印机。但是,该属性对于新用户可能并不适合。
可以为 UID 和组 ID (group ID, GID) 指定带符号整数的最大值,即 2147483647。
下表说明了 UID 和 GID 限制。
表 1-2 较大 UID 和 GID 的限制摘要
|
组是指可共享文件和其他系统资源的用户的集合。例如,参与同一个项目的用户可以形成一个组。组在以前称作 UNIX 组。
每个组都必须有名称、组标识 (group identification, GID) 号和一个属于该组的用户名的列表。GID 号用来在系统内部标识组。
用户可属于以下两种组:
有关设置组名的详细准则,请参见用于指定用户名、用户 ID 和组 ID 的准则。
有时,用户的辅助组并不重要。例如,文件的所有权反映主组,而不反映任何辅助组。但是,其他应用程序可能会依赖用户的辅助组成员身份。例如,用户必须是 sysadmin 组(组 14)的成员才能使用以前的 Solaris 发行版中的 Admintool 软件。但是,即使组 14 为用户当前的主组,也没有关系。
groups 命令可列出用户所属的组。用户一次只能有一个主组。但是,用户可以使用 newgrp 命令,将其主组临时更改为它所属的任何其他组。
添加用户帐户时,必须为用户指定一个主组或接受缺省组 staff(组 10)。该主组应当已经存在。如果主组不存在,请按 GID 号指定主组。用户名不会添加到主组中。如果将用户名添加到主组中,列表可能会变得太长。要想将用户指定给一个新的辅助组,必须先创建一个新的辅助组并为其指定一个 GID 号。
组可能是系统上的本地组,也可能通过某个名称服务进行管理。为了简化对组的管理,应当使用名称服务(如 NIS)或目录服务(如 LDAP)。使用这些服务可以集中管理组中所有成员身份。
可以在添加用户时为用户指定口令。或者,也可以强制用户在首次登录到系统时指定口令。虽然用户名是公开的,但是口令必须保密,只能是用户自己知道。应当为每个用户帐户都指定一个口令。
用户口令必须遵循下面的语法:
口令长度至少必须与 /etc/passwd 文件中 PASSLENGTH 变量所标识的值相符。缺省情况下,该值设为 6。
在本发行版中,缺省口令散列算法已更改为 SHA256。因此,与以前的 Oracle Solaris 发行版不同,本发行版中不再有针对用户口令的八字符限制。八字符限制仅应用于使用较旧 crypt_unix(5) 算法的口令,为了向下兼容现有的 passwd 文件项和 NIS 映射,保留了该算法。
口令的最大字符数取决于算法:要么是用于旧口令的 crypt_unix 算法,要么是用于所有其他情况的 SHA256 算法。如果口令更改来自现有口令,且其为 crypt_unix 口令,则最大长度将设置为 8,除非 policy.conf 文件要求更改口令算法。
新口令必须在口令算法允许的最大字符数内符合复杂性规则。因此,如果使用 crypt_unix 算法,当键入一个包含 20 个字符的口令时,该口令必须在前 8 个字符内符合复杂性规则。如果口令算法是任一其他算法,则口令必须在输入的完整口令内符合复杂性规则,在本示例中为 20。
每一个口令都必须满足配置的复杂性约束,这些约束在 /etc/default/passwd 文件中指定。
每个口令都不得为配置的字典的成员,如 /etc/default/passwd 文件中所指定的那样。
对于支持口令历史记录检查的名称服务中的用户帐户,如果定义了先前的口令历史记录,则新口令不得包含在先前的口令历史记录中。
passwd(1) 手册页详细介绍了口令规则。
为了使计算机系统更加安全,用户应定期更改其口令。为了实现较高级别的安全,应当要求用户每六周更改一次口令。对于较低级别的安全来说,每三个月更改一次口令就足够了。系统管理登录名(例如 root 和 sys)应当每月更改一次,或者应当在知道 root 口令的员工离开公司或者换岗时进行更改。
许多计算机安全性破坏都涉及到猜测合法用户的口令。应当确保用户避免使用名词、姓名、登录名和其他只需了解该用户的一些情况就有可能猜到的口令。
最好选择如下口令:
短语 (beammeup)。
由短语中每个单词的前几个字母组成的无意义的单词。例如,用 swotrb 来替换 SomeWhere Over The RainBow。
用数字或字符替换字母的单词。例如,用 sn00py 来替换 snoopy。
请勿选择如下口令:
您的姓名(从前向后拼、从后向前拼或混杂在一起)
家庭成员的姓名或宠物的名字
汽车驾照编号
电话号码
社会安全号码
员工编号
与爱好或兴趣有关的单词
季节主题,如 Santa in December
字典中的任何单词
起始目录是文件系统的一部分,分配给用户以用于存储专用文件。为起始目录分配的空间量取决于用户所创建的文件的种类、大小和数量。
起始目录可以位于用户的本地系统上,也可以位于远程文件服务器上。在任一情况下,都应当按照惯例创建 /export/home/username 形式的起始目录。对于较大的站点,应当将起始目录存储到服务器上。请为每个用户使用一个单独的文件系统。例如,/export/home/alice 或 /export/home/bob。通过为每个用户创建单独的文件系统,您可以根据每个用户的需求设置属性或特性。
通常,无论用户的起始目录位于何处,用户都能够通过名为 /home/username 的挂载点访问其起始目录。如果起始目录是通过使用 AutoFS 挂载的,系统将不允许您在任何系统上的 /home 挂载点下面创建任何目录。当 AutoFS 处于活动状态时,系统能够识别 /home 的特殊状态。有关自动挂载起始目录的更多信息,请参见《在 Oracle Solaris 11.1 中管理网络文件系统》中的"Autofs 管理的任务概述"。
要从网络上的任何位置使用起始目录,应当始终用 $HOME(而非 /export/home/username)来引用起始目录。/export/home/username 与计算机有关。另外,在用户的起始目录中创建的任何符号链接都应使用相对路径(例如,../../../x/y/x),这样,无论起始目录挂载在何处,这些链接都有效。
有关使用 CLI 创建用户帐户时如何添加起始目录的更多信息,请参见设置用户帐户的准则。
如果要管理大型站点的用户帐户,则可能需要考虑使用名称服务或目录服务,如 LDAP 或 NIS。使用名称服务或目录服务,可以集中存储用户帐户信息,而不是将用户帐户信息存储到每个系统的 /etc 文件中。当针对用户帐户使用了某种名称服务或目录服务时,用户可以使用同一个用户帐户从一个系统移动到另一个系统,而不必在每个系统上都复制这些用户帐户的信息。使用命名服务或目录服务还可以确保用户帐户信息保持一致。
除具有用于创建和存储文件的起始目录外,用户还需要一个环境,使之可以访问完成其工作所需的工具和资源。当用户登录系统时,用户的工作环境由初始化文件确定。这些文件由用户的启动 shell 来定义,具体视发行版的不同而异。
用于管理用户工作环境的一个好的策略是,在用户的起始目录中提供定制的用户初始化文件,例如 .bash_profile、.bash_login、.kshrc 或 .profile。
注 - 请勿使用系统初始化文件(如 /etc/profile 或 /etc/.login)来管理用户的工作环境。这些文件驻留在本地系统上,不能进行集中管理。例如,如果使用 AutoFS 从网络上的任何系统挂载用户的起始目录,则必须修改每个系统上的系统初始化文件,以确保用户在系统之间切换时获得一致的环境。
有关为用户定制用户初始化文件的详细信息,请参见定制用户的工作环境。
有关如何通过 RBAC 定制用户帐户的信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"基于角色的访问控制(概述)"了解更多信息。
用户名、UID 和 GID 在您的组织(可能跨多个域)中应当是唯一的。
在创建用户名或角色名、UID 和 GID 时,请牢记以下准则:
用户名-应包含二到八个字母和数字。第一个字符应当为字母。至少有一个字符应当为小写字母。
注 - 尽管用户名可以包含句点 (.)、下划线 (_) 或连字符 (-),但是由于它们可能会导致某些软件产品出现问题,所以建议不要使用这些字符。
系统帐户-请勿使用包含在缺省文件 /etc/passwd 和 /etc/group 中的任何用户名、UID 或 GID。请不要使用 0 到 99 的 UID 和 GID。这些数字保留供 Oracle Solaris 进行分配,任何人都不应当使用它们。请注意,此限制还适用于当前未使用的数字。
例如,gdm 是为 GNOME Display Manager 守护进程保留的用户名和组名,其他用户不应使用它。有关缺省的 /etc/passwd 和 /etc/group 项的完整列表,请参见表 1-3 和表 1-4。
请勿将 nobody 和 nobody4 帐户用于正在运行的进程。这两个帐户是为 NFS 保留的。如果针对正在运行的进程使用这些帐户,可能会产生意外的安全风险。需要以非 root 用户身份运行的进程应使用 daemon 或 noaccess 帐户。
系统帐户配置-请勿更改缺省系统帐户的配置。这包括更改当前处于锁定状态的系统帐户的登录 shell。但是,为 root 帐户设置口令和口令生命期参数除外。
注 - 更改锁定的用户帐户的口令会更改口令,但不再同时解除锁定帐户。现在需要执行一个额外步骤,即使用 passwd -u 命令解除锁定帐户。