AIX 4.3.3系统管理培训教材
第四章 用户和组管理
4.1概述
4.1.1 用户登录和初始化
由init进程启动ODM中设置的端口
对直接连接的可用端口,由init启动的getty进程将在终端上显示登录提示信息。该提示可在文件/etc/security/login.cfg中设置。
用户键入登录名后,login程序要检查文件/etc/security/login.cfg,系统也将根据文件/etc/passwd和/etc/security/passwd检查用户名及用户口令。
用户环境由以下文件来建立:/etc/environment、/etc/security/environ、/etc/security/limits、/etc/security/user .
login程序将当前目录设置为用户的主目录,并且在$HOME/.hushlogin文件不存在的情况下,将显示/etc/motd文件的内容和关于上次登录的信息。
最后,控制权被传递给登录shell(在/etc/passwd中定义),对于Bourne和Korn shell,将运行/etc/profile和$HOME/.profile文件,对Csh,则执行$HOME/.login和$HOME/.cshrc文件。
对使用CDE界面的系统,用户登录时系统先要执行$HOME/.dtprofile文件,并根据DTSOURCEPROFILE环境变量的设置来确定是否执行$HOME/.profile或$HOME/.login文件。DTSOURCEPROFILE=true表示要执行上述文件,缺省情况下该设置被注释掉,表示不执行用户的$HOME/.profile或$HOME/.login文件。
用户的初始化文件
用户登录时,系统设置用户环境主要依据下述文件:
? /etc/profile
设置系统范围内公共变量的shell文件。设置如TERM,MAILMSG,MAIL等环境变量。 ? /etc/environment
指定对所有进程适用的基本环境变量。如HOME,LANG,TZ,NLSPATH等。 ? $HOME/.profile
用户在主目录下的设置文件,覆盖/etc/profile文件中的命令和选项。
18
AIX 4.3.3系统管理培训教材
4.1.2组的分类
? 组是用户的集合,组成员需要存取组内的共享文件
? 每个用户至少属于一个组,同时也可以充当多个组的成员 ? 用户可以存取自己组集合(group set)中的共享文件。列出组集合可用groups或者
setgroups命令。
用户的主组在用户创建文件时参予决定文件主。修改主组可用newgrp或setgroups命令。 创建组的主要目的是组织和划分系统和网络用户,与系统安全性策略密切相关,因而是系统管理中的重要工作。在大型系统中定义组的工作十分复杂,一旦系统开始运行,要修改组的结构更加困难。因此管理员在系统开始投入使用之前,需要花时间来设计分组。
组的划分尽量与系统的安全性策略相一致,不要定义太多的组。如果按照数据类型和用户类型的每种可能组合来划分组,又将走向另一个极端,会使得日常管理过于复杂。
每个组可以任命一到多个组管理员,经管理员有权增减组成员和任命本组的管理员。 系统中有三种类型的组: ? 用户组
系统管理员按照用户共享文件的需要创建的,例如同一部门,同一工程组的成员所创建的组。 ? 系统管理员组
系统管理员自动成为system组的成员,该组的成员可以执行某些系统管理任务而无需是root用户 ? 系统定义的组
系统预先定义了几个组,如staff是系统中新创建的非管理用户的缺省组,security组则可以完成有限的安全性管理工作。其他系统定义的组用来控制一些子系统的管理任务。
系统定义组的分类
system,security,printq,...等组的成员能够执行特定的系统管理任务。
这些系统定义组的划分不是依据组织的原则,而是按照用户任务和功能来划分的。 系统中通用的组有:
system 管理大多数系统配置和维护标准软硬件。
Printq 管理打印队列,该组成员有权执行的典型命令有:enable,disable,qadm, qpri等。 Security 管理用户和组,口令和控制资源限制。该组成员有权执行的典型命令有:
mkuser,rmuser,pwdadm,chuser,chgroup等。
adm
执行性能,cron,记帐等监控功能。
mkuser.defaults中修改该设置。
audit
管理事件监看系统。
Staff 为所有新用户提供的缺省的组,管理员可以在文件/usr/lib/security/
19
AIX 4.3.3系统管理培训教材
4.1.3用户划分
? 为了保护重要的用户和组不受security组成员的控制,AIX设置管理用户和管理组 ? 只有root才能添加,删除和修改管理用户和管理组
? 系统中的用户不论属于哪个组,均可以被指定为管理用户 # cat/etc/security/user userl: admin=true ……
执行系统管理任务的能力取决于标准的AIX文件许可权,大多数系统管理工作可以由非root的其他用户,如指定的system,security,printq,cron,adm,audit组的成员来完成。特别是,属于security组的成员有权添加/删除/修改其他的用户和组。
为了保护重要的用户和组不受security组成员的控制,AIX将用户划分为二类:root,管理用户/管理组,普通用户/普通组。只有root才有权添加/删除/更改管理用户/管理组。 4.2 用户管理
SMIT用户菜单
# smit users Users Move cursor to desired item and press Enter. Add a User Change a User′s Password Change / Show Characteristics of a User Lock / Unlock a User′s Account Remove a User List All Users ……
列示所有用户
? smit users中选择List All Users选项
? lsuser [-c|-f] [-a attribute..]{All username..}
# lsuser –a id home ALL root id=0 home=/ bin id=2 home=/bin sys id=3 home=/usr/sys ?
zhang id=202 home=/home/zhang
在SMIT菜单选择List All Users选项时,得到的输出是用户名,用户id和主目录的列表。 也可以直接用lsuser命令来列示所有用户(ALL)或部分用户的属性。
lsuser命令不带选项时,列表按行显示:带-c选项时,显示的域以冒号分隔;-f选项时,按分节
20
AIX 4.3.3系统管理培训教材
式的格式显示。可以指定列出全部属性或部分属性。
lsuser命令的输出是从以下文件中收集而来:
/etc/passwd,/etc/security/limits,/etc/security/user。
添加用户
# smit mkuser Add a User Type or select values in entry fields. Press Enter AFTER making all desired changes. [TOP] [EntryFields] * User NAME [] User ID [] # ADMINISTRATIVE USER? False + Primary GROUP [] + Group SET [] + ADMINISTRATIVE GROUPS [] + Another user can SU TO USER? true + SU GROUPS [ALL] + HOME directory [] Initial PROGRAM [] User INFORMATION [] EXPIRATION date (MMDDhhmmyy) [0] Is this user ACCOUNT LOCKED? false + …… 缺省的ID号取自: /etc/security/.ids 设置ID的shell程序:/usr/lib/security/mkuser.sys 缺省特性取自: /usr/lib/security/mkuser.default /etc/security/user 缺省的.profile文件:/etc/security/profile 使用smit mkuser菜单和直接使用命令mkuser都可以用来添加用户,不能定用户属性值时系统取缺省值。
mkuser命令所用的缺省属性值存放在文件/usr/lib/security/mkuser.default中,该文件只能由root修改。文件中的内容如下:
user:
pgrp=staff groups=staff shell=/usr/bin/ksh home=/home/$USER admin:
pgrp=system groups=system shell=/usr/bin/ksh home=/home/$USER
文件中“user”部分的属性值适用于新添加的普通用户,而“admin”部分的属性值适用于新添加的管理用户。
如果未指定用户ID,缺省的ID值取自/etc/security/.ids文件。管理用户的ID从6开始,普通用户的ID从200开始。
在用户创建过程中将运行shell程序/usr/lib/security/mkuser.sys。该程序创建用户的主目录
21
AIX 4.3.3系统管理培训教材
并生成.profile文件。该shell文件可以根据需要进行修改。
用户特性列表中还有一些不常用的选项,许多表项都没有设置属性值,不对用户特性产生影响。更详细的列表参见smit mkuser菜单。
新用户创建时,其ID是禁止登录的(在/etc/passwd文件中的口令域上用“*”代替),管理员需要给新用户赋一个初始口令,系统才允许用户登录。具体的做法有三种:
? SMIT菜单中选择Change a User′s Password选项 ? 使用passwd命令 ? 使用pwdadm命令
更改/显示用户特性 # smit chuser Change / Show Characteristics of a User
Type or select values in entry fields. Press Enter AFTER making all desired changes. [EntryFields] * User NAME zhang User ID [211] # ADMINISTRATIVE USER? true + Primary GROUP [system] + Group SET [system] + ADMINISTRATIVE GROUPS [] + Another user can SU TO USER? true + SU GROUPS [ALL] + HOME directory [/home/zhang] Initial PROGRAM [/usr/bin/ksh] User INFORMATION [] EXPIRATION date (MMDDhhmmyy) [0] Is this user ACCOUNT LOCKED? false + …… 选择Change/Show characteristics of a User选项或直接运行chuser命令,可以修改用户特性(用户名除外)。root或security组的成员有权执行该任务(当然只有root才能修改管理用户的特性)。该SMIT屏幕与“Add a User”屏幕中的显示内容完全相同。
user information(用户信息)在/etc/passwd文件中处于第五个域,通常用来存放用户的真实姓名,电话号码等。有些应用程序利用该信息来报告用户的活动,如finger程序。用户有权修改自己的用户信息。
initial program (初始化程序)指用户登录后所用的shell程序,通常选择如下三种:
? /bin/bsh (Bourne shell) ? /bin/csh (C shell)
? /bin/ksh (Korn shell)(缺省值)
用户可以从上述三种shell中选择自己的shell,而root则可将用户的shell改为任何一个程序。 chuser命令的格式如下:
# chuser [attribute=value] username 删除用户
? smit rmuser
? rmuser命令
# rmuser –p team01
? 手工删除用户的主目录(重要数据应先作备份)
22