跳过导航链接 | |
退出打印视图 | |
系统管理指南:命名和目录服务(DNS、NIS 和 LDAP) Oracle Solaris 10 8/11 Information Library (简体中文) |
4. 网络信息服务 (Network Information Service, NIS)(概述)
11. 为使用 LDAP 客户机设置 Sun Java System Directory Server(任务)
本节包括有关设置用户口令、向 NIS 域添加新用户以及将用户指定给 netgroups 的信息。
角色包含授权和具有一定特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的第 9 章 "使用基于角色的访问控制(任务)"。
# useradd userID
userID 是新用户的登录 ID。此命令将在主 NIS 服务器上的 /etc/passwd 和 /etc/shadow 文件中创建项。
要创建新用户可用来登录的初始口令,请运行 passwd 命令。
# passwd userID
其中,userID 是新用户的登录 ID。系统将提示您输入要指定给此用户的口令。
由于 useradd 命令创建的口令项已锁定(这意味着新用户无法登录),因此必须执行此步骤。通过指定初始口令,可以解除对该项的锁定。
主服务器上的映射源文件应位于 /etc 之外的某个目录中。将新行从 /etc/passwd 和 /etc/shadow 文件复制并粘贴到服务器上的 passwd 映射输入文件中。有关其他信息,请参见口令文件和名称空间安全。
例如,如果您添加了新用户 brown,则要从 /etc/passwd 复制到 passwd 输入文件中的行将如下所示:
brown:x:123:10:User brown:/home/brown:/bin/csh:
要从 /etc/shadow 中复制的有关 brown 的行将如下所示:
brown:W12345GkHic:6445::::::
出于安全原因,请不要在 NIS 主服务器的 /etc/passwd 和 /etc/shadow 文件中保留用户项。在将新用户的项复制到其他某个目录中存储的 NIS 映射源文件后,请在主服务器上使用 userdel 命令删除新用户。
例如,要从主服务器的 /etc 文件中删除新用户 brown,可以输入以下命令。
# userdel brown
在更新主服务器上的 passwd 输入文件后,请在包含源文件的目录中运行 make,以更新 passwd 映射。
# userdel brown # cd /var/yp # /usr/ccs/bin/make passwd
登录后,新用户随时可以通过运行 passwd 设置不同口令。
% passwd username
您必须先在主服务器上启动 rpc.yppasswdd 守护进程更新口令文件,然后用户才能更改口令。
rpc.yppasswdd 守护进程会在主服务器上自动启动。请注意,如果为 rpc.yppasswdd 指定了 -m 选项,则在 /var/yp 中修改文件后将立即强制执行 make。如果要避免在每次更改 passwd 文件后都执行此 make,请在 ypstart 脚本的 rpc.yppasswd 命令中删除 -m 选项,并通过 crontab 文件控制 passwd 映射的推送。
注 - rpc.yppasswd- m 命令后不应包含任何参数。尽管可以通过编辑 ypstart 脚本文件实现不同操作,但除了可以选择删除 -m 选项外,建议不要修改此文件。此文件调用的所有命令和守护进程都具有适当的命令行参数集合。如果选择编辑此文件,在编辑 rpc.yppasswdd 命令时应特别小心。如果您添加了对 passwd.adjunct 文件的显式调用,则必须使用路径 $PWDIR/security/passwd.adjunct ;否则,处理结果将不正确。
NIS 网络组是您为实现管理目的而定义的用户或计算机组(集合)。例如,您可以创建网络组来执行以下任务。
定义一组可以访问特定计算机的用户
定义一组要被授予特定文件系统访问权限的 NFS 客户机
定义一组要对特定 NIS 域中的所有计算机具有管理员权限的用户
每个网络组都有一个网络组名。网络组不直接设置权限或访问权限。而是由其他 NIS 映射在通常使用用户名或计算机名的地方使用网络组名。例如,假设您创建了一个由网络管理员构成的网络组,名为 netadmins。要向 netadmins 组的所有成员授予对给定计算机的访问权限,只需向该计算机的 /etc/passwd 文件中添加一个 netadmin 项即可。网络组名也可以添加到 /etc/netgroup 文件中并传播到 NIS netgroup 映射。有关使用网络组的更多详细信息,请参见 netgroup(4)。
在使用 NIS 的网络中,主 NIS 服务器上的 netgroup 输入文件用于生成三种映射:netgroup、netgroup.byuser 和 netgroup.byhost。netgroup 映射包含 netgroup 输入文件中的基本信息。另外两种 NIS 映射中包含的信息的格式可在给定计算机或用户的情况下加速网络组信息的查找。
netgroup 输入文件中的项格式如下:name ID,其中 name 是为网络组给定的名称,而 ID 用于标识属于该网络组的计算机或用户。您可以根据需要为网络组指定任意多的 ID(成员),ID 之间以逗号分隔。例如,要创建一个具有三个成员的网络组,netgroup 输入文件项将采取以下格式:name ID, ID, ID。netgroup 输入文件项中的成员 ID 采取以下格式。
([-|machine], [-|user], [domain])
其中,machine 是计算机名,user 是用户 ID,domain 是计算机或用户的 NIS 域。domain 元素是可选的,并且仅应用于标识其他某个 NIS 域中的计算机或用户。每个成员项的 machine 和 user 元素是必需的,但连字符 (-) 用来表示内容为空。项中的计算机和用户元素之间不存在必然联系。
下面是两个 netgroup 输入文件项样例,每个样例都创建了一个名为 admins 的网络组,网络组由用户 hauri 和 juanita(后者在远程域 sales 中)以及计算机 altair 和 sirius 组成。
admins (altair, hauri), (sirius,juanita,sales)
admins (altair,-), (sirius,-), (-,hauri), (-,juanita,sales)
各种程序会在登录、远程挂载、远程登录以及远程创建 shell 期间使用 NIS 映射进行权限检查。这些程序包括 mountd、login、rlogin 和 rsh。login 命令在 passwd 数据库中遇到网络组名时,会在网络组映射中查询用户分类。mountd 守护进程在 /etc/dfs/dfstab 文件中遇到网络组名时,会在网络组映射中查询计算机分类。rlogin 和 rsh(实际上,任何使用 ruserok 接口的程序)在 /etc/hosts.equiv 或 .rhosts 文件中遇到网络组名时,会在网络组映射中同时查询计算机和用户分类。
如果您向网络中添加新 NIS 用户或计算机,请确保在 netgroup 输入文件中将其添加到适当的网络组中。然后使用 make 和 yppush 命令创建网络组映射,再将其推送到所有 NIS 服务器。有关使用网络组和网络组输入文件语法的详细信息,请参见 netgroup(4)。