跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中管理用户帐户和用户环境 Oracle Solaris 11.1 Information Library (简体中文) |
以下任务介绍了如何使用 CLI 设置和管理用户帐户。
|
在设置用户帐户时,您可以创建类似于以下表单的表单,用于在设置用户帐户之前收集用户的相关信息。
|
$ su - Password: #
# mkdir /shared-dir/skel/user-type
要用来存储某种类型用户的初始化文件的目录名称。
有关用户初始化文件定制方法的详细说明,请参见定制用户的工作环境。
# chmod 744 /shared-dir/skel/user-type/.*
# ls -la /shared-dir/skel/*
在下面的过程中,管理员已定制了一个 roles 目录。管理员更改所有角色的缺省起始目录和框架目录。
# roleadd -D group=other,1 project=default,3 basedir=/home skel=/etc/skel shell=/bin/pfsh inactive=0 expire= auths= profiles=All limitpriv= defaultpriv= lock_after_retries=
# roleadd -D -b /export/home -k /etc/skel/roles # roleadd -D group=staff,10 project=default,3 basedir=/export/home skel=/etc/skel/roles shell=/bin/sh inactive=0 expire= auths= profiles= roles= limitpriv= defaultpriv= lock_after_retries=
将来可使用 roleadd 命令在 /export/home 中创建起始目录,并从 /etc/skel/roles 目录填充角色的环境。
请注意以下有关使用 CLI 设置用户帐户的准则:
在此发行版中,用户帐户将创建为 Oracle Solaris ZFS 文件系统。作为管理员,当您创建用户帐户时,您将为用户提供他们自己的文件系统和 ZFS 数据集。使用 useradd 和 roleadd 命令创建的每个起始目录将作为单个 ZFS 文件系统放置在 /export/home 文件系统中,形成该用户的起始目录。因此,用户可以对自己的起始目录进行备份,创建起始目录的 ZFS 快照,以及通过 ZFS 快照替换当前起始目录中的文件。
要设置用户帐户,您必须承担 root 角色或拥有相应权限配置文件的角色,例如 "User Management"(用户管理)权限配置文件。请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"。
使用 useradd 命令创建用户帐户时,必须在命令语法中指定 -m 选项。否则,不会为用户创建起始目录。
例如,以下命令将为用户 jdoe 创建起始目录:
# useradd -m jdoe
但是,以下语法不会为用户创建起始目录:
# useradd jdoe
注 - 该规则的唯一例外是您希望用 pam_zfs_key 模块为用户创建加密的起始目录。在这种情况下,不要在 useradd 命令中指定 -m 选项。请参见 pam_zfs_key(5) 和 zfs_encrypt(1M) 手册页。
仅当随 -d 选项一起指定了 hostname:/pathname 时,useradd 命令才会在 auto_home 映射中创建条目。否则,指定的路径名会更新为 passwd 数据库中用户的起始目录,而不会创建 auto_home 映射条目。仅当启用了 autofs 服务时,才会挂载 auto_home 自动挂载程序映射中指定的起始目录。
例如,如果按如下所示指定 -d 选项创建用户,则所创建的用户不包含 auto_home 条目,且 passwd 条目指定 /export/home/user1 作为用户的起始目录:
# useradd -d /export/home/user1 user1
但是,如果按如下所示使用 -d 选项创建用户,则用户将具有 auto_home 条目,且 passwd 数据库将包含 /home/user1,指示依赖于 autofs 服务:
# useradd -d localhost:/export/home/user1 user1
如果起始目录的路径名中指定了远程主机,例如 foobar:/export/home/jdoe,则 jdoe 的起始目录必须在 foobar 系统上创建。缺省路径名为 localhost:/export/home/username。
当文件系统是一个 ZFS 数据集时(Oracle Solaris 11 的所有文件系统都如此),用户的起始目录是作为子 ZFS 数据集创建的,并且将创建快照所需的 ZFS 权限委托给用户。如果指定的路径名未对应于某个 ZFS 数据集,则系统将创建常规目录。如果指定 -S ldap 选项,则 auto_home 映射条目在 LDAP 服务器上更新,而非在本地 auto_home 映射上更新。
在此发行版中,用户帐户将创建为 Oracle Solaris ZFS 文件系统。使用 useradd 和 roleadd 命令创建的每个起始目录将作为单个 ZFS 文件系统放置在 /export/home 文件系统中,形成该用户的起始目录。
仅当随 -d 选项一起指定了 hostname:/pathname 时,useradd 命令才会在 auto_home 映射中创建条目。否则,指定的路径名会更新为 passwd 数据库中用户的起始目录,而不会创建 auto_home 映射条目。仅当启用了 autofs 服务时,才会挂载 auto_home 自动挂载程序映射中指定的起始目录。
缺省情况下,用户是在本地创建的。如果包含 -S ldap 选项,可以在现有的 LDAP 系统信息库中创建用户。
# useradd -d dir -m username
为指定的用户创建帐户。
指定用户的起始目录的位置。
使用 -d localhost:/export/home/username 而不是 -d /export/home/username 强制将条目写入 auto_home 中。
在系统上为用户创建本地起始目录。
如果按如下所示指定 -d dir 选项,创建的用户将不包含 auto_home 条目,且 passwd 条目将指定 /export/home/user1 作为用户的起始目录:
# useradd -d /export/home/user1 user1
如果按如下所示指定 -d dir 选项,用户将包含 auto_home 条目,且 passwd 数据库将包含 /home/user1,指示依赖于 autofs 服务:
# useradd -d localhost:/export/home/user1 user1
有关可以与 useradd 命令一起指定的所有选项和参数的详细说明,请参见 useradd(1M) 手册页。
注 - 帐户将被锁定,直到您为用户指定口令。
# passwd username New password: Type user password Re-enter new password: Retype password
有关更多命令选项,请参见 useradd(1M) 和 passwd(1) 手册页。
另请参见
创建用户后,您可能需要执行一些其他任务,包括向用户添加和指定角色、列出和更改用户的权限配置文件以及更改用户的 RBAC 属性。有关更多信息,请参见下列参考信息:
使用 usermod 命令更改用户登录定义以及为用户作出相应的与登录相关的文件系统更改。
有关可以与 usermod 命令一起指定的参数和选项的详细信息,请参见 usermod(1M) 手册页。
例如,向用户添加角色,应键入:
# usermod -R role username
示例 2-1 通过修改用户帐户设置每个用户的 PAM 策略
以下示例显示了如何修改用户以设置 PAM 策略。该特定修改指定对于所有 PAM 服务,只应使用 Kerberos V5 协议验证用户 jdoe。有关更多信息,请参见 pam_user_policy(5)。
# usermod -K pam_policy=krb5_only jdoe
另请参见
有关修改用户的其他示例,请参见以下参考资料:
$ su - Password: #
注 - 无论 root 是用户帐户还是角色,此方法都是可行的。
# userdel -r username
删除指定用户的帐户。
从系统中删除帐户。
因为用户起始目录现在是 ZFS 数据集,所以,要为已删除的用户移除本地起始目录,首选方法是随 userdel 命令指定 -r 选项。
# userdel username
在远程服务器上,您必须手动删除用户的起始目录。
有关命令选项的完整列表,请参见 userdel(1M) 手册页。
接下来的步骤
如果您删除的用户具有管理职责(例如创建 cron 作业)或该用户在非全局区域中具有其他帐户,则可能需要执行额外的清除操作。
管理员创建组时,系统会将 solaris.group.assign/groupname 指定给此管理员,并向管理员赋予对该组的完全控制权。如果其他拥有相同授权的管理员创建了组,则该管理员可以控制此组。对其中一组具有控制权的管理员无法管理其他管理员的组。有关更多信息,请参见 groupadd(1M) 和 groupmod (1M) 手册页。
# cat /etc/group
$ groupadd -g 18 exadata
通过向 /etc/group 文件中添加相应的条目,在系统上创建新的组定义。
为新组指定组 ID。
有关更多信息,请参见 groupadd(1M) 手册页。
示例 2-2 用 groupadd 和 useradd 命令设置组和用户
下面的示例说明如何使用 groupadd 和 useradd 命令向本地系统上的文件中添加 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) 手册页。
在此 Oracle Solaris 发行版中,您可以通过设置 share.nfs 属性或 share.smb 属性来共享 ZFS 文件系统。或者,您可以通过使用 zfs share 命令来创建文件系统共享。缺省情况下,所有文件系统都不共享。
缺省情况下,pool/export/home 数据集已挂载在 /export/home 中。useradd 命令自动将每个用户的数据集创建为该数据集的子项。作为管理员,您可以选择为用户起始目录创建一个新池。以下过程说明了各个步骤。
有关共享和取消共享文件系统的更多信息,请参见《Oracle Solaris 11.1 管理:ZFS 文件系统》中的"共享和取消共享 ZFS 文件系统"。
# zpool create users mirror c1t1d0 c1t2d0 mirror c2t1d0 c2t2d0
# zfs create users/home
# zfs set share.nfs=on users/home
使用此新语法时,每个文件系统将包含一个“自动共享”,此共享是在将该文件系统的 share.nfs 属性(或 share.smb 属性)设置为 on 后立即创建的。前一命令将共享名为 users/home 的文件系统及其所有子系统。
# zfs get -r share.nfs users/home
-r 选项可显示所有的后代文件系统。
作为 ZFS 文件系统创建的用户帐户通常不需要进行手动挂载。通过 ZFS,文件系统在创建时自动挂载,然后在引导时通过 SMF 本地文件系统服务进行挂载。
在创建用户帐户时,请确保起始目录的设置与名称服务(位于 /home/username)中的设置相同。然后,确保 auto_home 映射表示用户起始目录的 NFS 路径。有关与任务相关的信息,请参见《在 Oracle Solaris 11.1 中管理网络文件系统》中的"Autofs 管理的任务概述"。
如果需要手动挂载用户的起始目录,请使用 zfsmount 命令。例如:
# zfs mount users/home/alice