UNIX操作技巧集萃

UNIX操作技巧集萃

SCO UNIX的安全性及用户口令管理
一、计算机系统的安全性
美国国防部计算机安全中心将计算机系统的安全性进行等级化分类,共划分为七个等级:D、C1、C2、B1、B2、B3、A1,以满足不同的安全性要求。其中D级安全性最低,A1级最高。我们常用的DOS、Windows 3.X/95为D级。C2级产品为处理敏感数据的最低级产品。
二、SCO UNIX系统的安全性
SCO UNIX系列是目前金融企业常用的操作系统,它包括 3.2、4.2、OPENSERVER 3.0等几种。它的安全性可以达到C2级标准。之所以说“可以达到”,是因为根据需要,它还将安全性细分为四个等级:
1. 高级(High):适用于系统含有机密数据且用户众多的情况;
2. 改良级(Improved):适用系统含有机密数据且用户不多的情况;
3. 传统级(Traditional):适用于与其它UNIX兼容的情况;
4. 低级(Low):适用于系统规模小而且只有少量内部用户的情况。
在以上四个等级中,前两个的安全性达到C2级安全标准。在安装系统时,我们必须选定一种安全级。安装完成后,超级用户可以利用relax命令来改变系统的安全级。
三、SCO UNIX系统用户口令的管理
SCO UNIX系统对用户口令的管理分为两种情况,低安全级为一种,其它安全级为另一种。下面分别说明。
1. 低安全级时,用户口令经加密变换后存放在/etc/passwd文件中,该文件每一行标识一个用户,每行用冒号分隔为七个域:用户名、口令、用户标识号、用户组标识号、用户注释、用户目录、界面程序。如果没有设置口令,则第二域为空。
2. 其它安全级时,用户的口令经加密后存放在/etc/shadow文件中,该文件对应/etc/passwd文件,每行用冒号分隔为四个域:用户名、口令、最后一次修改时间、口令需修改的最小期限、口令最大有效期限。/etc/passwd文件中第二个域被置为x。另外,口令还存放在系统的可靠计算数据库(TCB)的用户说明中,即文件 /tcb/files/auth/用户名的第一个字符/用户名中的第二行,其格式为:
:u_pwd=口令:\
两处的口令必须相同,否则注册时系统会提示“错误的注册标识”并拒绝该用户进入系统。
制作UNIX/XENIX的后备用户口令
现在金融、邮电、税务等部门都在大力推广使用UNIX/XENIX操作系统。但这个系统的维护远比DOS操作系统困难和复杂。如果UNIX/XENIX操作系统的根——root口令长时间不用以致忘记、不正常操作丢失或被他人无意中更改,其后果是极其严重的。本人通过实践发现:制作多用户UNIX/XENIX操作系统超级用户root的后备用户口令,是丢失超级用户口令后挽救UNIX/XENIX操作系统的方法之一。
一、原理
UNIX/XENIX操作系统的超级用户和一般用户的口令存放在/etc/passwd文件中。passwd文件存放的用户信息顺序包括注册名、加密口令、用户标识号、用户组标识号、注解等。用户间用换行符分开,即每个用户占一行;而每个用户的各项表之间用冒号“:”隔开。如果口令是空的,则不需加密口令,否则加密口令由18个数字、字母和符号组成。通过对/etc/passwd文件观察分析,我们可以创建一个普通用户,将普通用户的标识号、用户组标识号修改成和超级用户root一致,用这样一个修改后的普通用户注册,就可进入超级用户根目录下,如果有操作口令,则这个普通用户就成为后备用户,其口令就是后备口令。以后发生意外超级用户root口令丢失无法正常维护和工作时,就可通过后备用户口令注册,修改/etc/passwd文件,将超级用户的口令删除,重新注册,建立新口令。
二、方法和步骤
1. 建立后备用户和口令
(1)在正常维护过程中,在超级用户下,创建一个名为sbnh的普通用户(任意取名),并输入口令作为后备口令。
(2)在超级用户下,用vi命令编辑/etc/passwd文件,找到名为sbnh的用户设置项,将其用户的标识号、用户组标识号修改成与超级用户root一致。即:
#vi /etc/passwd
sbnh:kdMIPLOp36wc, YK:202:50::/usr/sbnh:/bin/sh(修改前)
sbnh:kdMIPLOp36wc, YK:0:1:superuser:/:/bin/sh(修改后)
存盘后退出vi编辑命令。此时已经建立了超级用户root的后备用户口令。
2. 启用后备用户口令注册,重新建立超级用户root口令
(1)当超级用户口令丢失时,首先用后备用户口令注册,进入超级用户方式下,用vi编辑命令修改/etc/passwd文件中的root超级用户项,将其口令删除。即:
sco unix login:sbnh
passwd:[qqwwee](注:方括号内输入的口令是看不见的)
#vi /etc/passwd
root:dIbaJae7eRB9E, ky:0:1:superuser:/:(修改前)
root::0:1:superuser:/:(修改后)
存盘退出vi编辑命令。此时超级用户root的口令为任意口令。
(2)重新用root注册,建立超级用户新口令
当第一次用root注册并输入任意口令时,注册成功。但第二次注册时,系统提示重新输入新口令。此时,重新输入口令后就是超级用户root的新口令。
XENIX通用应急启动盘的制作和使用
系统应急启动盘对XENIX系统的重要性是不言而喻的。不同的计算机出现故障时,只有用自己的应急盘才能启动,这不仅加重了网络管理员的工作量,而且当某台计算机的应急启动盘损坏时,就只能重装系统。
以下介绍的方法可以很好地解决上述问题。
一、通用应急启动盘的制作
1. 在XENIX中用diskcp命令完整拷贝一张系统安装盘的N1盘;
2. 检查所需修复的计算机启动软驱(A驱,即UNIX、XENIX系统所称的“0”驱)的容量与N1盘是否一致。如果不一致,应进入CMOS中改为一致,否则不能用软盘启动系统;
3. 在由硬盘启动的XENIX系统提示符#下顺序执行以下命令:
#mount /dev/devicename /mnt
(若N1盘为1.44MB,则devicename为fd0135或fd1135;若N1盘为1. 2MB,则devicename为fd096或fd196。)
#cd /mnt
#rm hdlist profile hd
#cd bin
#rm cpio dd
#rm -r /etc/perms /usr/lib
(以上操作的目的是为节省出N1盘的剩余磁盘空间,以便在用N1盘启动后可以将硬盘根文件系统安装在N1盘上。N1盘的剩余磁盘空间可以用df-v命令检查出。)
#chmod u+w profile
#vi profile
(在vi全屏幕编辑 profile文件时依次作以下修改:
用dd命令删除从if /usr/lib/mkdev/hd 0开始的以下各行;
将if语句以上各行依次改为:
PS1=″#″
HZ=20
SHELL=/bin/sh
PATH=/etc:/bin:/usr/bin
wq命令存盘退出。)
#cp /bin/l /mnt/bin
#cd /
#unmount /dev/devicename
#sync(连续三遍)
#haltsys
二、用通用应急启动盘维护XENIX系统
若我们不慎把超级用户口令遗失,或不正常操作丢失,就需通用应急启动盘维护XENIX系统,其具体步骤如下:
1. 将制作好的通用应急启动盘插入A驱,引导系统;
2. 在#提示符下依次执行以下命令:
#mount /dev/hd0root /mnt
#cd /mnt/etc
#cp passwd passwd old
#cp /ctc/passwd /mnt/ctc
#cd /
#haltsys
3. 移去通用应急启动盘,从硬盘启动机器;
4. 在login下键入root即直接进入系统(此时已无需超级用户口令);
5. 在#提示符下执行以下命令:
#cd /etc
#cp passwd old passwd
#passwd
此时用户即可输入自己的新口令。
以上操作在OLIVETTI 386SX16及PHILIP Pentium 100机上获得通过。
给UNIX加把屏幕锁
UNIX操作系统大多安装在网络服务器上,为了避免维护人员不在时无关人员对服务器进行误操作,我用C语言编写了一个小程序实现了屏幕锁的功能,该程序在AT&T UNIX 4.0和SCO UNIX 5.0上均运行通过,源程序如下:
#include ″curses. h″/*curses为UNIX提供的屏幕处理函数*/
main()
{int flag=0;
int i;
int passwd[4];/*口令长度为4*/
noecho();/*屏幕不回显键盘的输入*/
while(flag!=1)
{
for(i=0;i<=3;i++)
{move(20,20);
passwd[i]=getch();
mvprintw(20,20+i,″*″);/*每敲一下键在屏幕上显示一个“*”*/
}
if(passwd[0]==′h′&&passwd[1]==′a′&&passwd[2]==′w′&&passwd[3]==′k′)
{/*口令为hawk*/
mvprintw(10,20,″输入正确!″);
flag=1;
}
move(20,20);
clrtoeol();/*清除有“*”的行*/
for(i=0;i<=5;i++)
passwd[i]=′′;/*清除passwd*/
}
refresh();
endwin();
echo();
/*屏幕恢复*/
}

用下述命令可将该程序编译成可执行程序(设该程序为lock.c,生成的可执行文件为a. out):
$ cc lock.c a.out -lcurses。
(黄红松 邰秀俐 石鹰 唐云荔)