- 论坛徽章:
- 0
|
第16章 管理用户账号
用户账号的建立使得系统管理员能保留使用系统的人员的踪迹并控制他们对系统资源
的访问。账号也使得用户可以方便地组织自己的文件,并控制其他用户对它们的访问权限。
管理账号要牵涉到以下几个方面:
● 用户——增加、修改和删除
● 用户组——增加、修改和删除
● 口令——设置和控制
● 注册——控制镇定和注册限制
● 权限——设置超级用户权限
● 安全——改变安全特征文件
● 故障排除——用 Account Manager(账号管理程序)解决问题。
Account Manager提供了一个方便的、对话式的方法来执行绝大多数的账号管理任务。
16.1 Account Manager(账号管理程序)界面
Account Manager(账号管理程序)允许你建立或修改用户账号。你可以使用以下的任一种方法来启动 Account Manager(账号管理程序):
● 在桌面系统的系统管理(System Administr ation)窗口中双击Account Manager帐号管理程序图标。
● 在命令行键入scoadmin启动 SCO admin系统管理程序, 然后选择Account Manager(账号管理程序)。
● 在命令行键人 scoadmin account manager(或缩略语:scoadmin a)。
有关使用 SCOadmin系统管理程序的细节,请参见《SCO OpenServer系统手册》(本系列丛书之一)相关章节,
在 Account Manager(账号管理程序)的显示主屏上包括系统上现有账号的列表,见图
l-l,在 Status(状态)栏里的国标(或字符)表示账号的类型和状态。在默认情况下,为确保启
动时显示的信息保持最简略,Status栏是不出现的。要显示状态信息,可在 Option的菜单上选择 Show Status。
警告: 如果你的系统里有非常多的帐号,那么收集状态信息将会占用很长的时间并会延迟
Account Manager(账号管理程序)的启动,在这种情况下最好不要使用Show Status.
16.1.1 关于选项的默认值
许多Account Manager (账号管理程序)的选项有多重选择:YES ,No(或单一的数值型)
值)以及 Default(默认值)。当你选择 Default选项时,并不意味着只是简单地使用一个已复
制到用户账号里的固定值。相反,它会随着系统默认值的改变而动态地改变。在 SCO Ac—count Manager(账号管理程序)里,系统默认值的改变会立即影响到所有的账号。因此,在配置用户账号时对用户比较确定的项设定一固定值,而对要求大家统一的项可以设定一动态值。
16.2增加和修改用户账号
在 Account Manager(账号管理程序)中,从 Users的菜单里选择 Add New User来增加
用户账号,或先在用户列表中选定一账号,再从 Users的菜单里选择 Modiry来修改用户
账号。
在增加新用户时,你只需键入名字和设置一个口令即可。如果你选择 Set password later
(稍后再设置口令),该用户将不能注册。这时,你可以按照1.4.1节“设置或改变用户的口令”中描述的方法给该用户账号设置口令。
你还可以改变以下这些账号的属性,否则将采用系统默认值:
● 用户 ID号
● 注释(任选项)
● 口令
● 注册 shell
● 分布式(本地或 NIS)
● 起始目录
● 注册组
● 组成员
● 注册控制和锁定
● 权限——包括授权和特权
● 用户类型
● 用户进程的优先级
要改变系统默认值,从 Options的菜单中选择 User Defaults。
你也可以在命令行中健入:
useradd username
来创建用户账号。这时,账号的属性将采用默认值,除非你使用 useradd的选项来替代相应的属性值。
参见:
● 删除或闲置用户账号
● 复制用户账号
● 使用账号模板
16.2.1 使用账号模板
账号模板是指那些包含账号属性列表(如组成员和特权等)的文件,用于账号命令行实
用程序。
注意: 模板对Account Manager(账号管理程序)无用,它们只能用于账号命令行实用程序.
下面是一个模板示例,template l,它设置了几个属性,包括组成员、核心特权、注册
限制口令限制和授权等:
{grouPs(gedemondan cziIIian dillian type4l oolakash))
{kernelAuths(chown execsuID Su)}
{maxLoginAttempts 8}
(passwdExpirationTime 60)
(passwdLifetime 120)
(passWdRunGenerator 1)
(SubsystemAuths(Printerstat printqueue queryspace))
模板可用于创建新账号、修改已有的账号或改变系统默认值.
下面是使用模板template1为用户mavrac创建账号的命令:
useradd –X template1 mavrac
这个新账号将采用除了列在模板文件中的值之外的所有默认账号值。若要修改已有的
账号只需简单地用 usermod命令替换 useradd即可。 ‘
也可以使用模板文件修改账号默认值。假设你想用模板文件template1中的值替换当前
的系统默认值,可以使用如下命令:
usermod –D –X template1
可以用命令userls列出账号的属性,并借此创建模板文件。例如:以下命令将把用户
mavrac的属性转到文件 templatel中:
userls –1 mavrac –A >template1
userls的输出包含了账号的所有属性,也包括了那些不可更改的状态属性(如上一次注
册的时间)。你不能直接把它当作模板文件,但可以把它当作蓝本来编辑你所需要的模板
文件。
参见:
● userls(ADM)手册页
● groupadd(ADM)手册页
● groupls(ADM)手册页
16.2.2删除或闲置用户账号
在 Account Manager(账号管理程序)中,选择一用户名,然后从 Users菜单中选择
Delete(删除)或 Retire(闲置)。但如果你的系统安全级别属于增强的(Improved)或高级的
(High),就只有 Retire有效。
删除或闲置一个用户账号并没有删除用户的文件,系统管理员只能手工地删除用户的
目录。此外,在别的地方也还会有属于该用户的文件。如何处置这些文件可参见第1.2.5节“改变带有无效 UID/GID文件的属主”。
注意: 在高级安全级别(C2级)的操作系统里,用户永远有能从系统中删除.一旦创建了一
个用户, 其UID号永不能再用.这时, 只能将其闲置或从服务中删除. 在其它的安全级别
里, 用户可以从系统中彻底删除. 要使UID号可以重用并与安全模式无关,你应在/ etc/
default / login文件中定义REUSEID=YES.
参见:
● 重新启用闲置用户账号
● rmuser(ADM)手册页(用于命令行界面)
● unretire(ADM)手册页(用于命令行界面)
16.2.3重新启用闲置用户账号
使用 unretire(ADM)命令,用真正的用户账号名替换下一行中的username:
unretire username
该账号即可被重新注册.
注意: 在高级安全级别(C2)的操作系统里,用户永远不能从系统里删除账号.因此在高级
别的安全模式里,unretire将不起作用.
16.2.4设置和修改用户和组的 ID号(UID/GID)
每个用户和组都有一个标志号(UID或 GID),这个 ID号将会标记在那些出现在本地和以 NFS安装的文件系统中的所有文件、目录和进程上。当你创建新用户或组时,系统会自动地设定一个新的 UID或 GID号,但你可在相应的宇段中设定另外一个。
警告:在网络环境中,每个用户和组都必须有一个在整个网络环境里唯一的ID号,而不仅
仅是在自已的主机上. 详细资料请参见网络指南>(本系列从书之四)中
的”建立对等用户”和”配置网络信息服务(NIS)”.
要改变已有用户和组的 ID号,可使用 usermod(ADM)或 groupmod(ADM)命令。但请
注意,改变用户或组的 ID号并不能改变该用户或组所拥有的文件上的 ID号。系统管理员可以按照1.2.5节“改变带有无效 UID/GID文件的属主”中的描述手工做这些更改。
若要改变创建新用户时 UID的取值范围,可以选择 Option菜单中的 User Defaults。若要改变创建新组时 GID的取值范围,则可以选择 Option菜单中的 Group Defaults。
注意: 在高级安全级别的操作系统里,UID将不能改变;而在其它级别下, UID可随意修改.
参见:
● usermod(ADM)手册页(用于命令行界面)
● groupmod(ADM)手册页(用于命令行界面)
● 管理组
● 在目录里设置文件创建时的组 ID
16.2.5改变带有无效 UID/GID文件的属主
如果改变或删除了一个 UID或 GID号,属于该用户或组的文件就成了“孤儿”,你必须改变那些“孤儿”的属主,并检查文件系统中是否还有其它“孤儿”文件。那些没有真正属主的文件,在相应的属主和/或组的名字宇段将出现数字,如:
-rw-r-r-- l obie pub 68476 Nov 16 12:06 accts.s
-rw-r—r-- l 15625 pub 508 Oct 31 11:15 balance
-rw-r—r-- 1 obie pub 40596 Aug31 13:19 report.2
在上面的示例中,文件如balance就是一个“孤儿”文件。属主宇段出现的数字是因为文件上打的戳记是 ID号而不是用户或组名。
我们可以使用实用程序 find(C)来查找和改变文件的属主。下面这条命令将找到系统
中所有属于用户口UID的文件,并将其属主改变为用户 newowner:
find / -user UID –print | xargs –t chown newowner
而下面的命令则会改变组属性:
find / -group GID –print | xargs –t chgrp newgroup
注意:这两上例子都对整个系统进行了搜索(包括本地和远程的所有已案装的文件系统).若只搜索单一文件系统,由只要用路径名替换” / ”即可.此外,也可以使用-mount选项来跳过已安装的文件系统,或用-local选项来限制系统只搜索本地文件系统.
除了改变属主,也可采取其它措施,如将那些文件归档(见“定位文件”)等
参见:
● find(C)手册页
● xargs(C)手册页
16.2.6 改变用户注册组
在 Account Manager(账号管理程序)上,选择好用户名,然后从 Users菜单中选择Modiry选项。再单击 Change Group Membership(改变组成员)按钮改变 Logig Group(注册组)宇段的值。
注册组是用户所属的默认组,用户创建的文件和目录都属于该组。用户可以使用 sg(C)
命令暂时改变注册组。
注意: 如果把一个用户添加到一个并不存在的组中,那么就给你一个创建它的机会.当用户用这种方式设置用户注册组,该组就不会出现在”Member of”栏里,这是正常的.
若要改变系统默认的注册组,请从 Options菜单中选择 User Defaults
参见:
● 管理组
● 改变用户的组成员资格
● usermod(ADM)手册页(用于命令行界面)
16.2.7改变用户的组成员
在 Account Manager(账号管理程序)的界面上,先选择好用户名,然后从 Users菜单中选择 Modify选项。再单击 Change Group Membership(改变组成员)按钮。
若要把用户加到某一组中,在“Other Groups(其它组)”栏里选择相应的组名,然后单击add按钮。
若要从某一组中删除用户的成员资格,可先在“Member of”栏里选择相应的组名,然后单击 Remove按钮。
还可以在“Search for,,宇段输入组名来查找特定的组。
若要为新用户改变默认的组集合,请选择 Options菜单中的 User Defaults选项。
参见:
● 管理组
● 改变用户注册组
● usermod(ADM)手册页(用于命令行界面)
16.2.8改变用户注册 shl1
在 Account Manager(账号管理程序)上,先选择好用户名,然后从 Users菜单中选择Modify选项。使用 Login She11按钮从有效的注册 sheII列表中选择你自己喜欢的 sheII。
若要改变系统默认的注册 shelI,请选择 Option菜单中的 User Defaults选项。
每个 Shell都有一个或多个专用于该 shell的环境文件(如, ksh(C)有·profile和.kshrc)。你只需选择 Add Shell Environment FiIes to Home Directory(把 shell环境文件添加到起始目录中)就可将环境文件加进起始目录中(新建用户时,shell的环境文件会自动地复制到起始目录中,无需再单击此按钮)。
参见:
● usermod(ADM)手册页(用于命令行界面)
● 增加注册 sheII和环境文件
16.2.9注册 shell
通常我们可以使用以下注册 Shel1:
Bourne shell (/ bin /sh)
是通常所指的标准 shelI,也是人们开发的第一个 sheII。它支持通配持和基本命令
语言,有一个限制版本 rsh。
C shell (/ bin /csh)
其语法规则与 Bourne shelI和 Korn shell系列不同,有点类似 C编程语言。它支
持命令历史回调(即重新使用近期发出的命令而不需重新键入)和别名机制(定义命
令的“绰号”),并对输入、输出重定向功能做了限制。
Korn shelI(/bin/ksh)
是 Bourne sheII的超集,除了包括 Bourne shell的所有功能外,不仅支持命令历
史编辑(可以编辑先前发出的命令并再次发出)和别名机制,还支持任务控制(处理
后台进程),并扩充了语法规则。 Korn shell是我们推荐的 shell,它有一个限制
版本 rksh。
SCO sheII(scosh)
带有菜单形式的 shelI(字符界面)
uucp
只为使用 uucico(ADM)的 UUCP注册账号的用户开发的非交互式 shelI,不能供
普通用户账号使用。参见7.2.3节“为拨入站点创建注册账号”。
16.2.10 受限 she11
Bourne shell和 Korn shell的限制版本(rsh和 rksh)禁止使用 cd命令来改变目录和设
置 $PATH的值,不能使用包括斜线的命令,禁止使用>和≥做输出转向。
16.2.11改变用户起始目录
在 Account Manager(账号管理程序)上,选择好用户名,然后从 Users菜单中选择Modify选项。使用 Change Home Directory(改变起始目录)按钮来显示起始目录选项(在建用户时,只有前三个才有效),下面对界面上的一些宇段作些介绍:
Home Directory(起始目录)或 Home Directory Base Path(起始目录基本路径)
在此处输入起始目录名。当改变用户的默认值时,基本路径就是所有起始目录所在的
目录(如/usr).
Home Directory Permissions(起始目录的许可权)
指允许同组用户或其它任意用户访问起始目录的权限限制。该选项只在创建新目录和
改变默认的用户目录的节点(父目录)时才有效。
Greate Home Directory(创建起始目录)
增加新的起始目录。若你想使用现成的目录,请不要选择该项。
Move Files from Old Home Directory(从旧目录中移动文件)
将所有该用户的文件移到新的起始目录下。
要改变系统默认的用户起始目录的节点,请从 Options的菜单中选择 User Defaults选项.
注意: 在改变系统默认的用户起始目录的节点时,只是改变新用户的起始目录节点而不会
改变老用户的起始节点.
16.2.12 改变用户类型
系统提供的多种可选用户类型标签用于区别不同的用户类型。
注意: 被闲置账号其类型是”retired(闲置)”, 因此, 若把一个账号的类型设为”retired(闲置)”,该账号就会自动被闲置.但另一方面,用户类型更多的只是一种信息标签,它并不能表明特殊的权限.用户类型的属性不能从Account Manager(账号管理程序)中访问和更改.
要改变一个账号的类型,请使用如下命令
usermod –x “{user Type type}”user
这里,user就是账号的名称,而type只能取下面这些值中的一个:
root
operator
sso
admin
pseudo
general
retired
若要改变账号建立时的系统默认值,请键人:
usermod –D –x “{user Type type}”
在通常情况下,系统默认的普通用户类型标签是“general”,你无需改动它。而匿名账号(像 sysinfo/和uncp等)其标签是“pseudo—user”。每个伪用户都有一个对其账号负责的用户,如 root,就是对所有的伪用户账号负责的用户。
16.2.13改变用户的优先级
优先级值的设置将决定调度表中用户进程的优先级,其值越大,优先级越高。
要改变一个账号的优先级,可使用如下命令:
usermod –x “{nice value}” username
使用传统调度表的进程其优先级在0(低)~127(高)之间,而使用实时调度表的进程其优先级在128~255之间。
若要改变在用户账号创建时系统默认的优先级值,其命令如下:
usermod –D –x “{nice value}”
参见:
● nice(C)手册页
16.2.14 增加注册 shell和环境文件
你可以从 Account Manager(账号管理程序)向有效的注册 shell集中增加注册 sheII(和
配置文件)。例如,csh(C)的配置文件是.login和. cshrc,当一个用户选择 csh作为自己的注册 She11时,系统就会自动地将这两个文件安装到用户起始目录中。每个 shelI都在/usr/lib/mkuser下有一个目录来存放自己的配置文件。你可以检查现存的文件,并按照它们的形式来增加新的注册 sheII及其配置文件。只是要注意新加文件的许可权和属主应和原有文件的一致。这样,当你再使用 Account Manager(账号管理程序)时,新的注册 shell就有效了。
16.3管理用户组
创建用户组的主要目的是用于控制对某类文件和目录的访问权限。比如,当你只想让
一些特定的用户才能访问某些文件时,你可以创建一个工作组,通过组的权限来管理这些文件和可以访问这些文件的成员。与组相关的一些操作如下:
● 增加或修改用户组
● 删除用户组
● 改变用户注册组
● 改变用户组成员
● 在目录中设置文件创建时的用户组 ID号
● 改变用户组成员资格数的限制
警告:不要改变任何默认系统用户组的组GID号.
16.3.1用户组
用户组允许一类用户共享文件。一个文件或目录的组许可权决定了该组成员的访问权
限。你可以通过桌面系统或使用 chgrp(C)命令来改变一个文件或目录的组属性。
一个用户可以同时是几个用户组的成员,可以访问这些用户组的文件和目录(只要组许
可权允许)。在默认情况下,一个用户创建文件时,其用户组属性将是该用户注册组的 ID
号。用户可以使用 sg(C)命令来改变自己的当前工作组。
注意: 当在一个目录中创建文件时,文件的用户组属主是由GID位的设置决定的.参见”在目录中设置文件创建时的组GID号”.
16.3.2 增加或修改组
在 Account Manager(账号管理程序)上,从Groups菜单中选择 Add New Group(增加
新组)选项。键入组名,然后就可以在组 ID号宇段决定是否改变系统提供的组 ID号。
若要修改一个已存在的组,可先从 View菜单选择 By Group选项,然后选择一个组名,再从 Groups菜单选择 Modify(修改)选项。
若要把一个用户增加到某一组中,在“Other Users(其他用户)”栏选择一项,然后单击
Add按钮。
若要从某一组中删除一个用户,在“Users ln Group(组中的用户)”栏选择一项,然后单击 Remove按钮,也可以通过查询某一用户名来进行选择。
若要改变新组 GID号的可选择范围,可从 Options菜单中选择 Group Defaults。
若要从命令行创建组,可用如下命令:
groupadd groupname
这时,.新组的属性都将采用默认值,除非你用groupadd(ADM)的任选项来替代相应的值.
注意:你也可以通过编辑文件/ etc / group 来增加或修改组,但我们建议你最好使用Account Manager(账号管理程序)或groupadd命令来做这些工作.
16.3.3 删除用户组
在 Account Manager(账号管理程序)的界面上,先从 View菜单选择 By Groups选项,
然后,选择一个组名,再从 Groups菜单选择 Delete选项。
删除一个组后,并不会改变系统中属于该组文件的 GID号。系统管理员只能用手工方
式更改这些文件的组 GID号。有关信息参见1.2.5节“改变带有无效 UID/GID文件的属主”。
参见:
● 增加或修改组
● groupde1(ADM)手册页(用于命令行界面)
16.3.4 在目录中设置文件创建时的组 ID号
在默认情况下,新文件的 GID号是和创建该文件的进程或用户的 GID号一致的。但若你设置了一个目录的 SGID位,则该目录所属文件的组 GID号都将与该目录保持一致。这就使得人们能更方便地共享文件,因为它能保证在同一目录下的文件具有相同的组 ID号,而不管这些用户的注船组是否一致。
要在一个目录中设置 SGID位,可使用如下命令:
Chmod g十s directory
若要删除该位,则只需将上条命令中的“十”替换为“一”即可。
16.3.5 改变用户组成员资格数的限制
在默认情况下,一个用户同时最多只能是8个组的成员,这个数是由可调整的核心参数NGROUPS决定的。要改变这个值可使用 Hardware/KerneI Manager(硬件/核心管理程序)或 configure(ADM)命令。选择第7项“User and group configuration(用户和用户组配
置)”,然后改变 NGROUPS的值。当然,新值只有核心重新链接并重新引导后才能起作用。
详细信息请参见《SCO OpenServer系统手册》(本系列丛书之一)中“重新链接核心”一节。
16.4管理口令
口令是防止非法用户入侵的第一道屏障,给所有用户设置口令可以保护系统。与口令有关的管理任务如下:
● 设置或改变用户的口令
● 控制口令的过期
● 控制口令的选择——包括口令的使用和生成以及它的长度和“明显性”
● 设置拨号口令
16.4.1设置或改变用户的口令
在 Account Manager(账号管理程序)上,先选择好用户名,然后从 Users菜单中选择
Change Password(改变口令)选项。这时,就会出现如下选项:
Enter a new Password(键入新口令):允许你创建一个新口令。
Keep existing password(保持现有口令):维持当前的口令(这个选项在账号创建的过程中
无效)。
Use machine generated password(使用机器生成的口令):允许系统为用户生成一个口令。
Remove password(删除口令):删除口令并允许用户注册时不用口令。
Force password change at next login(强迫下次注册时改变口令):强迫用户在下次注册时
改变他们的口令。
若你想键人一个新口令,请先在“Enter Password,,宇段输入口令(口令将不会显示出来),然后再在Confirm Password(核实口令)”宇段再次输入口令。
单击 Generate a password(生成口令)按钮,系统将为用户生成一个口令。由此生成的口
令是毫无意义但可拼读的词,而不仅仅是随机字符串(如:juhahiwa)。口令将自动地出现在
口令宇段,单击 OK按钮表示接受该口令,否则就再单击 Generate...按钮,直到生成你满意的口令为止。
用户也可以生成自己的口令,除非系统管理员禁止他们使用口令生成程序。有关细节请参见“允许用户生成口令”。
参见:
●l“不同安全级别的口令检查”
● passwd(C)手册页(用于命令行界面)
16.4.2控制口令过期
在 Account Manager(账号管理程序)上选择好用户名,然后先从 Users菜单中选择
Password Restrictions(口令限制选项),再选择 Expiration(过期)。
下面的宇段将允许你改变系统管理口令的一些默认值(你可以选择单选的默认键来防
止改变系统的默认值),分述如下:
Days a11owed between changes(允许改变口令的天数)
设置用户可以再次改变口令必须等待的天数。这样可以防止用户在一个口令刚过期后
就立即通过多次更改口令回到原来的口令中去。
Days until password expires(口令过期的天数)
设置口令有效的天数。当口令过期后,用户再注册时,系统就会自动提示其改变口令。
Days untiI account is locked(账号将被锁住的天数)
设置口令过期后到账号自动被锁住(可以防止用户注册)的时间间隔天数。
若要认命令行改变系统的默认值,可使用如下命令:
usermod -D -x ”{passwdMinChangeTime value}”
usermod -D -x “{passwdExpirationTime value}
usermod -D -x”{passwdLifeTime value}”
你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
-D选项并在末尾加上用户名即可。
注意:低级和传统的安全级别中对口令的限制非常宽松:口令不会过期,账号不会被锁住,也没有改变口令的最短时间间隔的要求.
默认的账号初始化文件(如:.cshrc,.profile,.kshrc等)会自动地执行 prwarn(C)公用
程序,在注册时警告用户就要临近的口令过期期限。
参见:
● 锁住或解锁用户账号
● usermod(ADM)手册页(用于命令行界面)
16.4.3 控制口令选择
口令选择约束给了系统管理员这些能力
● 允许账号不用口令
● 禁止用户改变口令
● 限制口令
● 允许用户生成口令
● 设置口令长度
16.4.3.1允许账号不用口令
在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选
择 Password Restrictions(口令限制)选项,再选择 Selection(选择)。
要允许用户注册时不用口令,可将 Password Required设为 No(若要使用系统默认值,可将其设为 Default)。不过,请注意设置账号无口令会给安全带来很大的危险。
要改变系统默认值,请使用命令:
usermod –D –x “{passwd NullAllowed value}”
其中,value只能取值 l(无口令要求)或0(有口令要求)。
你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
-D选项并在末尾加上用户名即可。
警告: 删除口令要求并没有删除现有的口令.系统管理员必须给每个用户改变口令并将其设为空(见”设置或改变用户口令”或使用passwd (C)命令行).
16.4.3.2 禁止用户改变口令
在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选
择 Password Restrictions(口令限制)选项,再选择 Selection。
将 User can choose own(用户可以自己选择)设为 No(若要使用系统默认值,将其设为
Default)。这样,口令过期后,用户只能从系统管理员处或口令生成程序中获得口令。
要改变系统默认值,请使用命令:
usermod –D –x “{passwd Choose Own value}”
其中,value只能取值 l(用户可以改变口令)或0(口令只能由系统管理员或口令生成程序
提供),
你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
-D选项并在末尾加上用户名即可。
16.4.3.3允许用户生成口令
在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选
择 Password Restrictions(口令限制)选项,再选择 Selection(选择)。
你可以选择由系统为用户生成口令,这样能防止用户采用“明显”口令(如采用用户个人的一些特征资料当口令),很容易就被有经验的入侵者猜出来。
若要允许用户生成(但不是自己选择制定)新口令,将 User can run generator(用户可以运行口令生成程序)置为 Yes。若要使用系统默认值,则可将其置为 Default。
要改变系统默认值,请使用命令:
usermod –D –x “{passwd Run Generator value}”
其中value的值只能是 l(用户可以运行口令生成程序)或0(用户不能运行口令生成程序)。
你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉--D选项并在末尾加用户名即可。
16.4.3.4限制明显的口令
口令控制的一个重要方面就是要保证口令很难被猜出面又不太复杂难记。你可以防止
用户使用太容易被猜出来的口令,如字典中的词或系统名称等太“明显”的口令。
在 Account Manager(账号管理程序)的界面上选择好用户名,然后先从 Users菜单中
选择 Password Restrictions(口令限制)选项,再选择 Selection。
把 Check for Obviousness(检查口令的“明显性”)置为 Yes,将对口令进行复杂的检查。
若要使用系统的默认值,则可将其置为 Default。这里,Yes和 No的含义将随系统安全级别的不同而有变化。若想将其含义设为与系统安全级别无关,请参见1.4.3.5“自定义口令检查”一节。
要改变系统默认值,请使用命令:
usermod –D –x “{passwd Checkd For Obviousness value}”
其中,value只能取值 l(使用复杂口令检查)或0(使用限制较少的口令检查)。
也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉-D
选项并在末尾加上用户名即可。
表1-I不同安全级别的 口令检查
安全级别默认值
检查口令的”明显性”
No
Yes
Low
-
-
Traditional
System V
System V –plus
Improved / High
Goodpw 弱
Goodpw强
System V/(传统的 UNIX系统 V口令检查)检查口令中是否为:
● 不是注册名的循环移位(如将第一个字符移到末尾,将第二个宇符移到第一个, 反
之亦然)。
● 至少包含两个字母字符和一个非字母字符。
● 至少有三个字符与旧口令不同。
● 口令长度至少不短于在文件/etc/default/passwd过中定义的 FASSLENGTH值。
若没有定义 PASSLENGTH或将其设为“*”,则根据用户的注册尝试次数和口令的生
存期进行一个特殊的长度检查。
System V-plus(System V增强版)还将检查口令是否为:
● 不是回文
● 不是组名或用户名
goodpw弱将检查口令是否为:
● 不包括“SCO”,“XENIX”或“UNIX”等字符串(定义在文件/usr/lib/goodpw/ reject
中).
● 不包括用户名、用户组名、机器名以及命令的别名
● 根据字符的组成进行特殊的长度检查(定义在/usr/lib/goodpw/match人中,并
替代了系统的最短长度设置):
一如果口令都是由字母字符组成,并且大小写一致,则其长度不能少于6个字符
一如果口令既有字母字符又有数字字符,则其长度不能少于5个字符
一如果口令由非字母和数字字符(即符号字符)组成,或者是大、小写字母字符与数
字混合组成,则其长度不能少于4个字符
goodpw强(在goodpw弱的基础上再加额外检查)还将检查口令是否为:
● 不包含字典中的词
● 不是用户名、组名、机器名、命令的别名或者字典词的循环移位
goodpw(ADM)的口令检查定义在/usr/lib/goodpw目录中,并可通过该目录下的文件对口令检查进行补充修改。有关细节请参见1.4.3.5“自定义口令检查”一节。
注意:”明显性”检查可以防止基于字典猜测的入侵,但对那些不断重复的入侵尝试可以由注册限制更好地控制住-------参见义勇为.5.2节”设置终端的注册限制”.”明显性”检查减少了对改变口令的时间要求.
有关细节,可参见 usermod(ADM)手册页(用于命令行界面)。
16.4.3.5自定义口令检查
你也可以使用goodpw(ADM)公用程序自定义口令检查。文件/etc/default/goodpw包含了口令控制设置,这些设置决定了是否进行防止字典词、词循环移位、用户名、组名以及系统名等的检查。
注意:口令检查也可以通过编辑/ etc / default / passwd和改变GOODPW的值来设置,其中GOODPW的值含义如下:
YES 使用goodpw
NO 使用标准的UNIX系统口令检查
NONE 不执行口令检查
你也可以在文件/usr/tlb/goodpw/ match(或/usr/lib/goodpw / reject)中定义则表达式(字符组合和范围)来规定口令必须匹配(或不匹配)该表达式。有关细节请参见 Boodpw
(ADM)。
16.4.3.6设置口令长度
口令长度由三个参数控制:
● 最短长度
● 最长生成长度——对口令生成程序的口令限制
● 特征段数——参见“不同 UNIX”系统间的口令兼容性
非口令生成程序生成的口令,其最长长度为80个字符。
你可以随时改变文件/etc/default/passwd 中 PASSLENGTH的值来重新配置口令的最短长度。你若从该文件中删除了 PASSLENGTH或将其值设为“.”(PASSLENGTH= *),
则 PASSLENGTH将由系统计算而得。有关细节请参见“限制口令”的“明显性”一节。
你也可以通过 Account Manager(账号管理程序)配置单个用户的口令生成长度。在 Account Manager(账号管理程序)的界面上选择好用户名,然后从 Users菜单中选择 PasswordRestrictions(口令限制)选项,再选择 Selection(选择)。
要改变系统中口令生成长度的默认值,请使用命令:
usermod –D –x “{passwd Generated Lenth value}”
其中,value的最大值为80。
你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉-D选项并在末尾加上用户名即可。
参见:
● 允许用户生成口令
16.4.4设置拨号口令
你可以为选定的 tty行定义专用的拨号口令,并可要求相应类的用户在拨号注册时键入口令。有关的注册信息(包括上一次注册时间)的存储方法同普通注册的一样。
需要口令的特殊在线拨号行定义在文件/etc/dialups中。其格式是每行包括一个 tty 设备,如
/ dev / tty1 A
/ dev / tty5 C
真正的拨号口令存储在文件/etc/d_passwd 中,口令的格式与文件/etc/passwd一致。但在/etc/d_passwd中的第一个宇段(“用户名”宇段)并不是真正的用户名,而是文件/etc/passwd中的 shell程序名,如/lib/sh。如果用户试图注册的 tty行(该行列etc/dialups中)的注册 sheII列在文体/etc/d_passwd中,那么需要拨号口令的用户也存储在/etc/passwd 中。
可使用以下命令行来创建拨号线路口令:
passwd –m dialname
也可用这条命令来改变拨号 SheII dialname(列在/etc/d_passwd中)的口令。如果 dialname是以“/开头,则整个 shel1名字都必须匹配。若不是以“/”开头,则所有名为 dialname的 shelI的口令都将改变。当然,这里也只有超级用户才有这个权限。
16.5设置注册限制
注册限制可以使用锁住的方法防止非法用户的入侵。以下这些注册限制使非法用户很难通过多次重复的注册来猜测用户的口令并进入系统:
● 设置账号的注册限制
● 设置终端的注册限制
● 锁佐或解锁用户账号
● 锁佐或解锁终端
16.5.1设置账号的注册限制
你可以限制一个账号的连续多次的注册失败次数,一旦这个次数达到了,该账号就会自动地被锁住,以此来防止非法的入侵。
在 Account Manager(账号管理程序)的界面中选好一个用户名,然后从 Users菜单中
选择 Login Controls(注册控制)。
在“Failed login attempts allowed before account is locked(账号锁佐以前允许注册失败的次数)”宇段输入一个值,然后单击 default of(设为默认值)按钮将其设为默认值。
要锁住或解锁一个账号,请参见“销往或解锁用户账号”。
要改变系统的默认值,请使用如下命令:
usermod –D –x “{maxloginAttempts value}”
你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
-D选项并在末尾加上用户名即可。
注意:终端限制的控制级别超过注册限制.
参见:
● usermod(ADM)手册页(命令行界面)
● 设置终端的注册限制
16.5.2设置终端的注册限制
你可以设置一个终端的注册限制来防止非法的入侵。通常情况下,连续多次的注册尝试基本上是在猜口令。
Terminal Manager(终端管理程序)位于 SCOadmin层次结构的System 目录下。要设
置所有终端的注册限制,请在 TerminaI Manager(终端管理程序)界面中选择 Defaults。若只想限制个别终端,则请选择 Examine(检查)。
你可以通过终端管理程序来控制以下属性:
Consecutive unsuccessfu1 logins(连续注册失败次数)
设置终端自动锁住以前可以连续注册失败的次数。输入“INFINITE”或“infinite
将禁止此类型的终端限制。
Delay between attempts(两次注册尝试间的延迟时间)
设置两次注册尝试的间隔时间。这时,在再次注册尝试前将显示 Wait for login retry:的消息。
Time to complete login(完成注册尝试的时间)
设置每次注册的最大时间间隔。如果在此时间内没有完成注册,系统自动认为注册
失败并再次启动注册进程(但如果已达到最大的注册次数,系统将锁住该终端)。
在五次注册尝试失败后,注册会话将终止,并在经过“两次注册尝试间的延迟时间”之后才开始新的注册会话,这五次注册的限制是不能改变的。当注册是通过调制解调器连接的那么连续五次注册失败后将断开调制解调器的连接。
注意:在超级用户注册时,系统主控台的锁住将是无效的,这能防止一个系统上所有的用户都被锁住的情况发生.由于系统上只有这样一个特殊注册,所以一定要维护好主控台.
参见:
● 日志不成功注册尝试
16.5.3 锁住或解锁用户账号
在 Account Manager(账号管理程序)中选好一个用户名,然后从 Users菜单中选择 Login Controls (注册限制)选项。
要锁住该账号,则单击 Lock Account(锁住账号)按钮。如果该账号早已被锁住,则显示为 Unlock Account(解锁账号)按钮,只需单击它,就能给账号解锁。
如果一个账号已被锁住,它将出现在“Current Account Lock Status(当前账号锁住状
态)”栏的列表里。一个账号遇到以下的情况将被锁住:
● 系统管理员锁住账号
● 连续失败的注册尝试次数达到了注册限制次数
● 账号口令过期
你也可以通过以下命令行来解锁账号:
passwd –u username
要锁住账号,则只需用—I替换“—u”即可。
参见:
● 控制口令过期
● 设置终端的注册限制
16.5.4 锁住或解锁终端
这里的终端是指与用户注册相关的设备文件,如/dev/tty01及/dev/ttyp00等。
若使用 Terminal Manager(终端管理程序)(位于 SCOadmin层次结构的System目录下)来锁住或解镀一个终端,只需在其界面中相应地选择 Lock或 Unlock既可。当系统提示
你输入终端名时,请输入相应的终端名(如 tty01)。在一个终端被锁住后,再在该终端尝试注册时,将出现如下信息:
Terminal is disabled—see Authentication Administrator
16.6 分配用户极限
系统管理员可以有选择地授予(或限制)用户的某些特殊权限:
● 分配子系统的权限——使用户具备运行系统管理程序的能力
● 改变系统特权——给用户进程授予特权
● 允许用户跳过注册消息
● 允许用户执行超级用户命令——使普通用户能运行只有超级用户才能执行的命令
● 使用 su(C)访问其它账号
● 控制工作调度表命令的使用——用 cron(C),at(C)和 batch(C)来调度工作
在低级或传统的安全特征级别里,普通用户在通常情况下基本具备以上所列的权限。而在高级(C2)安全特征级别里,普通用户很少具备这些权限,通常由系统管理员授权给他所信任的用户。
16.6.1 分配子系统的权限
这里的权限主要是指允许用户运行某些系统程序。 UNIX系统将超级用户权力分成多
个子系统,访问这些子系统的权限我们称之为基本权限。而为了能更好地管理子系统权限,
我们又对这些子系统进行了分类,访问这些类的权限就称之为辅助权限,这样辅助权限的权力就更受限制了。其中,基本权限一般只能授予系统管理员所信任的用户。
在 Account Manager(账号管理程序)的界面上选好用户名,然后从 Users菜单中选择
Authorizations(权限)选项。
To change authorizations(要改变权限),先撤消对 Use system default authorizations
for this user account(对该用户使用系统默认的权限)按钮的选择,然后即可对该用户分配
特殊的权限组合。
To add an authorization(要增加一种权限),在“Not authorized(没有授权的权限)”栏
里选择一项,然后单击 Add按钮。
To remove an authorization(要删除一种权限),在“Authorized(己授权的权限)”栏里选
择一项,然后单击 Remove按钮。
要改变权限分配的系统默认值,使用如下命令:
usermod –D –x “{subsystem Auths {list}}”
其中 list是一列由空格分隔开的权限值。
你也可以用 usermod(ADM)命令来改变单个用户的值,只要在上面的命令行中忽略掉
—D选项并在末尾加上用户名即可。
16.6.1.1基本权限
基本权限有效地将超级用户权力分成多个子系统,允许你给指定的用户分配特定的权
使用辅助权限可以给普通用户分配更受限制的权力。
如果用户缺乏运行某个 SCOadmin管理程序的权限,系统将会显示如下信息:
YOU are not authorized to run…
基本权限列表
权 限
SCO admin管理程序
权 力
Mem
─
可访问系统数据表,并能列出所有系统中的进程
Terminal
─
Write(C)命令的使用将不受限制
Lp
Printer Manager
管理打印机
Backup
Backup Manager
执行备份
Auth
Account Manager
Terminal Manager
管理账号和终端
增加用户,改变口令,控制注册
Audit
Audit Manager
执行系统审计并产生报告
Cron
Cron Manager
控制cron(C),at (C)和batch(C)命令的使用
Root
─
可使用任何在目录/tcb/files/rootcmds下的命令─参见”允许用户执行超级用户的命令”一节
Sysadmin
Filesystem Manager
可以改变文件系统安装配置
Passwd
Account Manager
可以改变用户口令
16.6.4允许普通用户执行超级用户命令
你可以让普通用户执行某些只有root才能执行的命令而无需给该用户完全的root权限。root可以使用 asroot(ADM)公用程序来创建相应命令的新的授权,然后你就可将这些
权限授予相应的用户。你也可以把 root子系统的权限授予用户,可使其能运行所有由 as—root配置的命令。例如,若已把 shutdown的权限授予用户,则该用户就可按如下格式运行shutdown命令:
/ tcb / bin / asroot shutdown
有关配置超级用户命令的过程细节,请参见 asroot(ADM)手册页。
注意:若系统设置为高级安全级别,那么,执行asroot公用程序时,将要求输入用户的口令.
参见:
● 分配子系统权限
● 使用 su(C)访问其它账号
16.6.5 使用 su(C)访问其它账号
su(C)公用程序可以让用户暂时地切换到其他账号。当su命令不带参数执行时,将切换到root账号,而若想切换到其它账号,则应按如下格式:
su username
su会提示你输入相应账号的口令,若正确,就会在该账号下启动 Bourne shell。使用su
切换不会影响到注册用户 ID(LUID),因此注册和审计记录会保留原值。
若上条命令中使用了(—),即 su—”,则会建立该用户的环境(包括注册 sheII,起始臣
等),就好象用户是直接以该账号注册似的。要退回到你原先的账号,只需建入 exit或按·
Ctrl>D键。
用户在使用 su以前必须拥有 su权限。用户可以使用 su切换到伪用户或root账号或其它不需要他负责的账号。有关细节,请参见“分配子系统权限”一节。
注意:在低级,传统和增强安全级别里,su权限都默认地分配给所有的账号.用户只要知道口令就可su到任何一个账号.而在高级安全级别里,su权限不是系统默认值.
参见:
● Su(C)的用法
● 分配子系统权限
● 允许用户执行超级用户的命令
16.6.5.1记录 su(C)的用法
若 SULOG登记项:
SULOG=/usr/adm/sulog
出现在文件/etc/default/su里,su(C)命令的使用情况将记录在文件/usr/adm/sulog里,其格式如下:
SU 07/08 22:32十 ttyp0 mavrac—root
在登记项里注明了日期,时间,地点和使用su命令的程序.
参见
● 检查和清理系统日志文件
16.7复制用户账号
可使用 ap(ADM)公用程序从别的SCO系统复制用户账号.ap可以创建一个包含一个或
多个用户所有账号数据的特征文件.但若你已配置了NIS,就无需再用ap.
警告:ap公用程序所创建的特征文件不能移植到非SCO UNIX系统.如果你需要从其它厂家的UNIX系统或SCO XENIX系统中移植账号,请使用ad-dxusers(ADM)公用程序(参见”从SCO UNIX系统复制用户账号”一节)
账号信息是从/etc/passwd文件和Protected Password数据库中收集的, 而一些不
重要的信息(如失败的注册消息,失败的改变口令消息,上一次注册的时间和地点等)将被忽略.
要创建账号特征文件并将其安装到另一个系统上,请执行如下步骤:
(l)在账号所在的机器上,以root注册,然后键入如下命令:
ap—d—V username >profile.acct
其中usernames是一个或多个账号的名字
(2)在目标机器上,以root注册,并将文件Profile,acct复制到该系统上(如使用tar
命令).
(3)然后键入如下命令:
ap –r –f profile ,acct usernames
这样,账号的复制就完成了,新账号准备就绪.
参见:
● 本系列丛书之四《SCO OpenServer网络指南》中”管理NIS用户和组”
● 复制用户账号到非SCO UNIX系统
● 从SCO XENIX 或非SCO UNIX 系统复制用户账号
16.7.1把用户账号复制到非SCO UNIX系统
你可以通过复制etc/passwd文件和/etc /shadow文件(若合适)将用户账号移植到其它厂家的 XENIX或 UNIX系统上。如果目标系统不使用/etc/shadow文件,那就在本地机上先运行 pwunconv公用程序将账号信息集中在/etc/passwd上,再将其复制到目标系统上。
16.7.2从 SCO XENIX或非 SCO UNIX系统复制用户帐号
你可以使用 addxusers(ADM)公用程序从 SCO XENIX(或非 SCO UNIX)系统复制用户账号。 addxusers可接受已编辑的etc/passwd文件作为其输入,并会对数据库做一些必
要的修改以符合你的系统。详细的操作步骤可参见 addxusers(ADM)手册页。
16.7.2.1不同 UNIX系统的口令兼容性
SCO系统的口令编码方案保持了与其它 XENIX和 UNIX系统的兼容,同时也提供了口
令超过8个有效字符的能力。尽管在增强或高级安全级别里,口令长度最长可达80个字符,但太长口令不可能移植到其他厂家的 UNIX系统上。为确保兼容性,你可以限制口令的长度。
要重新配置口令有效成分的数目,请使用命令:
usermod –D –x “{passwdSignificantSegments value}”
其中value的取值范围是 l—10。取值 l(而不是增强或高级安全级别里默认的10)将允许加密机制忽略掉前8个字符以后的字符,这样可确保与其他系统的完全兼容。
警告:绝大多数XENIX和UNIX系统都能接受超过8个字符的口令,但通常只将前8个字符加密.若从这样的系统里移植一个加密口令字符串到SCO系统里,将会产生不可预期的结果.若一个口令长度超过8个字符,如”narcissus”,移植到SCO系统后将只能认前8个字符”narcissu”.
16.8 账号管理的故障诊断
Account Manager(账号管理程序)显示的出错信息大都是自解释的,其它的就是普通的真正的出错信息,如:
Unable to create new user account:name
在这种类型的出错框里还有一个 Details(细节)按钮可提供更详细的附加信息。问题的
报告大致分为如下三类:
● 用户或组属性的非法设定
● 远程管理的问题
● 丢失或损坏数据库文件
16.8.1用户或组属性的非法设定
当创建或修改用户和组时,下列情况会引起错误:
● 在属性栏(包括用户名、起始目录和注释)里含冒号(:)或换行符
● 注册 shelI(或路径名)拼写错或不存在
● 非法的用户或组名(名字以数字字符开头或超过8个字符)
● 非法的 UID或 GID号(ID号只能在其最大值和最小值之间,在 Account Manager
的 Option菜单下选择 user或 Group会列出其取值范围)。
16.8.2远程管理的问题
若你是在远程进行系统管理,你也许不能达到远程系统或有其它配置问题(包括缺少用
户对等性)。有关细节可参见本系列丛书之四《SCO OpenServer网络指南》中的“解决 TCP/IP的问题”或“用 SCOadmin管理程序管理其它系统”这两节。
16.8.3 丢失或损坏数据库文件
在出错的框里单击“Details”按钮可能会指明文件数据(或文件本身)丢失情况,如:
The user name does not exist in /etc /passwd
这就表明/etc/passwd中的账号数据库项损毁或该文件本身丢失。表 l—7列出了 AccountManager(账号管理程序)会访问的关键文件。按如下方法可解决这类问题:
(l)使用 tcbck(ADM)命令来确定是否有文件丢失:
tcbck
这会列出所有丢失的数据库文件。
(2)若没有文件丢失,或只有文件/tcb/files/auth/r/ root丢失,则使用
authck(ADM)命令检查安全数据库并解决不一致性问题:
authck –a –y
authck 会给toor和其他任何用户重新产生 Protected Password数据库登记项。
(3)使用 more(C)查看在步骤 l中报告的已丢失的文件。若该命令报告某个文件没有
发现或显示出空白,请按本系列丛书之一《SCO OpenServer系统手册》中的“恢复关键的安全性数据库文件”一节的步骤解决该问题。若没有问题了,请再使用 Account Manager(账号管理程序)。
表 l—7与安全相关的文件
文 件 名
作用
Etc/auth/system/default
默认的控制数据库
/etc/auth/system/authorize
权限数据库
/etc/default/accounts
账号/组创建时的默认值
/etc/group
组数据库
/etc/passwd
账号数据库
/tcb/files/auth
保护口令数据库目录
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17749/showart_103827.html |
|