| 跳过导航链接 | |
| 退出打印视图 | |
|
Oracle Solaris 管理:常见任务 Oracle Solaris 11 Information Library (简体中文) |
在 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 映射中)进行更新。
在设置用户帐户时,您可以创建类似于以下表单的表单,用于在添加用户帐户之前收集用户的相关信息。
|
$ su - Password: #
注 - 无论 root 是用户帐户还是角色,此方法都是可行的。
# 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 目录填充角色的环境。
在 Oracle Solaris 11 中,用户帐户将创建为 Oracle Solaris ZFS 文件系统。使用 useradd 和 roleadd 命令创建的每个起始目录将作为 individual ZFS 文件系统的用户起始目录放置在 /export/home 文件系统中。
缺省情况下,用户是在本地创建的。使用 -S ldap 选项,可以在现有的 LDAP 系统信息库中创建用户。
# useradd -m username
为指定的用户创建帐户。
在系统上为指定的用户创建本地起始目录。
注 - 帐户将被锁定,直到您为用户指定口令。
$ passwd username New password: Type user password Re-enter new password: Retype password
有关更多命令选项,请参见 useradd(1M) 和 passwd(1) 手册页。
另请参见
在创建某个用户后,如果要为用户帐户添加角色或指定角色,请参见《Oracle Solaris 管理:安全服务》中的"如何创建角色"以获取更多信息。
$ su - Password: #
注 - 无论 root 是用户帐户还是角色,此方法都是可行的。
# userdel -r username
删除指定用户的帐户。
从系统中删除帐户。
因为用户起始目录现在是 ZFS 数据集,所以,要为已删除的用户移除本地起始目录,首选方法是随 userdel 命令指定 -r 选项。
# userdel username
在远程服务器上,您必须手动删除用户的起始目录。
有关命令选项的完整列表,请参见 userdel(1M) 手册页。
接下来的步骤
如果您删除的用户具有管理职责(例如创建 cron 作业)或该用户在非全局区域中具有其他帐户,则可能需要执行额外的清除操作。
# cat /etc/group
$ groupadd -g 18 exadata
通过向 /etc/group 文件中添加相应的条目,在系统上创建新的组定义。
为新组指定组 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
有关更多信息,请参见 groupadd(1M) 和 useradd(1M) 手册页。
先创建 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
# 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
# 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 get -r sharenfs users/home
-r 选项可显示所有的后代文件系统。
另请参见
有关创建和发布共享的更多信息,请参见《Oracle Solaris 管理:ZFS 文件系统》中的"挂载 ZFS 文件系统"。
作为 ZFS 文件系统创建的用户帐户通常不需要进行手动挂载。通过 ZFS,文件系统在创建时自动挂载,然后在引导时通过 SMF 本地文件系统服务进行挂载。
在创建用户帐户时,请确保起始目录的设置与名称服务(位于 /home/username)中的设置相同。然后,确保 auto_home 映射表示用户起始目录的 NFS 路径。有关与任务相关的信息,请参见《Oracle Solaris 管理:网络服务》中的"Autofs 管理的任务概述"。
如果需要手动挂载用户的起始目录,请使用 zfsmount 命令。例如:
# zfs mount users/home/alice