分享
 
 
 

AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)

王朝other·作者佚名  2006-02-20
窄屏简体版  字體: |||超大  

(续前,联系:a3news(#)hotmail.com

(四)系统管理工具 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 ODMDIR=/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 default -a pwdprompt="Password:"

把pwdprompt="Password:"的属性加到login.cfg文件的default节中。

这样,login输入用户名时显示用户名,但Password前不再显示用户名,输入密码时,也不显示密码了。

#chsec -f /etc/security/login.cfg -s default -a usernameecho=FALSE

login输入用户名时不再显示输入的用户名了,Password行也不会显示用户名,密码输入亦不显示。

给某个终端(如/dev/lft0)设置usernameecho属性:

#chsec -f /etc/security/login.cfg -s /dev/lft0 -a usernameecho=FALSE

(六)文件系统

AIX 5L支持的5种文件系统:JFS,JFS2,NFS,CDRFS,UDFS。

JFS(Journaled File System): 日志型文件系统

JFS2(Enhanced Journalted File System): 增强的日志型文件系统

NFS(Network File System): 网络文件系统

CDRFS(CD-ROM File System): CD-ROM文件系统

UDFS(DVD-ROM File System): DVD-ROM文件系统

系统中所有文件和目录都存储在树根(/)之下,根文件系统存在于rootvg中。

其他文件系统都独立于根文件系统。

手工安装本地/远程文件系统: mount

卸载本地/远程文件系统: umount

root文件系统位于/dev/hd4逻辑卷上,所有权属性:

(1)AIX Ver4.3.3及以前:bin.bin

(2)AIX Ver5.1L: root.system(防止root用户的Dead Letter写入根文件系统)

显示文件系统中超级块的内容,i节点的映射表和磁盘映射表。

#dumpfs /dev/hd1 (文件系统更新失败用fsck命令修复)

AIX4以上的日志型文件结构中引入“碎片”(Fragment)概念。目的:减少磁盘空间的浪费。

AIX4之前的系统:数据存储的最小单元是逻辑块,有“碎片”之后,则以Fragment为最小单位。

碎片的大小在文件系统创建时指定并存于超级块中。JFS支持大小:512,1024,2048和4096字节。

巨型文件系统有两种碎片大小:32*4096字节(128K)和4096字节。文件大于4MB,则128K大碎片,否则使用4096字节的Fragment。

碎片并非越小越好,因为太小可能增加I/O操作成本,而且可能造成大量残片。

使分散碎片连续化:defragfs(可能对文件系统的性能产生影响)。

每个文件或目录都有一个i节点(Index Node),i节点包含文件或目录的基本信息,如文件类型、访问权限、主用户ID、组ID和文件的连接数。(i节点本质上是一个指向文件数据块的指针。)

i节点数量由nbpi(Number of Bytes Per i-node 每个i节点拥有的字节数)参数来指定。

日志型文件系统支持的nbpi值:512,1024,2048,4096(默认值),8192,16384,[32768,65536,131072,仅AIX4.2及以后版本适用]。

分配位图Allocation Bitmap:

(1)碎片分配映射图 Fragment Allocation Map (记录文件系统中每个碎片的分配状态)

(2)磁盘i节点位图 Disk i-node Bitmap (记录每个i节点的状态)

分配组(AG:Allocation Group)

三种大小:(1)碎片分配组大小

(2)磁盘i节点分配组大小

(3)每个分配组中磁盘i节点数

默认分配组大小:8MB(AIX V4.1固定为:8MB)

AG的可能值;8MB,16MB,32MB,64MB(AIX4.2及以后适用,最大为64MB)

查看文件系统碎片大小和分配组的大小:

#dumpfs /dev/mylv

文件系统大小一般限制为:nbpi*2^24或碎片大小*2^28。

1byte = 8bits

1KB = 1024bytes

1MB = 1024KB

....

+---------------------------------------------------------+

| B KB MB GB TB PB EB ZB YB |

+---------------------------------------------------------+

| Byte Kilo Mega Giga Tera Peta Exa Zetta Yotta |

+---------------------------------------------------------+

| 10^ 3 6 9 12 15 18 21 24 |

+---------------------------------------------------------+

IBM宣布支持最大的文件大小为:1024GB,即1TB。

查看文件系统的范围:

#lsfs -q /home

AIX Ver4.3开始,支持压缩文件系统。但JFS2文件系统不支持数据压缩。不能压缩根(/)文件系统和/usr文件系统。

AIX Ver3.1之后,JFS日志(Log)已是一个可恢复的文件系统。

AIX使用特殊的逻辑卷(JFS日志设备)来记录文件系统对元数据(Meta-Data)的修改情况。

逻辑卷(JFS日志设备)是一个循环日志表,系统异常中断时,用此事务日志来恢复文件系统。

sync命令:把内存缓冲区内容及时送入磁盘

filemon命令:监视文件系统的性能、报告文件、虚拟内存段、逻辑卷和物理卷的I/O活动。

简单规则:4GB的文件系统对应2MB的JFS日志设备。

由于i节点的结构有很大的区别,所以:JFS使用直接地址和间接地址块来寻址,而JFS2使用B+树来寻址。

#date >now.txt (通过date命令产生now.txt文件)

#cat now.txt (通过cat命令查看now.txt的内容)

#istat now.txt (用istat命令查看now.txt的i节点内容)

#ls -ial /dev/hd3 (显示文件所在文件系统的设备)

link命令或symlink函数把一个i节点链接给许多文件名。

单次间接寻址可存取1024*4096字节(4MB)大小的文件。

二次间接寻址可存取512*1024*4096(2GB)大小的文件。

read(),write()系统调用函数所允许的最大文件大小是2GB-1(即2^31 - 1)。

JFS2类型文件系统可创建一个内嵌(Inline)式的日志,每个JFS2类型的文件系统拥有一个它自己的日志设备而不必使之共享。

在多硬盘多文件系统时,增加了可靠性(Reliability),可用性(Availability)和可维护性(Serviceability),简称RAS。

#mount 安装本地/远程文件系统

JFS2两种日志:

(1)独立日志(Outline Log)

(2)内嵌日志(Inline Log)

AIX 5.2L之前的版本(不含5.2),默认:

Outline Log Max Size : 1GB

Inline Log Max Size : 32MB

AIX 5.2L及之后版本:

Inline Log Size: 256K~16TB (默认Inline Log Size = 文件系统大小 * 0.4%) [但不能超过10%]

Outline Log Size(独立日志)大小可变; 32位内核:Outline Max Size: 1GB; 64位:64GB

mklv支持巨型逻辑卷:32位:Max: 1 TB

64位:Max: 128 TB

32位机器上JFS2文件系统大小最大可至1TB; 64位:16TB。

SMIT创建JFS 类型的文件系统: #smit jfs

--------JFS2--------------: #smit jfs2

添加新文件系统:crfs命令

#crfs -v VfsType VfsType: jfs或jfs2

{-g VolumnGroup | -d Device} VolumnGroup:卷组 Device:已存在,未使用的逻辑卷组

[-l LogParititions] LogParititions:日志逻辑卷的大小,逻辑分区的数量

-m MountPoint MountPoint:安装点,一般是绝对路径

[-n NodeName] 指定文件系统的远程主机名,仅适用于远程虚拟文件系统或NFS

[-u MountGroup] 批量安装一组的所有文件系统

[-A {yes | no }] 启动系统时是否自动安装该文件系统

[-p {ro | rw }] 文件系统的权限(ro:只读,rw:可读写)

[-a Attribute=Value...] 虚拟文件系统的属性及对应值多种属性时,每个前加-a分隔

[-t {yes | no }] 是否被记帐子系统处理,yes为打开记帐功能。

从AIX Ver5.2L开始,cfrf,chfs,mkfs在指定文件系统大小时,可用MB,GB为单位。

在已存在的设备上建立文件系统:mkfs(在指定设备上建立)

实际上,crfs命令首先调用了mklv创建逻辑卷,再用mkfs命令在逻辑卷上建立文件系统,同时创建安装点,最后在/etc/filesystems文件记录新创建的文件系统。

mkfs:将指定设备做成文件系统;它只在逻辑卷上建立文件系统,不会建立安装点,也不会在/etc/filesystems文件做记录。

#mkfs [-b Boot] 0号块开始

[-l label] 指定标签

[-i i-Nodes] 指定初始的i节点数

[-o Options] 类似crfs的-a Attribute=Value,多项时用逗号分隔

[-p Prototype] 指定原型文件名

[-s Size] 指定文件系统大小

[-v VolumnLabel] 指定卷标

[-V VfsName] 指定类型(必须是/etc/vfs文件中的一条记录)

Device (1)块设备名(2)裸设备名(3)文件系统名

用SMIT添加JFS类型文件系统: smit crjfsstd (?)

用SMIT添加JFS2类型文件系统: smit crjfs2std

用SMIT在已存在的逻辑卷上创建文件系统:smit crjfslvstd

创建RAM disk文件系统(内存中创建JFS):提高读写速度,改善程序的执行性能。

#mkramdisk [-u] 使用此选项时,表示内存页不会固定在指定区域中

size [M|G] RAM Disk的大小,默认为512字节的块;M:MB; G:GB。

每个系统最多64个RAM Disk。

一旦创建,就可以象普通设备文件一样通过open(),read(),write和close()来调用。

删除RAM Disk: #rmramdisk (系统重启后,RAM Disk会被删除!)

#mkramdisk 40000 (创建40000*512节字,约20M的RAM Disk)

#ls -l|grep ramdisk (检查创建的RAM disk设备文件)

#mkfs -V jfs /dev/ramdisk0 (建立JFS类型的文件系统)

#mkdir /ramdisk (建立文件系统的安装点)

#mount -V jfs -o nointegrity /dev/ramdisk0 /ramdisk (安装新建的RAM Disk文件系统)

#mount (检查新文件系统是否已安装)

#cd /home/peter/data

#ls -l datafile

#cp datafile /ramdisk (把datafile文件复制到RAM Disk文件系统中)

#df -k (检查RAM Disk空间的使用情况)

#ls -l /ramdisk

文件系统的所有信息都集中放在/etc/filesystems文件[Stanza(节)格式]中,许多维护文件系统的命令都从此文件中获取文件系统的默认属性。

在/etc/vfs文件中描述系统中已安装虚拟文件系统(Virtual File System, VFS)的类型。mount,fsck,mkfs,umount,fsdb,df,ff命令使用这些信息。(一个ASCII码文件,一行一条记录)

%defaultvfs jfs nfs (定义默认的本地VFS类型和远程的VFS类型)

列举系统已定义的各种文件系统: lsfs

列举系统已安装的文件系统: mount

检查文件系统空间的使用情况: df

单位 文件名

+----+----+ 安装点、设备名等 -------

+- 图形方式 |KB |MB |GB ----------------- |

| | | | | |

| | | | | |

#df [[-P]|[-I | -M | -i | -t | -v]] [-k] [-m] [-g] [-s] [FileSystem... | File...]

| | | | | |

| | | +- +- 所有信息 +-------+----------------------+

| | | | 从特殊文件系统助手中得到 |

| | +- 安装点显示在第2列 | 信息,不加-s时,则调用statfs() |

POSIX格式 | | 命令得到。 |

+- 已使用i节点数 +------------------------------+

i节点使用率

eg. df -m /usr

显示文件的大小:#du [-a | -s] [-k] [-m] [-g] [File...]

| | -------------- |

| | (单位,同上) +- 可以是文件,也可以是目录

| |

| +- 只列总块数

递归所有目录和文件 -+

$pwd 显示当前目录

$du 显示当前目录下的所有子目录的大小

安装文件系统: #mount (SMIT快捷:smit mountfs)

eg. #mount /johnsonfs (如/johnsonfs文件系统的相关信息在/etc/filesystem文件有记录,直接安装)

解决冲突:

#mount -o -busy /johnsonfs (保证安装文件系统前没有程序或用户使用安装点目录)

#mount /dev/lv01 /mnt (在逻辑卷设备/dev/lv01上直接安装在/mnt目录)

#mount all(或-a) (安装所有在/etc/filesystems文件中mount选项为true的所有文件系统)

#mount -r /johnsonfs (只读方式安装)

自动装载文件系统:

(1)/etc/filesystems文件中mount属性值为automatic。

(2)Shell程序/etc/rc调用mount all (umount all 卸载这个文件系统)

卸载文件系统:umount (smit快捷:smit umountfs)

删除文件系统:

A. SMIT工具:

原则:

(1)重要文件先备份,后删除;

(2)先卸载文件系统(umount),后删除。

SMIT快捷: smit rmjfs

B. 使用rmfs命令

#rmfs [-r|-i] FileSystem

| |

| +- 警告、确认框(AIX5.2L以上才有)

|

+- 删除安装点

增加文件系统的空间:chfs (实质是修改其属性)

[SMIT快捷:smit chjfs或chjfs2]

步骤:

(1)df -k(显示当前大小)

(2)计算增加快数(512字节/块),计算文件系统的使用率

(3)chfs -a size=新块数 FileSystemName (AIX 5.2L以上时,size可使用M、G参数)

(4)df 检查空间使用情况

eg.#chfs -a size=150M /tmp (把/tmp文件系统的大小变为150MB)

chfs [-n NodeName]

[-m NewMountPoint] 新安装点

[-u MountGroup] 安装组

[-A {yes | no}] 是否自动安装

[-p {ro | rw}] 访问权限

[-t {yes | no}] 是否记帐

[-a Attribute=Value] 可修改文件系统大小(-a size=NewSize)

也可修改日志逻辑卷设备(-a Log=LVName)

[-d Attribute] 可从/etc/filesystems文件删除一个属性

FileSystem

减小文件系统的空间

用户自定义的文件系统

步骤:

(1)用df命令检查要减少空间的文件系统,记录已使用的空间大小;

(2)备份此文件系统(以下方法之一即可):

cpio 以输入/输出方式copy文件

backup 在磁盘或软磁盘上备份文件或文件系统

savevg 备份一个用户卷组

tar UNIX常用的归档命令

(3)删除这个文件系统(rmfs /myfs);

(4)用原文件系统名及减少的大小新建一个文件系统。文件系统空间按照已用空间加备用空间计算,其他属性照原文件系统;

(5)恢复原文件系统中的文件。

恢复用户自定义卷组:restvg -s ...

维护检查文件系统:

#fsck [-v vfstype] [-f] [-n] [-y] [-p] [FileSystem]

----------------------------------------------------

-v 指定文件系统的类型(jfs或jfs2)

-f 快速

-n 不回答相关问题

-y 回答问题(常用于修复一个严重破坏的文件系统)

-p 不显示检查一些有关较小问题的信息(除非要修改)

初始化JFS/JFS2日志设备

#logform [-V vfstype] LogName (注意:它会擦去逻辑卷上的所有数据!)

如果不加-V vfstype参数,默认是jfs类型。

日志设备打开时,必须先关闭,再运行logform命令。

#lsvg -l vgname (可以检查日志设备是否处于关闭状态)

格式化JFS2日志设备:#logform -V jfs2 /dev/jfs2log

增加JFS/JFS2日志设备:

(1)创建新的逻辑卷 #mklv

(2)修改逻辑卷的类型 #chlv -t jfslog lv03

或:#chlv -t jfs2log lv05

(3)初始化日志设备 #logform -V jfs /dev/lv03

#logform -V jfs2 /dev/lv05

文件系统空间维护

(1)可在cron进程(自动执行作业的进程)的作业表中定时运行df命令检查,通过编写shell程序来检查文件系统的使用情况,可用空间小于10%时,发送Email或向整个系统广播。

(2)注意可用空间的异常变化

(3)经济监视或定期清除呈现增长趋势的文件,如系统日志文件。

查找异常中止产生的core文件,必要时删除它们。

#find /-name core -exec rm{}\;

整理文件系统中的残片:

#defragfs [-q|-r|-s] {Device|FileSystem}

-q 报告当前的统计信息

-r 报告当前统计信息和整理后的统计信息

-s 报告残片,检查整个文件系统中的元数据,找出不连接的碎片,这样会降低命令的执行性能。

解决文件系统中的故障

1、恢复超级块错误

JFS2类型文件系统的主超级块被损坏,可用fsck命令,它会自动备份超级块来修复主超级块。

由于错误的幻数(Magic Number)而致超级块损坏,则:

(1)#umount /myfs 卸载可能被损坏的文件系统

(2) #fsck -p /dev/lv01 执行fsck命令,确认是否被损坏

[如出现fsck:Not an AIXn File System字样(n为数字),或出现:fsck:Not a recognized file system type或mount:involid argument,则说明有可能超级块受损。]

(3)以root用户身份,用od命令显示超级块的内容:

#od -x -N 64 /dev/lv01 +0x 1000

-x 以16进制方式显示

-N 64 只显示64个字节的内容

+0x 1000 从何处开始显示(此处在od命令中显示的数字为幻数)

(默认8进制,偏移量后加".",表示十进制,x或0x开头,表示是16进制)

若采用默认参数,显示幻数应为0x43218765,否则应是:0x65872143;其他值则说明有误。

(4)检查备份超级块的幻数是否正确:

#od -x -N 64 /dev/lv01 +0x1f000 (即31号逻辑块——备份超级块)

(5)用备份超级块来恢复主超级块(设文件系统的逻辑卷为/dev/lv01)

#dd count=1 bs=4k skip=31 seek=1 if=/dev/lv01 of=/dev/lv01

(6)#fsck /dev/lv01 (检查文件系统的完整性,清理不一致的文件)

2、无法卸载文件系统时

(1)可能在卸载文件系统的目录内,解决办法:cd / (到根目录)

(2)可能被人使用:

A、# fuser /dev/cd0 (查看进程ID)

或# fuser -k /dev/cd0 (发出SIGKILL信号,删除进程)

B、# kill -9 29103466 (进程ID)

C、# lsdev -Cc cdrom (检查设备状态是否可用)

或# lsdev -C -l cd0 (或其他文件系统逻辑卷名)

(3)仍处于忙状态,则使用检查内核扩展的工具genkex,显示目前已加载的所有内核扩展。

(4)此文件系统中又安装了另一文件系统,查看:mount

根据各安装点umount卸载它们,再卸载父文件系统。

3、无法删除文件系统

可能是ODM数据库中定义与实际情况不一致。

#lsvg -l rootvg (检查文件系统类型)

若显示为???,则对卷组进行同步:

#synclvodm -P rootvg

#syncvg -v rootvg

再:#lsvg -l rootvg 显示出正确的文件类型

此时即可删除该文件系统了。

(待续,联系:a3news(#)hotmail.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有