设置用户帐户
在 Oracle Solaris 11 中,用户帐户将创建为 Oracle Solaris ZFS 文件系统。作为管理员,在创建用户帐户时,您要创建的不仅仅是起始目录。您需要为用户提供其自己的文件系统和 ZFS 数据集。使用 useradd
和 roleadd 命令创建的每个起始目录会将用户的起始目录作为单独的 ZFS 文件系统放置在 /export/home 文件系统上。因此,用户可以对自己的起始目录进行备份,创建起始目录的 ZFS 快照,以及通过 ZFS 快照替换当前起始目录中的文件。
useradd 命令需要依赖于自动挂载服务 svc:/system/filesystem/autofs 才能挂载用户的起始目录,因此不得禁用此服务。passwd 数据库中用户的每个起始目录条目的格式均为 /home/username,这是自动挂载程序通过 auto_home 映射解析的 autofs 触发器。
useradd 命令自动在 auto_home 映射中创建与通过 -d 选项指定的路径名对应的条目。如果路径名中指定了远程主机,例如 foobar:/export/home/jdoe,则 jdoe 的起始目录必须创建在系统 foobar 上。缺省路径名为 localhost:/export/home/user。
因为此文件系统是一个 ZFS 数据集,所以用户的起始目录是作为子 ZFS 数据集创建的,并且将创建快照所需的 ZFS 权限委托给用户。如果指定的路径名未对应于某个 ZFS 数据集,则系统将创建常规目录。如果指定了 -S ldap 选项,则
auto_home 映射条目会在 LDAP 服务器上(而非 auto_home 映射中)进行更新。
收集用户信息
在设置用户帐户时,您可以创建类似于以下表单的表单,用于在添加用户帐户之前收集用户的相关信息。
项
说明
用户名:
角色名:
配置文件或授权:
UID:
主组:
辅助组:
注释:
缺省 Shell:
口令状态和更新:
起始目录的路径名:
挂载方法:
起始目录的权限:
邮件服务器:
部门名称:
部门管理员:
经理:
员工姓名:
员工职务:
员工状态:
员工编号:
开始日期:
添加到下列邮件别名中:
桌面系统名称:
如何定制用户初始化文件成为 root 角色。$ su -
Password:
#
注 -无论 root 是用户帐户还是角色,此方法都是可行的。
为每种类型的用户创建一个框架目录。# mkdir /shared-dir/skel/user-typeshared-dir
可供网络上的其他系统使用的目录名称。
user-type
要用来存储某种类型用户的初始化文件的目录名称。
将缺省的用户初始化文件复制到为不同类型的用户创建的目录中。
编辑每种用户类型的用户初始化文件,并根据系统需要定制这些文件。
有关用户初始化文件定制方法的详细说明,请参见定制用户的工作环境。
设置用户初始化文件的权限。# chmod 744 /shared-dir/skel/user-type/.*
验证用户初始化文件的权限是否正确。# ls -la /shared-dir/skel/*
如何更改所有角色的帐户缺省值
在下面的过程中,管理员已定制了一个 roles 目录。管理员更改所有角色的缺省起始目录和框架目录。成为 root 角色。
创建一个定制的角色目录。例如:# 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 目录填充角色的环境。
如何添加用户
在 Oracle Solaris 11 中,用户帐户将创建为 Oracle Solaris ZFS 文件系统。使用 useradd 和 roleadd
命令创建的每个起始目录将作为 individual ZFS 文件系统的用户起始目录放置在 /export/home 文件系统中。成为 root 角色。
创建一个本地用户。
缺省情况下,用户是在本地创建的。使用 -S ldap 选项,可以在现有的 LDAP 系统信息库中创建用户。# useradd -m usernameuseradd
为指定的用户创建帐户。
-m
在系统上为指定的用户创建本地起始目录。
注 -帐户将被锁定,直到您为用户指定口令。
为用户指定口令。$ passwd username
New password: Type user password
Re-enter new password: Retype password
另请参见
在创建某个用户后,如果要为用户帐户添加角色或指定角色,请参见《Oracle Solaris 管理:安全服务》中的"如何创建角色"以获取更多信息。
如何删除用户成为 root 角色。$ su -
Password:
#
注 -无论 root 是用户帐户还是角色,此方法都是可行的。
归档用户的起始目录。
运行以下命令之一:如果用户有一个本地起始目录,请删除此用户和起始目录。# userdel -r usernameusesrdel
删除指定用户的帐户。
-r
从系统中删除帐户。
因为用户起始目录现在是 ZFS 数据集,所以,要为已删除的用户移除本地起始目录,首选方法是随 userdel 命令指定 -r 选项。
否则,只能删除用户。# userdel username
在远程服务器上,您必须手动删除用户的起始目录。
有关命令选项的完整列表,请参见 userdel(1M) 手册页。
接下来的步骤
如果您删除的用户具有管理职责(例如创建 cron 作业)或该用户在非全局区域中具有其他帐户,则可能需要执行额外的清除操作。
如何添加组成为 root 角色。
列出现有组。# cat /etc/group
创建新组。$ groupadd -g 18 exadatagroupadd
通过向 /etc/group 文件中添加相应的条目,在系统上创建新的组定义。
-g
为新组指定组 ID。
有关更多信息,请参见 groupadd(1M) 手册页。
示例 3-1 用 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
如何共享作为 ZFS 文件系统创建的起始目录
先创建 ZFS 文件系统的 NFS 共享或服务器消息块 (Server Message Block, SMB) 共享,然后发布该共享。
该两步骤过程如下所述:
使用 zfs set share 命令创建文件系统共享。此时,可以定义特定的共享属性。如果未定义共享属性,则共享将使用缺省属性值。
通过设置 sharenfs 或 sharesmb 属性发布 NFS 或 SMB 共享。共享将永久发布,除非该属性设置为 off。
请注意,您必须是 root 用户才能执行以下过程。
开始之前
为用户起始目录创建一个独立的池。例如:# zpool create users mirror c1t1d0 c1t2d0 mirror c2t1d0 c2t2d0
然后,为起始目录创建一个容器。# zfs create /users/home成为 root 角色。
创建共享并设置 sharenfs 或 sharesmb 属性。例如,要创建 NFS 共享并设置 sharenfs 属性,请键入以下命令:# zfs set share=name=users,path=/users/home,prot=nfs users/home name=users,path=/users/home,prot=nfs
# zfs set sharenfs=on users/home
创建将继承共享属性选项以及 sharenfs 或 sharesmb 属性的各个文件系统。# zfs create users/home/username1
# zfs create users/home/username2
# zfs create users/home/username3
例如:# zfs create users/home/alice
# zfs create users/home/bob
# zfs create users/home/carl
确定 ZFS 文件系统共享是否已发布。# zfs get -r sharenfs users/home
-r 选项可显示所有的后代文件系统。
另请参见
手动挂载用户的起始目录。
作为 ZFS 文件系统创建的用户帐户通常不需要进行手动挂载。通过 ZFS,文件系统在创建时自动挂载,然后在引导时通过 SMF 本地文件系统服务进行挂载。
在创建用户帐户时,请确保起始目录的设置与名称服务(位于 /home/username)中的设置相同。然后,确保 auto_home 映射表示用户起始目录的 NFS 路径。有关与任务相关的信息,请参见《Oracle Solaris 管理:网络服务》中的"Autofs 管理的任务概述"。
如果需要手动挂载用户的起始目录,请使用 zfsmount 命令。例如:# zfs mount users/home/alice
注 -确保用户的起始目录已共享。有关更多信息,请参见如何共享作为 ZFS 文件系统创建的起始目录。