第6章、管理用户帐号和用户组
本章主要介绍如何使用管理工具(Administration Tool)来建立和管理用户帐号以及用户组,该管理工具用于编辑NIS+数据库和本地/etc目录下的文件,同时,它还允许用户查看NIS map中的信息,但不提供对这些信息的编辑功能。
注意: Solaris 2.x提供了以下的SVR4 useradd命令:useradd、userdel、usermod、groupadd、groupmod和groupdel。由于这些命令与网络关系不大,因而不在本章中讨论。如果想要在独立系统中使用这些命令管理用户帐号,请参阅合适手册。
6.1增加和管理用户帐号
在下面几节中我们将介绍如何使用管理工具来增加和删除用户帐号,在Solaris 2.0下,可以通过编辑Passwd数据库或本地的/etc/passwd文件来增加用户,但管理工具不会自动为用户建立主目录。而在Solaris 2.1下,用户管理器(User Manager)则为用户提供了编辑Passwd数据库和建立用户主目录的功能。
6.1.1增加用户帐号
在向网络中增加用户之前,必须首先建立并配置好用户系统,如果需要,还必须在网络上安装并运行NIS+或NIS软件。(只有4.x系统可以成为NIS服务,而NIS客户则可用4.x或5.x 系统来安装)。
增加一个用户需要完成以下两步:设置用户帐号、为用户提供工作环境。
*编辑Passwd数据库
*定义用户组
*建立主目录
*定义用户环境
*建立口令
在以下几节中,我们将介绍如何完成这些工作。
6.1.1.1编辑Passwd数据库
在编辑Passwd数据库或本地的/etc/passwd文件之前,必须首先成为系统管理组(GID14)的成员,如果系统中正在运行NIS+,那么还必须具备建立或删除NIS+数据的合适权限,之后就可以使用网络上任何系统的管理工具来改变核心NIS+数据库或本地系统的etc/passwd文件了。
增加一个用户,需要知道以下信息:
*注册名(login name)
*用户号(UID)
*基本组号(GID)
*识别信息(姓名、办公地点、家用电话及其它)
*主目录(home directory)
*注册shell
按以下步骤在NIS+网络数据库或本地的/etc/passwd文件中增加用户:
1、键入openwin,启动Open Windows.
2、键入admintool,启动管理工具并显示Adiminstration Tool窗口.
3、用鼠标SELECT Database Manager图标显示Database Manager窗口.
4、SELECT Passwd数据库,在NIS+命名设备或None(本地/etc文件)上用鼠标点中并点击Load按钮,显示出Passwd Database窗口.
5、如果是在一个大型的网络中,那么可能需要搜索某个注册名或UID,以确信它们没有被使用过,在View菜单中选择Find,在文字域中键入注册名或UID,然后用鼠标点击Find按钮,如果搜索到了一项,那么该项就被点亮,否则在Passwd Database 窗口的底部显示出"No match"信息.
6、在Edit菜单中选择Add Entry一项,显示出Add Entry窗口.
7、在合适的文字域键入用户名和用户ID(UID).
8、当用户第一次注册时,其缺省情况是无口令状态,如果想要选择一个不同的口令状态,可在Passwd Status菜单中选择另外一项,菜单中各项有含义如表6.1所示.
9、在文字域中键入其余的信息,表6.2 描述了每个域中的具体内容,另外Database Manager也为用户提供了联机帮助信息,用户只需将箭头移到某一项标签上或文字域中,然后按键盘上的Help键,即可得到关于该项的详细说明.
10、当所有信息都输入完成以后,用鼠标点击Add 按钮将它们存入Passwd 数据库或/etc/passwd文件中,如果显示了"...cannot execute method,access denied..."信息,那么就需要编辑NIS+组表或/etc/group文件,在系统管理员组(GID)中建立或增加你的注册名.
编辑完Passwd数据库后,还需建立一个主目录并为用户设置环境,这些过程将在下面几节中介绍。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表6.1 Password Status菜单中的口令状态选择
口令状态 描述
Password is cleared 每个帐号需要一个口令,当用户第一次注册时,系统将
until first login 提示用户输入口令
Accunt is locked 当输入非法口令时,帐号无效,此时,用户可通过指定
一个新的口令来讲该帐号进行解锁,这种类型的帐号允
许用户拥有文件但无法注册
No password-rood setuid 帐号无法直接注册,它允许lp或uucp 等程序在某
access only 个帐号下运行,但用户无法注册
Normal password is set 当某帐号已经有一个口令时,可选择该项
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
注意: 一个没有口令的帐号是无法建立的,同时其口令不能在数据库管理器中直接定义而只能使用nispasswd、yppasswd或passwd命令来加以定义.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表6.2 口令数据库(Passwd Database)Add Entry窗口中各域的内容
域 描述
User name 用字符(包括数字)组成一个唯一的注册名
User ID 输入一个100-60000之间的唯一整数,用于在系统内部标
识用户
Passwor Status 见表7.1
Comment(GOOS) 输入可选信息,如用户实际名称、电话号码或所在机构
Home Path 输入用户主目录的路径,一般地,路径为/home/
,注意,在Solaris 2.x系统中,系统名不再是用户目录
路径中的一部分
Shell 输入注册时启动的shell全程路径: Bourne shell的是
bin/sh C shell是bin/csh,Korn shell的是/bin/ksh
缺省值是Bourne shell
Group ID 输入一个0-60000之间的唯一整数,用于标识用户所属的
基本组(primary group).
Max Days Valid 输入口令有效最大天数,如果该项空白,则口令不会失效
Days Warning 输入在口令失效前开始警告用户的天数
Last Mod Date 显示从1970年1月1日开始一直到口令最近一次被修改
时间的天数(8085表示1992年2月28日)该域内容是不
允许修改的
Expiration Date 输入用户帐号被注销的绝对日期,该日期以1970年1月
1日起计算的天数来表示,(如8050表示1992年1日28
日)如果该域空白,则口令不会失效
Min Change Days 输入两次改变口令之间所允许的最小天数
Max Inactive Days 输入某帐号被冻结前失效的天数
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6.1.1.2定义用户组
如果想在某个组中增加用户,必须编辑组数据库(Group database),并在该组成员表增加用户注册名,本节描述了如何向某个组增加一个用户的过程,在这之前,首先需要知道用户注册名,用户ID(UID)以及组名和组ID。
1、 在Database Manager窗口中,点亮组数据库,用鼠标选择NIS+或None(本etc文件)并点击Load按钮。
2、 用鼠标选择想修改的一项,该项被点亮。从Edit菜单中选择Modify Entry,此时打开Modify Entry窗口,并显示出被选项在组数据库(或文件)中的当前信息。
3、 在成员文字域中增加用户注册名,当你输错时,可按Reset按钮,以便重输信息。
4、用鼠标选择Modify后,组数据库(或本地/etc/group文件)立刻修改。
5、如果你想让该用户属于别的组,则重复以上步骤,在别的组中增加该用户。
注意:如果你不使用命名服务(naming service),那么必须重复以上步骤,才能对属于同一组所有用户更新到其它系统上的/etc/group文件,为了编辑其它系统上的/etc/group文件,用户必须返回Load Database窗口,并在use /etc files on host文件域中键入系统名。
6.1.1.3建立主目录(home director)
主目录是文件系统一部分,它分配给每个用户用于存贮私人文件,按照用户所创建的文件种类以及其工作性质给每个用户分配的主目录空间可以是不同的,一般地,你可以为每个用户的主目录分配15Mb左右的磁盘空间。
用户的主目录可以在本地文件系统或远程文件服务器中,其路径名约定如/export/home/。注意:这是Solaris 2.x的一种新的约定,服务器名不再包含在用户的主目录路径中,在大型服务器的/export目录下,可以为不同的用户创建户主目录,如homel,home2,home3等,不管用户的主目录安放在哪里,他们都能通过名为/home/安装点访到自己的主目录。
本节描述Solaris 2.x中主目录的安装方法,在这之前,我们先假设用户注册的系统是在网络上,用Automount自动安装的用户主目录是可访问的,并且利用系统提供share共享命令可以使用户在别的系统上通过网络访问本地的用户目录。
主目录的安装方法有以下两种:
*在NIS+Auto-home数据库,NIS auto-home表或本地/etc/auto-home文件中增加一项,自动安装主目录(推荐方法)。
*在用户系统的/etc/vfstab文件中增加一项,使系统可以通过nfs来安装主目录。为支持主目录的自动安装,SunOS 5.x系统软件在/etc/auto-master文件中设置了下面一项:
/home/etc/auto-home
该项通知Automounter将auto-home数据库中指定的目录安装到本地的/home上去,在auto-home中该项的使用格式如下:
:/export/home/
当用户以注册时,Automounter会自动将指定系统(上的指定路径/export/home/)安装到用户所在系统的/home安装点上。
这种方法适用于主目录在本地系统中,但更重要的是,一旦用户在其他系统中注册Automounter会自动将其主目录安装到该系统的/home安装点上。
注意:当Automounter用于安装主目录时,你不能在用户系统的/home安装点上建立任何目录,当Automounter处在运行状态时,系统将自动识别/home目录的特殊状态。
在建立主目录之前,必须首先编辑Passwd database来建立用户帐号,它需要以下信息:
*用户的注册名和UID
*主目录所在系统名称,如果主目录在网络上是可访问的,那么主目录系统必须象用户的本地系统一样在网络的同一网段上(network segment),用df命令检查服务器是否有足够的空间来建立一个新的目录。
*用户帐号的目录名,一般地,主目录可取名为/export/home,在大型的文件服务器目录还可以是多重的,例如/export/home1,/export/home2等等,在每个目录下,不同的子目录是为不同用户建立的(例如: /export/home/、/export/home/、/export/hom1/、/export/home2/等等)。
下面介绍主目录的安装步骤,它适用于主目录在本地系统中或在远程文件服务器上。
1、成为超级用户
2、键入cd /export/,其中是用户主目录的名称,例如,想进入目录/export/homel,可键入:#cd /exprt/homel
3、键入mkdir ,其中是用户的注册名,你可以建立一个与用户注册名匹配的目录,例如建立一个名为ignatz的用户目录,可键入:#mkdir ignatz
4、键入chown ,此时用户成了主目录的所有者,例如,对于用户ignatz,可键入:#chown ignatz ignatz
5、键入chgrp ,用户被指定给Passwd database中标明的基本组,例如: 指定给staff组,可键入:
#chgrp staff ignatz
6、键入chmod 755 /export//,用户的主目录权限设置成:所有者为rwx,同组成员为r-x,系统中其它人员为r-x,例如:
#chmod 755 /export/honel/ignatz
注意:以下步骤描述了如何从一个运行SunOS 5.x的服务器上共享主目录,若想从运行SunOS 4.x的服务器上共享主目录,则必须使用export命令。
1、键入share检查主目录是共享的,则可以看到以下信息
gtxa%su
Password:
#share
- /export/home rw ""
#
如果没有列出主目录,则可按以下步骤建立一个可被其它系统共享的主目录,一般地,可将主目录命名为/export/home,/export/home1,或/export/home2等。
2、编辑/etc/dfstab文件,加入下面一行:
share -F nfs /export/
3、键入shareall -F nfs。这样不需要重启系统,系统就能自动执行/etc/dfstab文件中的有share命令。
4、键入ps -ef|gerp mountd。如果系统管理进程mountd在运行,则结束,反之,继续执行步骤5。
下面是一个mountd未运行时出现的信息:
#ps -ef|gerp mountd
root 221 218 16 18:07:25 pts/10:00 grep mountd
5、键入/etc/inint.d/nfs.server start,启动共享文件目录要求的系统管理进程。
注意:如果网络没有运行NIS或NIS+,就需要将主目录服务器的IP地址和系统名加入到用户系统的/etc/hosts文件中,本地/etc/hosts文件可用Database Manager来进行编辑。
如果使用了硬盘配额(disk quotas),那么就应该为用户建立一个相应的配额。
在建立了用户的主目录之后,要使之可用,可将它加入到Auto-home database 中由Automounter启动,或者将它用为用户系统中/etc/vfstab文件里的一项由nfs装入。
6.1.1.4自动安装目录
在按本节中所述步骤操作前,必须首先建立用户主目录并且Automounter,如果要用Automounter Tool Database Manager来编辑NIS+Auto-home数据库,那么必须是sysadmin group(GID 14)的成员,并对Auto-home database具有建立和删除的合适权限。
只要有一合适的权限,就可通过网络上的任何系统来修改NIS+Auto-home database或/etc/auto-home文件,在编辑Auto-home数据库时,必须知道用户的注册名和要安装的主目录名。
以下步骤适用于主目录建立在本地系统或者远程文件服务器上。
1、启动Automounter Tool并选择Database Manager。
2、窗口中缺省的域名(Domain Name)是Ecd.East.Sun.COM,如果此缺省域名不对,则可在该字段中输入别的域名;如果是在本地系统上编辑Auto-home文件,则可用鼠标选择None,并在Host Name字段输入系统名。
3、用鼠标选择Load按钮,将显示Auto-home database窗口。
4、选择Edit菜单中的Add Entry,将显示Add Entry窗口。
5、在User Name字段中输入。
6、在Path字段输入:/export//其中是主目录所在服务器名字。
7、用鼠标选择Add按钮,以上所编辑的信息被存入Auto-home或本地的/etc/auto-home文件中,当用户第一次注册时,主目录将自动地被安装到/home/下。
6.1.1.5用nfs安装主目录
如果用户的主目录是在其它系统上并且Automounter无法分配用户空间,那么可按以下方法用nfs来安 装主目录:
1、成为超级用户;
2、编辑/etc/vfstab文件,为用户主目录建立相应的项。例如,想要在服务器gtxa上为用户ignatz建立主目录,可在该文件中加入以下一项:
gtxa: /export/homel/ignstz - /home/ignatz nfs - yes rw,inty
3、为了建立用户系统的安装点,可以键入mkdir /home/。注意:主目录的名称在服务器和用户系统上可以是不同的,例如,服务器上的主目录名/export/home/ignatz/在用户系统上可以是/home/ignatz;
4、键入chown /home/,此时主目录为该用户所有;
5、键入chgrp /home/,此时用户的基本组(primary group)具有访问用户主目录的权限;
6、键入mountall,当前vfstab文件中的所有项(它们的automount域被设成Yes)被启动装入;
7、为了加以验证,可键入mount命令来显示所在已安装好的文件系统。
6.1.1.6定义用户环境
为了建立用户帐号,需进一步定义以下用户环境:
*定义缺省初始化文件
*建立一个邮件帐号
*设置打印机
6.1.1.7定义初化文件
当用户注册时,注册程序会自动生成一系列变量,如HOME、LOGNAME和TZ,接着运行初始化文件为用户设置系统缺省值如PATH、日期信息、umask等,然后再设置一些特定变量,例如通过修改某个用户初始化文件中的PATH变量可以使某些应用程序只能由该用户执行。
每一种shell都有自己的初始化文件,如表6.3所示。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表7.3 shell 用户初始化文件
shell 初始化文件 用途
C $HOME/.login 注册时定义用户环境
$HOME/.cshrc shell注册后定义C shell要
求的用户环境
Bourne $HOME/.profile 注册时定义用户环境
Korn $HOME/.profile 注册时定义用户环境
$HOME/. 在环境变量指定的文
件中定义注册时的用户环境
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SunOS5.x系统软件为/etc/skel目录下的每个shell都提供了缺省的用户初始化文件,如表6.4所列.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
表7.4 缺省主目录下的初始化文件
Shell 文件名
C /etc/skel/local.login
C /etc/skel/local.cshrc
Bourne或Korn /etc/skel/local.profile
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
下面是缺省的/etc/skel/local.login文件:
#@(#)login 1.7 89/09/05 SMI
stty -istrip
setenv TERM ‘tset -Q-'
下面是缺省的/etc/skel/local.cshrc文件:
#@(#)cshrc 1.11 89/11/29 SMI
umask 022
set path=(/bin/usr/bin/usr/ucb/etc.)
if ($?prompt) then
set history=32
end if
下面是缺省的/etc/skel/local.profile文件:
stty istrip
PATH=.:/usr/bin/usr/ucb:/etc
export PATH
以上文件定义了系统最小环境,为了简化每个用户的初始化文件,可以在/etc/skel下的文件中设置尽量多的系统级缺省变量。
为了建立初始化文件,必须首先建立好用户的主目录并且知道Passwd数据库中为该用户设置的shell类型(C、Bourne或Korn),按以下步骤设置用户的初始文件:
1、在用户的主目录下成为超级用户;
2、键入cd //,进入用户主目录,例如,要想进入/export/homel 下的ignatz用户目录,可以键入:
#cd exptrt/homel/ignatz
3、键入cp /etc/shel/local.*,将所有缺省的初始文件拷入用户目录;
4、键入chmod 744 local.*,为初始文件设置正确的权限;
5、键入chown *,使用这些初始文件属该用户所有,例如:
#chown ignatz*
#
6、chgrp local.* ,将文件指派给基本组(如sysadmin),该组号是在passwd数据库为用户帐号