系统管理指南:基本管理

第 5 章 管理用户帐户和组(任务)

本章介绍如何设置和维护用户帐户与组。

有关与设置和维护用户帐户和组相关过程的信息,请参见以下内容:

有关与设置和维护用户帐户和组相关过程的信息,请参见设置用户帐户(任务图)

有关管理用户帐户和组的背景信息,请参见第 4 章

设置用户帐户(任务图)

任务 

说明 

参考 

收集用户信息。 

使用标准表单收集用户信息有助于组织用户信息。 

收集用户信息

自定义用户初始化文件。 

可以设置用户初始化文件(.cshrc.profile.login),以便为新用户提供一致的环境。

如何自定义用户初始化文件

添加组。 

使用 Oracle Solaris 命令行界面工具添加组。 

如何用 Solaris Management Console 的“群组”工具添加组

用命令行工具添加组和用户

添加用户。 

可以用下列工具添加用户: 

Solaris Management Console 的“用户”工具 

Solaris 命令行界面工具 

如何用 Solaris Management Console 的“用户”工具添加用户

用命令行工具添加组和用户

设置用户模板。 

可以创建用户模板,以便无需手动添加所有类似的用户属性。 

请参见 Solaris Management Console 联机帮助 

为用户添加权限或角色。 

可以为用户添加权限或角色,以便用户可以执行特定的命令或任务。 

请参见 Solaris Management Console 联机帮助 

共享用户的起始目录。 

必须共享用户的起始目录,以便从用户的系统远程挂载该目录。  

如何共享用户的起始目录

挂载用户的起始目录。 

必须在用户的系统上挂载用户的起始目录。 

如何挂载用户的起始目录

收集用户信息

可以创建一个如下所示的表单,以便在添加用户帐户之前收集有关用户的信息。

项 

说明 

用户名: 

 

角色名: 

 

配置文件或授权: 

 

UID: 

 

主组: 

 

辅助组: 

 

注释: 

 

缺省 Shell: 

 

口令状态和更新: 

 

起始目录的路径名: 

 

挂载方法: 

 

起始目录的权限: 

 

邮件服务器: 

 

部门名称: 

 

部门管理员: 

 

经理: 

 

员工姓名: 

 

员工职务: 

 

员工状态: 

 

员工编号: 

 

开始日期: 

 

添加到下列邮件别名中: 

 

桌面系统名称: 

 

Procedure如何自定义用户初始化文件

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 为每种类型的用户创建一个框架目录。


    # mkdir /shared-dir/skel/user-type
    
    shared-dir

    可供网络上的其他系统使用的目录名称。

    user-type

    要用来存储某种类型用户的初始化文件的目录名称。

  3. 将缺省的用户初始化文件复制到为不同类型的用户创建的目录中。


    # cp /etc/skel/local.cshrc /shared-dir/skel/user-type/.cshrc
    # cp /etc/skel/local.login /shared-dir/skel/user-type/.login
    # cp /etc/skel/local.profile /shared-dir/skel/user-type/.profile
    

    注 –

    如果为帐户指定了配置文件,则用户必须启动特殊版本的配置文件 shell 才能使用指定给配置文件的命令(具有任何安全属性)。有三种与 shell 类型对应的配置文件 shellpfsh (Bourne shell)、pfcsh (C shell) 和 pfksh (Korn shell)。有关配置文件 shell 的信息,请参见《系统管理指南:安全性服务》中的“基于角色的访问控制(概述)”


  4. 编辑每种用户类型的用户初始化文件,并根据系统需要自定义这些文件。

    有关用户初始化文件自定义方法的详细说明,请参见自定义用户的工作环境

  5. 设置用户初始化文件的权限。


    # chmod 744 /shared-dir/skel/user-type/.*
    
  6. 验证用户初始化文件的权限是否正确。


    # ls -la /shared-dir/skel/*
    

示例 5–1 自定义用户初始化文件

下面的示例说明如何自定义 /export/skel/enduser 目录中为特定类型的用户指定的 C shell 用户初始化文件。有关 .cshrc 文件的示例,请参见示例 4–3


# mkdir /export/skel/enduser
# cp /etc/skel/local.cshrc /export/skel/enduser/.cshrc
 
(Edit .cshrc file)
# chmod 744 /export/skel/enduser/.*

Procedure如何用 Solaris Management Console 的“群组”工具添加组

在添加组时可以向组中添加现有用户。也可以只是添加组,然后在添加用户时向组中添加用户。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户”图标并提供超级用户口令或角色口令。

  7. 单击“组”图标。从“操作”菜单中选择“添加组”。

    使用上下文帮助向系统中添加组。

  8. 在“组标识”下面的“组名”提示符处标识组名。

    例如,mechanoids

  9. 在“组 ID 号”提示符处标识组编号。

    例如,GID 101。

  10. 单击“确定”。

Procedure如何用 Solaris Management Console 的“用户”工具添加用户

通过以下过程,用 Solaris Management Console 的“用户”工具添加用户。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户”图标并提供超级用户口令或角色口令。

  7. 单击“用户帐户”图标。

    使用上下文帮助向系统中添加用户。

  8. 从“操作”菜单中选择“新增用户”->“使用向导”。

    在下面的每个步骤中单击“下一步”。

    1. 在“用户名”提示符处标识用户名或登录名。

      例如,kryten

    2. (可选)在“全名”提示符处标识用户的全名。

      例如,kryten series 3000

    3. (可选)在“说明”提示符处提供此用户进一步的说明。

    4. 在“用户 ID 号”提示符处提供用户 ID。

      例如,1001

    5. 选中“用户在首次登录时必须使用此口令”选项。

    6. 出现口令提示时,为用户提供口令。

    7. 出现确认口令提示时,请确认口令。

    8. 选择用户的主组。

      例如,mechanoids

    9. 通过在“服务器”和“路径”提示符处接受缺省值来创建用户的起始目录。

    10. 指定邮件服务器。

    11. 检查您刚才提供的信息,如有需要,返回更正任何错误信息。

    12. 单击“完成”。

用命令行工具添加组和用户

本节说明如何使用命令行工具添加用户和组。

groupadduseradd 命令添加组和用户

下面的示例说明如何使用 groupadduseradd 命令向本地系统上的文件中添加 scutters 组和 scutter1 用户。这些命令不能用来在名称服务环境中管理用户。


# groupadd -g 102 scutters
# useradd -u 1003 -g 102 -d /export/home/scutter1 -s /bin/csh \
-c "Scutter 1" -m -k /etc/skel scutter1
64 blocks

有关更多信息,请参见 groupadd(1M)useradd(1M) 手册页。

smgroupsmuser 命令添加组和用户

下面的示例说明如何使用 smgroupsmuser 命令来向 starlite 主机上的 NIS 域 solar.com 中添加 camille 用户和 gelfs 组。


# /usr/sadm/bin/smgroup add -D nis:/starlitesolar.com -- -g 103 -n gelfs
# /usr/sadm/bin/smuser add -D nis:/starlite/solar.com -- -u 1004 
-n camille -c "Camille G." -d /export/home/camille -s /bin/csh -g gelfs

有关更多信息,请参见 smgroup(1M)smuser(1M) 手册页。

用 Solaris Management Console 设置起始目录

在使用 Solaris Management Console 管理用户的起始目录时,请牢记以下几点:

Procedure如何共享用户的起始目录

可使用以下过程共享用户的起始目录。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 检验 mountd 守护进程是否正在运行。

    在该发行版中,现在 mountd 作为 NFS 服务器服务的一部分启动。要查看 mountd 守护进程是否正在运行,请键入以下命令:


    # svcs network/nfs/server
    STATE          STIME    FMRI
    online         Aug_26   svc:/network/nfs/server:default
  3. 如果 mountd 守护进程未在运行,请启动。


    # svcadm network/nfs/server
    
  4. 列出在系统上共享的文件系统。


    # share
    
  5. 基于包含用户起始目录的文件系统是否已共享执行下列操作之一:

    1. 如果用户的起始目录已经共享,请转至步骤 8。

    2. 如果用户的起始目录未共享,请转至步骤 6

  6. 编辑 /etc/dfs/dfstab 文件并添加以下行:


    share -F nfs /file-system
    

    /file-system 是包含需要共享的用户起始目录的文件系统。根据约定,文件系统是 /export/home

  7. 共享列在 /etc/dfs/dfstab 文件中的文件系统。


    # shareall -F nfs
    

    此命令执行 /etc/dfs/dfstab 文件中的所有 share 命令,这样,您就不必等待重新引导系统。

  8. 验证用户的起始目录是否已共享。


    # share
    

示例 5–2 共享用户的起始目录

下面的示例说明如何共享 /export/home 目录。


# svcs network/nfs/server
# svcadm network/nfs/server
# share
# vi /etc/dfs/dfstab
 
(The line share -F nfs /export/home is added.)
# shareall -F nfs
# share
-               /usr/dist                  ro   "" 
-               /export/home/user-name     rw   ""  

另请参见

如果用户的系统上没有用户起始目录,则必须从用户起始目录所在的系统挂载它。有关详细说明,请参见如何挂载用户的起始目录

Procedure如何挂载用户的起始目录

有关自动挂载起始目录的信息,请参见《系统管理指南:网络服务》中的“Autofs 管理的任务概述”

  1. 确保用户的起始目录已共享。

    有关更多信息,请参见如何共享用户的起始目录

  2. 以超级用户身份登录用户的系统。

  3. 编辑 /etc/vfstab 文件并为用户起始目录创建一个项。


    system-name:/export/home/user-name - /export/home/username nfs - yes rw
    system-name

    起始目录所在系统的名称。

    /export/home/username

    要共享的用户起始目录的名称。根据约定,/export/home/username 包含用户的起始目录。但是,可以使用其他文件系统。

    -

    项中必需的占位符。

    /export/home/username

    在其中挂载用户起始目录的目录名称。

    有关向 /etc/vfstab 文件中添加项的更多信息,请参见《系统管理指南:设备和文件系统》中的“挂载文件系统”

  4. 为用户的起始目录创建挂载点。


    # mkdir -p /export/home/username
    
  5. 挂载用户的起始目录。


    # mountall
    

    将挂载当前 vfstab 文件(该文件的 mount at boot 字段设置为 yes)中的所有项。

  6. 验证起始目录是否已挂载。


    # mount | grep username
    

示例 5–3 挂载用户的起始目录

下面的示例说明如何挂载 ripley 用户的起始目录。


# vi /etc/vfstab
 
(The line venus:/export/home/ripley - /export/home/ripley
nfs - yes rw is added.)
# mkdir -p /export/home/ripley
# mountall
# mount
/ on /dev/dsk/c0t0d0s0 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=...
/devices on /devices read/write/setuid/dev=46c0000 on Thu Jan  8 09:38:19 2004
/usr on /dev/dsk/c0t0d0s6 read/write/setuid/intr/largefiles/xattr/onerror=panic/dev=...
/proc on /proc read/write/setuid/dev=4700000 on Thu Jan  8 09:38:27 2004
/etc/mnttab on mnttab read/write/setuid/dev=47c0000 on Thu Jan  8 09:38:27 2004
/dev/fd on fd read/write/setuid/dev=4800000 on Thu Jan  8 09:38:30 2004
/var/run on swap read/write/setuid/xattr/dev=1 on Thu Jan  8 09:38:30 2004
/tmp on swap read/write/setuid/xattr/dev=2 on Thu Jan  8 09:38:30 2004
/export/home on /dev/dsk/c0t0d0s7 read/write/setuid/intr/largefiles/xattr/onerror=...
/export/home/ripley on venus:/export/home/ripley remote/read/write/setuid/xattr/dev=...

维护用户帐户(任务图)

任务 

说明 

说明 

修改组。 

可以使用“群组”工具修改组的名称或组中的用户。 

如何修改组

删除组。 

可以删除不再需要的组。 

如何删除组

修改用户帐户。 

禁用用户帐户: 

可临时禁用将来会需要的用户帐户。 

更改用户的口令: 

可能需要在用户忘记其口令时更改该口令。 

设置口令生命期: 

可通过“用户帐户”工具的“口令选项”菜单强制用户定期更改其口令。 

如何禁用用户帐户

 

 

 

如何更改用户口令

 

 

 

如何为用户帐户设置口令生命期

删除用户帐户。 

可以删除不再需要的用户帐户。 

如何删除用户帐户

修改用户帐户

除非定义的用户名或 UID 号与现有的用户名或 UID 号冲突,否则永远不需要修改用户帐户的用户名或 UID 号。

如果两个用户帐户具有相同的用户名或 UID 号,请执行以下步骤:

如果使用“用户”工具来更改用户名,则起始目录的拥有权将会改变(如果存在该用户的起始目录)。

用户的组成员是用户帐户的可更改部分。要添加或删除用户辅助组,请选择用户工具“操作”菜单中的“属性”选项。也可以使用“群组”工具直接修改组的成员列表。

还可以修改用户帐户的以下部分:

禁用用户帐户

有时,您可能需要临时或永久禁用某个用户帐户。禁用或锁定用户帐户表示为用户帐户指定无效口令 (*LK*),从而禁止用户以后登录。

要禁用用户帐户,最简单的方法就是使用“用户”工具锁定帐户的口令。

还可以在“用户属性”屏幕的“帐户可用性”部分中输入截止日期。使用生命期日期可以为帐户设置活动时限。

禁用用户帐户的其他方法:设置口令生命期或更改用户口令。

删除用户帐户

使用“用户”工具删除用户帐户时,该软件将删除 passwdgroup 文件中的项,用户起始目录和邮件目录中的文件也将同时删除。

Procedure如何修改组

可使用以下过程修改组。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户”图标。

  7. 提供超级用户口令或角色口令。

  8. 单击“组”图标。

  9. 选择要修改的组。

    例如,选择 scutters

  10. 在“组名:”文本框中修改选定的组 。完成时单击“确定”。

    例如,将 scutters 更改为 scutter

    现在,位于 scutters 组中的所有用户都在 scutter 组中。

Procedure如何删除组

可使用以下过程删除组。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户”图标。

  7. 提供超级用户口令或角色口令。

  8. 单击“组”图标。

  9. 选择要删除的组。

    例如,选择 scutter

  10. 在弹出窗口中单击“确定”。

    该组将从其所有的成员用户中删除。

管理口令

可以使用“用户”工具来管理口令。此工具包括下列功能:


注 –

NIS 名称服务不支持口令生命期。


使用口令生命期

如果使用 NIS+ 或 /etc 文件来存储用户帐户信息,可以为用户口令设置口令生命期。从 Solaris 9 12/02 发行版开始,LDAP 目录服务中也支持口令生命期。

借助于口令生命期,可以强制用户定期更改其口令,或防止用户在指定的时间间隔之前更改口令。如果希望阻止入侵者使用旧帐户或不活动帐户获取对系统未经检测的访问权限,还可以在帐户被禁用时设置口令生命期日期。可以用 passwd 命令或 Solaris Management Console 的“用户”工具设置口令生命期属性。

有关启动 Solaris Management Console 的信息,请参见如何以超级用户或角色身份启动控制台

Procedure如何禁用用户帐户

可以使用以下过程禁用用户帐户。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户”图标并提供超级用户口令或角色口令。

  7. 单击“用户帐户”图标。

  8. 双击该用户。

    例如,选择 scutter2

  9. 在“通用”选项卡功能的“帐户可用性”部分中选中“帐户已锁定”选项。

  10. 单击“确定”。

Procedure如何更改用户口令

在用户忘记其口令时,可以使用以下过程。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户”图标。

  7. 提供超级用户口令或角色口令。

  8. 单击“用户帐户”图标,然后双击需要新口令的用户。

    例如,选择 scutter1

  9. 选择“口令”选项卡,然后选中“用户在下次登录时必须使用此口令”选项

  10. 输入用户的新口令并单击“确定”。

Procedure如何为用户帐户设置口令生命期

可使用以下过程为用户帐户设置口令生命期。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户帐户”图标并提供超级用户口令或角色口令。

  7. 单击“用户帐户”图标。

  8. 双击该用户,然后选择“口令选项”选项卡。

    例如,选择 scutter2

  9. 选择“口令选项”选项卡。

  10. 在“天数”选项中选择相应的“口令选项”并单击“确定”。

    例如,选择“用户必须在以下时间内更改口令”可以设置用户必须更改其口令的日期。

Procedure如何删除用户帐户

可使用以下过程删除用户帐户。

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 启动 Solaris Management Console。


    # /usr/sadm/bin/smc &
    

    有关启动 Solaris Management Console 的更多信息,请参见如何以超级用户或角色身份启动控制台如何在名称服务环境中启动 Solaris Management Console

  3. 在“导航”窗格中,单击“管理工具”图标下面的“本计算机”图标。

    将显示类别列表。

  4. (可选)选择与名称服务环境相对应的工具箱。

  5. 单击“系统配置”图标。

  6. 单击“用户”图标。

  7. 提供超级用户口令或角色口令。

  8. 单击“用户帐户”图标。

  9. 双击要删除的用户帐户。

    例如,选择 scutter4

  10. 如果确定要删除用户帐户,请在弹出窗口中单击“删除”。

    系统将提示您是否要删除用户的起始目录和邮箱内容。