首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

AIX课程(转)

2013-10-12 
AIX教程(转)转自:http://space.itpub.net/?uid-22494861-action-viewspace-itemid-622860(一)AIX概述AIX(A

AIX教程(转)

转自:http://space.itpub.net/?uid-22494861-action-viewspace-itemid-622860

(一)AIX概述
AIX(Advanced Interactive eXecutive),是UNIX的一种,是IBM eServer pServies, RS/6000的OS。
IBM eServer服务器P系统比较出名的是“深蓝”,是RS/6000(SP机型)。
Unix诞生于1969年,由Bell实验室的Thompson, Ritchie于1971年写成第一版本。1973年UNIX3加入C编译器,Ritchie用C重写了UNIX,发布了UNIX4版本。1978年UNIX Ver7是现代UNIX OS的蓝本。
X/Open:UNIX标准化的国际组织,也是UNIX商标的所有者。
AIX Ver1.0于1986年推出。AIX是第一个通过UNIX98标准的UNIX OS。
RS/6000于1990年发布,使用AIX Ver3。目前,市面装机量最大的AIX版本是AIX Ver4.3。
2000年——AIX 5.0,支持IBM POWER,Intel 64位平台,支持64位内核。
2001年——AIX 5.1L,“L”表示Linux affinity,也是第一个兼容Linux的UNIX。AIX 5.1L是第一个支持POWER4处理器的AIX OS。
2002年——AIX 5.2L;
目前最新版本是AIX Ver5.3L.
RS/6000: RISC System/6000
RISC:Reduced Instruction Set Cycles(精简指令集),RISC通过硬件执行更多的指令,在同一时间周期内能执行多条指令。
RS/6000分为:
(1)经典的RS/6000:MCA(微通道结构)总线、SCSI接口,市面上较少。
(2)基于PCI的RS/6000(PCI和ISA总线结构),型号有:43P、F50、H50、S70、S80、p690、p670、p650等。
目前最新Power 5处理器支持多线程、多内核。
三种线程模型:(1)M:1? (2)1:1? (3)M:N(最有效、也是最复杂的模型)
AIX OS有两种基本运行模式(1)Kernel Mode内核(2)User Mode用户
AIX中root用户是系统的主要管理员,可执行系统范围内的任何操作。
第一个装配Power4处理器的IBM服务器是pSeries 690。

(二)安装AIX OS
AIX 5L支持IBM POWERPC处理器和Intel Itanium(安腾)处理器。

需要查看操作系统的版本号?使用:
oslevel -l Level??? 列出更早版本
??????? -g????????? 列出更新,即更晚版本
??????? -q????????? 列出已知

AIX版本格式:vv.rr.mmmm.ffff
???????????? -- -- ---- ----
???????????? |? |?? |??? |+----修订(Fix)版本号
OS Version---+? |?? |???
? (版本号)????? |?? +--修正(Modification)版本号
??????????????? +
???? 发行(Release)版本号

补丁包PTF(Program Temporary Fix)
(1)维护包ML:命名规则4位的VRMF
?? eg. 4.3.1.0 升级到 4.3.3.0
???????? (4310)??????? (4330)
(2)推荐维护包RM: VRMF-RM
?? eg.4330-08(其中08代表第8个推荐包)

安装AIX 5L比AIX 4.3多一个是否启用64位内核和JFS2支持的选项。

确定能否从PowerPC上的CD-ROM上引导AIX 5L安装,使用如下命令:
lscfg -vl cd*

安装方法:
(1)全新覆盖(New and Complete Overrite)
(2)保留安装(Preservation Install)
(3)迁移安装 (Migration Install)
VG卷组(Volumn Group)
rootvg包含基本的OS(BOS),机器从rootvg启动并将BOS加载到内存。
重新分配rootvg的空间时,必须重装BOS。
如有双硬盘,建议一个硬盘安装BOS,使之成为rootvg,另一硬盘则用于存放用户数据。
保留安装是AIX 3.1或AIX 4.1的默认安装方法,也是安全升级BOS的安装方法。
将/etc/preserve.list复制到软盘上:
cd /etc
ls ./preserve.list | backup -iqv

迁移安装除不保留/tmp文件系统外,将保留其他所有的文件系统。
切换32位或64位内核(在POWER平台上)
(1)root用户进入系统
(2)ln -fs /usr/lib/boot/unix_?? /unix
(3)ln -sf /usr/lib/boot/unix_?? /usr/lib/boot/unix
(4)bosboot -ad /dev/ipldevice
(5)shutdown -r

检查AIX的系统状态的常用命令:
文件系统:???? df -k
设??? 备:???? lsdev -C
磁盘(物理卷):? lspv
Paging space:? lsps -a
配??? 置:???? lscfg -vp
软??? 件:???? lslpp -l
用??? 户:???? who
处理器个数:?? lsdev -C | grep proc
内存大小:???? lsattr -El mem0

(三)启动和关闭AIX系统

系统引导:
(1)Normal(正常)模式:多用户模式
(2)Service(维护)模式:单用户模式

磁带或CDROM引导系统?? ---进入--》 Service模式(单用户模式)
从硬盘引导系统??????? ---进入--》 Normal/Service模式

进入SMS(System Management Service系统管理维护)中可修改系统引导设备列表。

系统的启动:
(1)硬件初始化阶段(ROS IPL)[Read Only Storage Inital Program Load]

??? +-----------------------------+?????????? +--------------------+
??? |? a.内置设备自检 BIST??????? |? ————>>?? |??? b.加电自检POST? |
??? |??? Built-In Self Test?????? |?????????? | Power-On self Test |
??? +-----------------------------+?????????? +--------------------+
???? (仅经典RS/6000有此过程a)

(2)AIX核心初始化阶段
???? 从硬盘引导BOS ————>> AIX核心初始化————>> 启动系统的初始进程/etc/init ————>> init依据文件/etc/inittab的内容启动其他系统进程。


关闭AIX:

? +---------------------------+
? |??????? 执行关机命令?????? |
? |? ------------------------ |
? | shutdown, halt, reboot等。|? ———>> 终止系统中正在运行的进程 ————>> 甚至使机器自动断电
? | (安全)????????????????? |
? +---------------------------+

rc.boot:一个Shell命令文件,是配置系统的脚本。系统引导期间,init进程执行它三次。
显示系统启动到现在的时间:uptime(也可用w命令,且它的输出比uptime更详细)
RAM文件系统是引导镜像(Boot Image)的一部分,完全常驻内存,包含了许多能让引导继续的程序。

系统的运行级别:11个(编码为0~9,s,S,m,M)
其中(1)0,1被保留,2是系统的多用户模式,3~9是自定义运行级别。
??? (2)s, S, m, M为系统维护模式。
最有用的两个运行级别是单用户模式(维护模式s,S,m,M)和多用户模式(2)。

改变系统的运行级别:
init 或 telinit(Tell init:通知init进程,被链接到init上)

用法:init 0~9, a,b,c, Q, q, s, S, m, M, N
?????????? ---? -----? ----? ----------? -
??????? (同前)? |???? |???? (同前)?? |
????????????????? |???? |??????????????? +--发送停止带有respawn进程的信号
????????????????? |???? |
????????????????? |???? +---让init进程重新检查/etc/inittab文件
????????????????? |
????????????????? +----------------------------------------------------+
????????????????? |???? 伪级别,仅处理/etc/inittab文件中RunLevel字段中 |
????????????????? | 包含a, b, c运行级别的那些程序,不中断处于当前系统? |
????????????????? | 运行级别中正在运行的进程,运行级别改变也不会关闭因 |
????????????????? | 带a,b,c而启动的进程。????????????????????????????? |
????????????????? +----------------------------------------------------+
如:
? init 2 多用户模式
? init s 单用户模式

/etcomottab中Action字段:创建子进程和对它采取的行动。
(1)respawn:如未运行,则启动之;否则,不做任何处理,继续/etc/inittab中的其他记录;
(2)wait??????? (3)once? (4)boot?????? (5)bootwait? (6)powerfail
(7)powerwait?? (8)off?? (9)ondemand
(10)initdefault(如有,必须置于第一个非注释行)
(11)sysinit(如有,必须置于第二个非注释行)

编辑/etc/inittab文件的命令:
(1)chitab?? 修改记录
(2)lsitab?? 显示记录
(3)mkitab?? 添加记录
(4)rmitab?? 删除记录

bootlist命令:显示和修改引导系统的设备列表,也可显示修改系统引导设备的顺序。
bosboot -ad /dev/hdisk0?? [在hdisk0上创建引导逻辑卷(BLV)]
alog命令:维护和管理系统日志(see P102)
odmadd:向alog配置数据库中添加新的日志类型,默认日志类型有:boot, bosinst, nim, dumpsymp。
alog -f Logfile [-o]???? 显示日志文件Logfile的内容
alog -f Logfile | [[-q][-s Size]]? 把日志记录到Logfile中
alog -t LogType -V?????? 显示指定日志类型LogType参数的详细信息
alog -L????????????????? 显示在alog配置数据库中的已定义好的日志类型
alog -o -t boot????????? 查看引导信息
也可以使用:smitty alog_show 查看boot log

安全关闭系统:shutdown(最安全、最彻底)

(1)如/etc/rc.shutdown文件没有可执行权限,则用:
chmod +x /etc/rc.shutdown 增加可执行权限。

(2)然后,可编辑/etc/rc.shutdown文件,把批处理命令写入。
当执行shutdown时,如此文件存在,就执行它,如返回非零的错误代码,shutdown就停止执行,关闭系统的工作也被终止。

shutdown -i? 可交互模式,提示用户一步步地关闭系统。
AIX 4.2以上,/usr/sbin/shutdown命令文件中增加了:
sh /etc/rc.shutdown? 执行此文件中的脚本
也可使用SMIT工具关闭系统:smit shutdown
紧急情况下停止系统: shutdown -F(最快速度地比较安全的方式)
单用户模式用halt关闭系统。
多用户模式,只有当除root的所有其他用户退出时,halt才可执行。

halt -l?? 不记录中断系统运行日志
???? -q?? 快速终止系统运行
(注意:最好不要使用halt,以免数据丢失)。

shutdown +2 两分钟后关机
shutdown -r 重新启动操作系统
reboot命令一般在单用户下重启系统(它会做数据同步工作)。
获得系统参数autorestart的默认值:?? lsattr -D -l sys0
修改系统参数autorestart的值为true:? chdev -l sys0 -a autorestart=true
查看更改后的结果:????????????????? lsattr -E -l sys0
(建议:reboot命令也很危险,少用为妙。)

关闭系统到单用户模式:
shutdown -m???????? (实际上,它调用了: init -s命令)
注意:必须保证当前工作目录为根目录,所以常常先cd /后再调用此句。

关闭系统时记录日志
cat /etc/shutdown.log
问题:可以在关闭系统时自动执行某个批处理吗?
启动多用户模式三阶段:
(1)ROS内核初始化阶段(Read Only Storage Kernel Init Phase)
(2)基本设备配置阶段(Base Device Configuration Phase)
(3)系统引导阶段(System Boot Phase)
init进程重读/etc/inittab文件的条件(之一):
(1)init进程的子孙进程中有一个进程结束。
(2)出现电源失败信号SIGPWR。
(3)用户用init命令发出改变系统运行级别和重新检查/etc/inittab文件的信号(用telinit q或init Q)。
rootvg刚做过镜像mirror,为使hdisk1可引导系统,需要运行bosboot,然后更新bootlist。

关机的情况:(大多数P系统服务器很少关机!)
(1)添加新硬件
(2)硬件维护
(3)当出现严重问题时

关机的顺序与启动顺序相反:
(1)运行关机脚本 /etc/rc.shutdown
(2)提醒用户
(3)关闭用户进程
(4)停止系统服务进程
(5)卸载文件系统
(6)停止服务器
(7)如果有用-r参数,则重启系统。

(四)系统管理工具 SMIT

SMIT:System Management Interface Tool
Smit两种界面
(1)字符方式
(2)图形方式(必须系统运行在图形方式下,需要使用鼠标)
切换方式:
在图形方式下,打开一个dtterm终端窗口,以命令行提示符方式输入smitty,进入文字方式
在图形方式下<如从CDE登录,或由xinit进入>,在dtterm或xterm,aixterm图形终端窗口的命令行下,输入smit,就进入smit的图形界面。

SMIT运行时生成两个文件:smit.script和smit.log。
smit.script是一个可执行的shell程序文件,它自动记录SMIT生成带有参数的命令。
对初学者来说,要安全使用SMIT,防止误操作而对系统造成破坏,可使用-x或-X参数,但只能对SMIT菜单和其他界面进行浏览,不能执行命令。

SMIT的日志文件:
smit.log??? 记录所访问的所有菜单、对话内容、所执行的命令及输出结果,如smit会话中出现错误,则错误也会记录。
smit.script. 记录所有通过SMIT菜单执行的AIX命令。
smit.transaction 记录所有通过SMIT菜单执行的AIX命令及其命令的说明。

Chapter 5 对象数据库管理器(ODM)
ODM:Object Database Manager
ODM是一组用于管理面向对象数据库的程序和命令。
ODM提供一些类似SQL语法的命令,来存取系统对象类数据库。
ODM数据库信息存放于以下三个目录中:
(1)/etc/objrepos??? 不能网络共享:用户设备定义类和用于SWVPD root部分的四个对象类
(2)/usr/lib/objrepos? 可共享,但只能被AIX系统共享,并且是只读的
(3)/usr/share/lib/objrepos? 可共享,不依赖于AIX。保存着用于SWVPD可安装产品的usr/share部分的四个对象类。
最基本的组件是对象类(Object Classes)和对象(Object)。
VGDA:在ODM上的设备配置信息,也称VGDA数据,包含了所有的物理卷(PV)、卷组(VG)和逻辑卷(LV)的配置信息。
ODM主要管理和维护的系统数据有:
(1)设备配置信息
(2)SMIT工具相关信息
(3)软件安装更新信息
(4)网络通信配置
(5)系统资源
但不负责:(由传统UNIX的文本方式保存)
(1)文件系统信息
(2)安全信息、用户信息
(3)打印假脱机信息

ODM数据库的对象类(六种)
(1)预定义设备信息:PdDV, PdAt, PdCn
(2)用户定义设备信息
(3)软件信息:history, inventory, lpp, product
(4)SMIT菜单
(5)日志信息
(6)网络安装管理器

ODM命令
(1)设定$ODMDIR环境变量:
???? export DMDIR=/etc/objrepos
(2)从ODM数据库中检索符合条件的对象:
???? odmget [-q "条件"] 对象名称
条件语句(记住用双引号括起):
Name like '?B?'?????? ? 表示一个字符
Name like '*ot*'????? * 表示0到多个字符
Name like '[ST]*'???? [ST]* 表示以“S”或“T”开头的任意多个字符串
Name like '[AD-GST]*' D-G表示范围,可以是D、E、F、G(从D到G)中任一字符。
Name like '[!ST]*'??? [!ST]*表示不以“S”或“T”打头的任意字符串
与SQL语句类似,查询条件中还可以使用=,!=,>,>=,<,<=,like,and。
eg. odmget [-q "uniquetype=tape/scsi/8mm and attribute=block_size"] PdAt
如省略关键字-q及条件(引号内的部分),则显示指定对象类(PdAt)中的所有对象(这是不指定条件的情形)

(3)从指定对象类中删除符合指定条件的对象:
???? odmdelete -o ObjectClass [-q Criteria]

(4)添加对象:odmadd [Input File ...]
?????????????????????? 输入文件名(可以是多个)
???? 当只使用odmadd时,则从标准输入(stdin)读取数据。
(5)修改指定对象类中某个符合条件对象的内容:
???? odmchange -o ObjectClass [-q Criteria] [Input File]
(6)显示指定对象类的定义结构:
???? odmshow ObjectClass
?eg. odmshow CuDv
(7)删除一个对象类:
???? odmdrop -o ObjectClass
???? 注意:如其他对象类连接到这个对象类上,亦不做检查而直接删除;删除此对象类时,同时也删除其中的所有对象。
(8)创建一个新的对象类:
???? odmcreate [-p][-c|-h] ClassDescriptionFile (如:a)
???????????????? |?? |? |??????????? |
???????????????? |?? |? |??????????? |???????? +----------------------------------------+
???????????????? |?? |? |??????????? +---------|???? ASCII文件名(描述新对象类的结构),根 |
???????????????? |?? |? |????????????????????? | 据它的结构:??????????????????????????? |
+----------------+?? |? +------------------+?? | (a)产生如a.cre(人工加,否则自动加)的文 |
|?? 对a文件运行c |?? |? |只产生.c和.h文件,|?? | 件名;????????????????????????????????? |
| 语言预处理程序 |?? |? |不产生空对象类。? |?? | (b)执行结束后产生一个a.h(c语言定义)和 |
+----------------+?? |? +------------------+?? | 一个包含新对象类结构和定义的a.c文件。? |
???????????????????? +???????????????????????? | (c)a.c经过编译,可连接到应用程序。应用 |
?? +-------------------------------------+???? |??? 程序运行时,在ODM内部使用这些结构及 |
?? |?? 只产生空对象,不产生.c和.h文件??? |???? |??? 定义。????????????????????????????? |
?? +-------------------------------------+???? +----------------------------------------+

举例:
把磁带机上的block_size属性值从1024改为512。
(a) odmget -q "name=rmt0 and attribute=block_size" CuAt >tapeattr (存入tapeattr文件中)
(b) vi tapeattr?? (用vi修改tapeattr文件并保存修改结果并退出vi)
(c) odmchange -o CuAt -q "name=rmt0 and attribute=block_size" tapeattr(用它修改磁带机属性)
[也可:(c) odmdelete -o CuAt -q "name=rmt0 and attribute=block_size"
??????? (d) odmadd tapeattr
???? (两步走:先删除,后创建新对象)?????????????? ]

CuDv对象类保存一个系统连接所有设备的列表;
PdAt对象类保存每一个设备的默认属性值;
PdDv对象类保存可能连接在系统上的设备;
CuAt对象类保存修改后的设备属性信息。

(五)用户和安全管理

UNIX是一个多用户OS,用户分成N组,同组用户有共同特性。
一般的用户与安全管理完全可用SMIT工具完成:smit security
Users, Groups, Passwords, Login Controls, Roles五个子菜单。
超级用户root登录系统后,命令提示符是#,一般用户是$。
登录系统后的通知信息:/etc/motd文件(可以修改成你的通知信息)
如不让系统显示/etc/motd的内容,可在用户的HOME目录下,创建一个.hushlogin文件。
比如:johnsun用户,则在/home/johnsun目录下创建一个.hushlogin空文件。(只能由root用户创建)

??????? +- User Name? ---+
??????? |??????????????? |---确保唯一性
User ---|- User ID(UID) -+
??????? |
??????? +- Password

User Name最多8个字节,首字母不能为“+,-,@,~”之一,不能使用ALL,default关键字,不能包含空格、Tab键及其他标点符号。
User ID为0的用户是root用户,系统使用的UserID为:0~199;因此,自定义用户ID从200开始。
Password默认最长8位,超过者舍尾,取头8位。
User Name,UID存放在/etc/passwd文件中;?????????? [此文件只有root有写权限,其他有读权限]
但AIX中用户密码存放在/etc/secuity/passwd文件中?? [此文件只有root有直接读写权限??????? ]
/etc/security/user中存放用户扩展属性。?????????? [?????????????? ??????????????????? ]

默认系统用户:root,daemon,bin,sys,adm,uncp,guest,nobody,lpd, 除root外,其他用户均不能登录系统。

???????? +- Group Name??????? <= 8 bytes
Group ---|??????????????????????????????? (一个用户可同属一个或多个组)
???????? +- Group ID(GID)???? 正整数

/etc/group文件:组名、组ID、存放组的一些基本属性;
/etc/security/group文件:存放组的扩展属性。

?????????? +- 用户级的组:用户
?????????? |
AIX的组 ---|- 系统管理组:如system组中就有root用户,也可将一些用户加入system组
?????????? |
?????????? +- 系统预定义组:除staff组外,其他系统默认组都具有一定的管理权力。

用户分层:? +--------------------+
??????????? |?????? root用户???? |
??????????? +--------------------+
?????????????????????? |
?????????????????????? |
??????????? +--------------------+
??????????? |?? 管理型用户和组?? | /etc/security/user文件 admin域=TRUE
??????????? +--------------------+
?????????????????????? |
?????????????????????? |
??????????? +--------------------+
??????????? |??? 普通用户和组??? |
??????????? +--------------------+

/etc/passwd文件:
* 使用mkuser添加用户时,向/etc/passwd文件中添加一条新用户的记录信息,用户修改密码后,密码存于/etc/security/passwd文件中。
* 用rmuser命令删除用户,从/etc/passwd文件中删除一条记录
* 用chuser可修改除密码外的所有属性
* 用chfn修改FullName字段的值
* 用chsh修改Shell字段的值
* 用lsuser显示某个用户的所有属性值

/etc/security/passwd文件:
用户修改密码:
passwd????????????? [ 超级用户修改其他用户的密码也可用passwd命令 ]
security组用户修改其他用户的密码: pwdadm

/etc/security/user文件:
记录用户的扩展信息 [ 以ASCII码,节(Stanzas)格式组织 ]
读权限: root用户及security组的用户
写权限: root用户
chuser(修改属性),mkuser(增加用户),rmuser(删除用户)都能对该文件内容进行修改。
mkuser根据/user/lib/security/mkuser.default文件的内容设置默认属性。(普通用户、管理型用户)
lsuser显示用户属性时,读取此文件及/etc/passwd文件。

/etc/group文件:
组定义,记录每组的基本信息,包括组名、GID、成员名,是ASCII码文件。
任何用户都有读权限,只有root用户及security组用户才有写权限。
mkgroup,mkuser,chgroup,chuser,rmgroup,rmuser,chgrpmem可以对/etc/group及/etc/security/group文件进行修改。lsgroup显示组的属性。
与/etc/security/group区别:后者存放组的扩展信息,节格式,只有root用户及security组用户有读权限,只有root有写权限。

/etc/security/login.cfg文件:
系统登录和用户身份验证控制的属性。(ASCII,节格式)
只有root用户和security组用户的才能读写。
终端节:对从某终端的登录进行控制;
验证用户方法节:定义验证用户身份的方法;
用户配置节:定义其他安全属性
使用ls -l显示该文件的内容。

如何为每个用户建立不同的环境?
root用户修改/etc/security/environ文件。(ASCII码,节格式;root用户:可读写;security组用户:读权限。)
mkuser创建用户时,根据/user/lib/security/mkuser.default文件建立默认值;
chuser修改/etc/security/environ文件的属性(用lsuser显示这些属性)
rmuser删除用户时,同时也删除此文件中的用户信息。

如何限制用户对资源的访问量(如文件大小限制、CPU占用限制等)?
修改/etc/security/limits文件
mkuser设置
chuser修改
ulimit设置和显示
如:ulimit -a 显示所有限制的值

/etc/security/lastlog文件:
保存用户上次登录系统的信息。[root用户:可读可写;security组用户:只有读权限。]

用户管理:smit user(使用SMIT工具安全创建用户帐号、修改用户信息、删除、显示等)
(1)命令行方式:
???? 创建新用户johnsun并使他为管理型用户:
???? mkuser -a su=FALSE johnsun
??????? 其中,su=FALSE: 使其他用户不能用su命令切换到该用户的身份下
???? passwd johnsun???? (修改密码,使johnsun能够登录系统)
(2)SMIT工具方式:
???? smitty mkuser? (然后在菜单下操作)
???? 完成后,johnsun就可以使用此密码登录了,登录时,系统会提示johnsun自行修改密码,以保证使用的密码是私有的。

显示系统用户:
??? pg /etc/passwd (因为用户的基本信息存放于/etc/passwd文件中)
?也可: lsuser ALL (显示所有用户)
??????? lsuser -f johnsun (按节格式显示某用户的属性)

?说明:lsuser [-c | -f] [-a attr1 attr2 ...] { "ALL" | usr1,usr2....}
??????????????? |??? |??? |????????????????????? |????? |
???? 冒号分隔 --+??? |??? |????????????????????? |????? +-- 指定一个或多个用户
????????????????? 节格式? +--- 显示属性,??????? |
????????????? (缺省一行,???? 空格隔开????????? +-- 所有用户
?????????????? 空格分隔)

??? 提示:由于权限不同,普通用户用lsuser显示用户属性的结果可能与root用户或security组用户显示该用户所看到的结果不同,root看到的更详细。
?
??? chuser Attribute=value ... Name (修改用户某个或某几个属性的值)
??? eg. 修改johnsun为管理型用户:?? chuser admin=TRUE johnsun
??????? 禁止johnsun登录:?????????? chuser login=FALSE johnsun
???? 注:修改多个属性时,各属性用“”引起来,属性之间用空格隔开。

?? 常见Shell:
(1)Bourne Shell
(2)C Shell
(3)Korn Shell(与Bourne Shell完全兼容,交互能力优于c Shell,开发效率高)
?? ----------
??? |
??? +---- AIX默认Shell

? Shell切换:
(1)临时切换:
???? $tty?????????????????????????????????? [获取当前终端号]
???? $ps -t tty0? (tty0:获取的当前终端号)?? [显示在当前终端上运行的程序]
???? $csh?????????????????????????????????? [转到C Shell]
???? %ps -t tty0??????????????????????????? [显示在当前终端上运行的程序]
???? ...
???? %exit????????????????????????????????? [退出C Shell]
?(2) 永久更换登录时的Shell:
???? chuser shell=/usr/bin/csh johnsun
???? chsh johnsun /usr/bin/csh
??????? 语法:chsh [Name [Shell]] 省略时以交互方式进行

正确的Shell文件列在/etc/security/login.cfg中的usw属性中,修改用户登录的Shell实际上是修改/etc/passwd文件中的Shell字段的内容。

修改用户配置文件的安全属性: chsec? (Change Security)
用户配置文件
/etc/security/environ
???????????? /group
???????????? /lastlog
???????????? /limits
???????????? /login.cfg
???????????? /password
???????????? /portlog
???????????? /user
还有一个缺省的配置文件:
/usr/lib/security/mkuser.default
语法:chsec -f file -s stanza -a "attr=value" [-a "attr=value" ...]
??????????? --+---- ---+----- ------+-------- ---------+-----------
????????????? |??????? |??????????? |????????????????? |
? +-----------------+? |??????????? +--- 属性并赋值 ---+
? |要修改的配置文件 |? | +--------------------+
? +-----------------+? +-| 配置文件的某一个节 |
???????????????????????? |(如不存在,则创建)|???????????
???????????????????????? +--------------------+

注意:
(1)chsec不能修改/etc/security/passwd文件中的password属性,只能用passwd命令修改。
(2)chsec只能由root用户和security组的用户使用。
eg.
(1)从/dev/tty0终端登录系统时,如在60秒内5次未成功登录,则锁定该终端:
?? #chsec -f /etc/security/login.cfg -s /dev/tty0 -a logindisable=5 -a logininterval=60
(2)只允许所有用户从上午8:00到下午6:00进入系统:
?? #chsec -f /etc/security/user -s default -a logintimes=:0800-1800

删除用户:(SMIT快捷:smit rmuser)
??? rmuser [-p] Name
????? |????? |
????? |????? +-除删除用户及其属性外,还删除/etc/security/passwd
????? |??????? 文件中的密码信息及相关用户身份验证信息。
????? |
????? +- 注意:该命令不能删除用户的初始目录及其下的文件和子目录。

彻底删除用户:
(1)rmuser -p johnsun
???? 删除用户、用户属性、密码信息及相关用户身份验证信息后,如果再删除初始目录及文件,则:
(2)rm -r /home/johnsun

给tom用户加锁:chuser account_locked=TRUE tom?? (快捷:smit lockuser)
给tom用户解锁:chuser account_locked=FALSE tom
加锁后用户无法登录系统,直到解锁后方可使用。
实质:修改了/etc/security/user文件中用户的account_locked属性。

重置某用户失败登录次数 (快捷:smit failed_logins)
chsec -f /etc/security/lastlog -s tom -a unsuccessful_login_count=0

阻止用户登录系统:
??? 如果存在/etc/nologin文件,则允许用户输入UserName和Password,但不允许用户进入系统,同时给登录用户显示/etc/nologin文件的内容。因此,系统管理员可通过增加或删除此文件的方法来阻止和允许用户登录。

组管理(快捷:smit xxgroup):创建组、修改组属性、删除组。

(1)创建组: [ 仅root用户和security组用户才能用mkgroup ]

???? mkgroup [-a] [-A] [Attribute=Value ...] GroupName
?????????????? |??? |? --------------------- ----+----
?????????????? |??? |?? (设置一个或多个属性)???? |
?????????????? |??? |??????????????????????????? |
?创建管理型组 -+??? +-----------------+ +--------+-------------------+
(仅root用户)????? | 让执行mkgroup命 | | 保证唯一性,勿与其他重复?? |
??????????????????? | 令的用户成为组? | | 不能用ALL,default等关键字 |
??????????????????? | 的管理员。????? | +----------------------------+
??????????????????? +-----------------+

(2)显示组属性: [ 仅root用户和security组用户才能用mkgroup ]

???? lsgroup [-c | -f] [-a List] {ALL | Group[,Group]...}
?????????????? |??? |??? |???????? |??????????? |
?????????????? |??? |??? |???????? +-全部属性?? +- 一个或多个组名
????? 冒号分隔-+??? |??? |
??????????? 节格式 -+??? +-显示个别属性,List是属性清单,用空格隔开
?????????????????

(3)修改组属性: [ 仅root用户和security组用户才能用mkgroup ]

???? chgroup Attribute=Value[...] Group
??????????????? |??????? |
??????????????? |??????? +- 属性间空格分开
??????????????? |
??????????????? +- 可修改的属性:adms, admin,gid,users等。

??? eg. 将用户Johnsun加入infomix组:
??????? chgroup users=infomix,johnson infomix

(4)删除组:? rmgroup GName 或快捷:smit rmgroup
???? 当删除组时,同时删除组的所有属性,包括清空所属组的用户清单。但不能删除基本组。

用户密码管理:
AIX修改用户密码的命令:
(1)passwd
(2)pwdadm(Password Admin,主要由root用户和security组用户使用)

不要将/etc/passwd与/usr/bin/passwd文件混淆。
/etc/passwd是ASCII码文件,存放用户的基本信息,可编辑,不是命令文件。
/usr/bin/passwd是二进制命令文件,用来修改用户密码。
任何用户都可使用passwd修改自己的密码,普通用户只能修改自己的密码;root用户和security组用户可修改其他用户的密码。

语法:passwd [-f | -s] [User]
-f: 表示要修改/etc/passwd文件中的gecos字段(即FullName字段)的内容;
-s:表示要修改用户登录Shell;
如root用户和security组用户要修改其他用户的密码,必须指定用户名。
修改用户登录的Shell,可用chsh或chuser命令,也可用passwd命令。
eg.
??? $id?????????????????????????? 显示当前用户的UID和GID(假设当前用户是johnson)
??? $passwd -s??????????????????? 修改自己的登录shell
??? change (yes) or (no)? > yes??? (回答继续修改)
??? TO? >/usr/bin/csh???????????? 修改为/usr/bin/csh
??? $lsuser -a shell johnson????? 显示修改后的值

#pwdadm [-f flags | -q | -c] user??????? [只能root用户、security组用户使用]

-f flags:?? 设置flags属性的值,可能值有(之一):
??????????? (1)ADMIN
??????????????? (只能由root设置和修改,已设flags属性值为"ADMIN"的用户的密码只能由root修改)
??????????? (2)ADMCHG
??????????? (3)NOCHECK
??????????????? (security组用户可设置“ADMCHG”,“NOCHECK”的flags值)

-q????????? 查看用户在/etc/security/passwd文件中的lastupdate和flags属性的值
-c????????? 清除flags属性的值
user??????? 被管理的用户名或用户自己

??? 如某用户在/etc/passwd中passwd字段的值或/etc/security/passwd文件中Password属性是“*”,则他的密码只能由root或security组用户修改。

显示和修改用户密码属性:(修改/etc/security/user文件)
(1)chuser???? (2)chsec
SMIT快捷:#smit passwdattrs

问题:如何去掉root用户密码?
[原理:从安装介质启动系统到单用户方式下,激活rootvg,获得rootvg的权力,再删除root用户的密码]
(1)AIX系统No.1安装介质放入磁带机或CD-ROOM中;
(2)从光盘或磁带机启动机器(经典RS/6000,前面板钥匙扳到Serivice位置;PCI的RS/6000,加电自检中按F5或数字“5”键);
(3)选择“3. Start Maintenance Mode for System Recovery”菜单项(启动维护菜单);
(4)选择“1. Access a Root Volumn Group”, 按Enter键,警告信息;
(5)确定继续,选择“0. Continue”,按Enter键;
(6)选择可引导卷组(rootvg包含着引导逻辑卷hd5,所以可引导系统),如包含hd5的卷组,然后Enter键;
(7)选择1,进入并激活rootvg, 安装root卷组的文件系统,运行shell并给出shell提示#;
(8)export设置TERM环境变量;
(9)#vi /etc/security/passwd 编辑/etc/security/passwd文件,删除root用户节中的passwd字段的值(即让password的值为空),保存文件退出vi,返回#提示符下。
(10)执行两次sync命令把内存中的数据同步到磁盘中。#sync;sync
(11)#shutdown -Fr 重新启动系统(也可reboot命令),取出安装介质,以正常方式重启。
(12)以root用户登录系统,在输入密码时,直接按回车。

[启示] root密码同样也可能被窃,所以机器房间上锁,也要保管好AIX的安装盘。

用户的工作环境
1、用户的登录过程

????????????????????????????? +-----------------------------------+
????????????????????????????? | init进程--启动终端--->> getty进程 |
????????????????????????????? +-----------------------------------+
?????????????????????????????????????????????? |
?????????????????????????????????????????????? |
+-------------------------------------+?? +---------------+
| 根据/etc/security/login.cfg文件设置 |-->| login:提示符 |
+-------------------------------------+?? +---------------+
?????????????????????????????????????????? |??? |
?????????????????????????????????????????? |??? +-<>-+----------------+
+------------------------------+?????????? |??? |??? | UserName Input |
| 由/etc/security/user定义次数 |------>----+??? |??? +----------------+
+------------------------------+??????????????? |
??????????? |?????????????????????????????????? +-<>-+----------------+
+----------------------+??????????????????????? |??? | Password Input |
|显示UserName,PassWord |??? +----------+??????? |??? +----------------+
|不正确,提示重登录??? +-<--| 记录失败 |?? +----------+
+----------------------+??? +--+--+----+?? | 验?? 证? |
?????????????????????????????? |? |??????? +--+-+-----+
+---------------------------+<-+? |?????????? | |
| /etc/security/failedlogin |???? +-<< 不正确-+ |
+---------------------------+?????????????????? |
??????????????????????????????????????????????? |
+------------------------+????????????????????? +--<< 正确
| /etc/security/environ? |????????????????????? |
| /etc/security/limits?? |-->--+??????????????? |
| /etc/security/user???? |???? |??????????????? |
+------------------------+???? |??????????????? |
?+------------------+????????? |???????? +------+-----------+
?| LOGNAME,HOME变量 |------>---+---->>---|?? 设置用户环境?? |
?+------------------+??????????????????? +------+-----------+
??????????????????????????????????????????????? |
???????????????????????????????????????????? 判 | 断
??????????????????????????????????????????????? |
+-------------------+?????????? +---------------+----+
| 显示/etc/motd内容 |-<<-不存在-+? $HOME/.hushlogin? +-<<- 存在吗
+-------------------+?????????? +---------------+----+
???????? |????????????????????????????????????? |
???????? |?? +------------------------+???????? |
???????? |?? | /etc/passwd中定义shell |????? 存 | 在
???????? |?? +---------------+--------+???????? |
???????? |?????????????????? |????????????????? |
???????? |?????????????????? +----->----+-------+-------------+
???????? +------------------------->----| 启动初始化shell程序 |
??????????????????????????????????????? +-------+-------------+
??????? +-------------------+?????????????????? |
??????? |? /etc/profile???? |??????????? +------+------------+
??????? |? /etc/environment +------>>----| 建立用户个人环境,|
??????? |? $HOME/.profile?? |??????????? | 显示#,$或%提示符? |
??????? +-------------------+??????????? +------+------------+
??????????????????????????????????????????????? |
???????????????????????????????????????? +------+------------+
???????????????????????????????????????? |? 用户操作命令.... |
???????????????????????????????????????? +------+------------+
??????????????????????????????????????????????? |
?????????????????????????????????????????? +----+-----+
??????????????? exit,logout,Ctrl+d命令-->--| 退出系统 |
?????????????????????????????????????????? +----------+

注:/etc/profile文件:??? 控制全系统的默认变量(对所有用户起作用),如TERM,MAILMSG,MAIL等。
??? /etc/environment文件:构造所有进程使用的基本环境变量,如HOME,LANG,TZ,NLSPATH等。
??? $HOME/.profile文件:? 用户本身的profile文件,对单个用户起作用,可定义批处理,它可以覆盖全局性变量设置。

2. 定制用户环境

?? (1)登录Shell????????????????????? ———— 相当于DOS中的Command.com命令
?? (2)/etc/profile??????????????? [公]? ——+
?? (3)/etc/environment??????????? [公]??? |- 类似于DOS中的config.sys和autoexec.bat文件
?? (4)$HOME/.profile(或.cshrc文件)[私]??? |
??? (5) $HOME/.env(见下面备注)??? [私]? ——+

??? 用户的登录shell依次执行(2)(3)(4)所示文件,建立起该用户的所有环境变量。其中,(2)(3)所示文件对每个用户都起作用,控制全系统的默认变量,而(4)文件放在用户的主目录下,对单个用户起作用。如果需要改变某个用户的环境设置,可以编辑该用户主目录下的.profile(sh/ksh)或.cshrc文件(csh)或是.dtprofile文件(CDE登录)。
??? [备注]要使$HOME/.env发挥作用,必须在$HOME/.profile文件中设置:
????????? ENV=$HOME/.env
????????? export ENV
???? export命令将环境变量传给当前环境。
? eg. 方式一(通用方式,它也是sh支持的唯一方式)
????? $PATH=/bin:/etc:/usr/bin
????? $export PATH
????? 方式二:
????? $PATH=/home/$LOGNAME:$PATH;export PATH
????? 方式三:(ksh)
????? $export PATH=/bin:/etc:/usr/bin
??? export可同时将多个环境变量传给当前环境,如:
????? $export PATH HOME LOGNAME
????? 或: $export PATH=/bin:/etc:/usr/bin LOGNAME=johnson HOME=/usr/$LOGNAME
????? $HOME/.profile文件是个隐藏文件,只能用ls -al命令才能查看。

默认提示符:
?? # : root用户
?? $ : 一般用户(sh,ksh)
?? % : 一般用户(csh)
命令提示符的环境变量:
?? PS1: 主提示符
?? PS2: 副提示符
?? PS3: root用户提示符
临时改变命令提示符:在命令行直接输入 eg. #PS1="Enter Command>"
永久改变命令提示符:PS1="$PWD>"? (加入$HOME/.profile或$HOME/.env文件中)
如引用环境变量的内容,则用“$环境变量名”,比如:
将root用户的shell提示符改为主机名加工作目录:
?? #HOSTNAME = 'hostname'
?? #export PS1="[$HOSTNAME][$"PWD"]#"
结果提示符变成类似: [client][/tmp]#

显示环境变量的内容:
(1)echo $LOGNAME (其中:LOGNAME为变量名称)
(2)set 显示所有环境变量及相应的值
(3)env 显示所有环境变量及其值

查看每个用户使用su切换命令的记录:(实质:查看/var/adm/sulog文件)
#cd /var/adm
#more sulog???? (more也可以换成pg或cat)

查看用户进出入系统的记录:
who或last命令(实质:读取/var/adm/wtmp文件内容)
#last [-f FileName] [-Number] [-User ...] [Terminal ...]
-f FileName??????? 指定文件名(默认为wtmp文件)
-Number??????????? 最新N条
-User ...????????? 指定用户
Terminal ...?????? 指定终端
使用who命令:
#cd /var/adm
#who wtmp
只包括进入到系统中的用户记录: #who /etc/wtmp
显示失败登录系统的记录:?????? #who /etc/security/failedlogin
#who [-AabdHilmpgrsTtuw][am{i,I}][utmp_like_file]
who不带参数时,与w命令作用相似,都显示当前已登录用户。
-A 显示所有
-a 显示默认文件(/etc/utmp)或由参数utmp_like_file指定文件中的所有信息(相当于使用AbdHlprTtu参数)
-b 最近一次启动时间
-d 显示有终止进程,exit域是终止或退出值,可判断进程为何终止
-H 显示头标题
-i或-u 活动中的用户
-l 所有login进程
-m 当前终端
-p 由init创建正在运行的进程
-q 显示活动用户的用户名、主机名
-r 当前系统的运行级别
-s 只显示用户名,终端和时间信息(who默认参数)
-t 最后修改date时钟的记录
-T或-w 终端的状态(+ 可写,- 不可写,X 独占打开,?没有响应)
am i或am I: 当前用户名

登录AIX 5L时禁止显示用户名,如何做?
/etc/security/login.cfg中关于安全选项有两个属性:
(1)pwdprompt:?? 定义提示输入密码的信息
(2)usernameecho:是否显示用户名及相关安全信息
#chsec -f /etc/security/login.cfg -s de

?

热点排行