自由虽然有代价,但一切都值得!!!
其实想起以前,印在记忆理抹不去的,只有那一轮明月!而藏在心底最深处的,却也只是情人的眼泪,和最后一次她在你面前伤感的把头低垂! 而现在,多么想伸出双手,让风吹扬而起的她的秀发,温柔地舒张在手指之间,让我回到过去那些不知珍惜的岁月和情感中,轻轻的忏悔,将我压在心里多年的话语,在你耳边轻诉---“你走了,但却再也没有离开过~~~”
posts - 40,comments - 58,trackbacks - 0

在/mnt中建立相应文件夹,比如c代表windows的c盘

$ sudo vim /etc/fstab

修改或者加入类似如下:

/dev/hda1   /mnt/c    vfat    ro,auto,iocharset=utf8  0 0
/dev/hda2 /mnt/d vfat rw,auto,umask=000,iocharset=utf8 0 0
/dev/hda3 /mnt/e vfat rw,auto,umask=000,iocharset=utf8 0 0

因为我的windows有这三个fat32分区,所以如此写。 若是ntfs则用ntfs更换上面的vfat,不过据说需要重新编译内核或者下载一个软件包, 加入ntfs的支持才能如此用,我没试过。

这里我让windows的c盘只读,从保险起见,禁止ubuntu对其写操作。

posted @ 2006-07-11 17:14 sosopro 阅读(269) | 评论 (0)编辑 收藏
wget的使用形式是:
wget [参数列表] URL
首先来介绍一下wget的主要参数:
· -b:让wget在后台运行,记录文件写在当前目录下"wget-log"文件中;
· -t [nuber of times]:尝试次数,当wget无法与服务器建立连接时,尝试连接多少次
。比如"-t
120"表示尝试120次。当这一项为"0"的时候,指定尝试无穷多次直到连接成功为止,这个
设置非常有用,当对方服务器突然关机或者网络突然中断的时候,可以在恢复正常后继续
下载没有传完的文件;
· -c:断点续传,这也是个非常有用的设置,特别当下载比较大的文件的时候,如果中
途意外中断,那么连接恢复的时候会从上次没传完的地方接着传,而不是又从头开始,使
用这一项需要远程服务器也支持断点续传,一般来讲,基于UNIX/Linux的Web/FTP服务器
都支持断点续传;
· -T [number of seconds]:超时时间,指定多长时间远程服务器没有响应就中断连接
,开始下一次尝试。比如"-T
120"表示如果120秒以后远程服务器没有发过来数据,就重新尝试连接。如果网络速度比
较快,这个时间可以设置的短些,相反,可以设置的长一些,一般最多不超过900,通常
也不少于60,一般设置在120左右比较合适;
· -w [number of seconds]:在两次尝试之间等待多少秒,比如"-w 100"表示两次尝试
之间等待100秒;
· -Y on/off:通过/不通过代理服务器进行连接;
· -Q [byetes]:限制下载文件的总大小最多不能超过多少,比如"-Q2k"表示不能超过2K
字节,"-Q3m"表示最多不能超过3M字节,如果数字后面什么都不加,就表示是以字节为单
位,比如"-Q200"表示最多不能超过200字节;
· -nd:不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里;
· -x:与"-nd"设置刚好相反,创建完整的目录结构,例如"wget -nd
http://www.gnu.org"将创建在当前目录下创建"www.gnu.org"子目录,然后按照服务器
实际的目录结构一级一级建下去,直到所有的文件都传完为止;
· -nH:不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到当前目
录下;
· --http-user=username
· --http-passwd=password:如果Web服务器需要指定用户名和口令,用这两项来设定;
· --proxy-user=username
· --proxy-passwd=password:如果代理服务器需要输入用户名和口令,使用这两个选项

· -r:在本机建立服务器端目录结构;
· -l [depth]:下载远程服务器目录结构的深度,例如"-l 5"下载目录深度小于或者等
于5以内的目录结构或者文件;
· -m:做站点镜像时的选项,如果你想做一个站点的镜像,使用这个选项,它将自动设
定其他合适的选项以便于站点镜像;
· -np:只下载目标站点指定目录及其子目录的内容。这也是一个非常有用的选项,我们
假设某个人的个人主页里面有一个指向这个站点其他人个人主页的连接,而我们只想下载
这个人的个人主页,如果不设置这个选项,甚至--有可能把整个站点给抓下来,这显然是
我们通常不希望的;
ü 如何设定wget所使用的代理服务器
wget可以使用用户设置文件".wgetrc"来读取很多设置,我们这里主要利用这个文件来是
设置代理服务器。使用者用什么用户登录,那么什么用户主目录下的".wgetrc"文件就起
作用。例如,"root"用户如果想使用".wgetrc"来设置代理服务器,"/root/.wgert"就起
作用,下面给出一个".wge
trc"文件的内容,读者可以参照这个例子来编写自己的"wgetrc"文件:
http-proxy = 111.111.111.111:8080
ftp-proxy = 111.111.111.111:8080
这两行的含义是,代理服务器IP地址为:111.111.111.111,端口号为:80。第一行指定
HTTP协议所使用的代理服务器,第二行指定FTP协议所使用的代理服务器。
posted @ 2006-07-10 14:42 sosopro 阅读(289) | 评论 (0)编辑 收藏

普通 APT 用法

apt-get install <package>
下载 <package> 以及所有倚赖的包裹,同时进行包裹的安装或升级。如果某个包裹被设置了 hold (停止标志,就会被搁在一边(即不会被升级)。更多 hold 细节请看下面。

apt-get remove [--purge] <package>

移除 <package> 以及任何倚赖这个包裹的其它包裹。
--purge 指明这个包裹应该被完全清除 (purged) ,更多信息请看 dpkg -P。

apt-get update

升级来自 Debian 镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了
/etc/apt/sources.list 后,必须执行。

apt-get upgrade [-u]

升级所以已经安装的包裹为最新可用版本。不会安装新的或移除老的包裹。如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为 holdapt-get update 不会升级被标志为 hold 的包裹 (这个也就是 hold 的意思)。请看下文如何手动设置包裹为 hold。我建议同时使用 '-u' 选项,因为这样你就能看到哪些包裹将会被升级。

apt-get dist-upgrade [-u]

apt-get upgrade 类似,除了 dist-upgrade 会安装和移除包裹来满足倚赖关系。因此具有一定的危险性。

apt-cache search <pattern>
搜索满足 <pattern> 的包裹和描述。

apt-cache show <package>

显示 <package> 的完整的描述。

apt-cache showpkg <package>
显示 <package> 许多细节,以及和其它包裹的关系。

dselect
console-apt
aptitude
gnome-apt

APT 的几个图形前端(其中一些在使用前得先安装)。这里 dselect 无疑是最强大的,也是最古老,最难驾驭。

普通 Dpkg 用法

dpkg -i <package.deb>
安装一个 Debian 包裹文件,如你手动下载的文件。

dpkg -c <package.deb>

列出 <package.deb> 的内容。

dpkg -I <package.deb>

从 <package.deb> 中提取包裹信息。

dpkg -r <package>

移除一个已安装的包裹。

dpkg -P <package>

完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。

dpkg -L <package>

列出 <package> 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。

dpkg -s <package>

显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。

dpkg-reconfigure <package>

重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。你能够重新配制 debconf 它本身,如你想改变它的前端或提问的优先权。例如,重新配制 debconf,使用一个 dialog 前端,简单运行:

dpkg-reconfigure --frontend=dialog debconf (如果你安装时选错了,这里可以改回来哟:)

echo "<package> hold" | dpkg --set-selections
设置 <package> 的状态为 hlod (命令行方式)

dpkg --get-selections "<package>"

取的 <package> 的当前状态 (命令行方式)

支持通配符,如:
Debian:~# dpkg --get-selections *wine*
libwine                                         hold
libwine-alsa                                    hold
libwine-arts                                    hold
libwine-dev                                     hold
libwine-nas                                     hold
libwine-print                                   hold
libwine-twain                                   hold
wine                                            hold
wine+                                           hold
wine-doc                                        hold
wine-utils                                      hold

例如:
大家现在用的都是 gaim-0.58 + QQ-plugin,为了防止 gaim 被升级,我们可以采用如下方法:

方法一:
Debian:~# echo "gaim hold" | dpkg --set-selections
然后用下面命令检查一下:
Debian:~# dpkg --get-selections "gaim"
gaim                                            hold
现在的状态标志是 hold,就不能被升级了。

如果想恢复怎么办呢?
Debian:~# echo "gaim install" | dpkg --set-selections
Debian:~# dpkg --get-selections "gaim"
gaim                                            install
这时状态标志又被重置为 install,可以继续升级了。

同志们会问,哪个这些状态标志都写在哪个文件中呢?
在 /var/lib/dpkg/status 里你也可以通过修改这个文件实现 hold。

有时你会发现有的软件状态标志是 purge,不要奇怪。
如:事先已经安装了 amsn,然后把它卸了。
apt-get remove --purge amsn
那么状态标志就从 install 变成 purge。

方法二:
在/etc/apt 下手动建一个 preferences 文件
内容:
Package: gaim
Pin: version 0.58*
保存
更详细内容请看:
http://linuxsir.com/bbs/showthread.php?s=&threadid=22601

dpkg -S <file>
在包裹数据库中查找 <file>,并告诉你哪个包裹包含了这个文件。(注:查找的是事先已经安装的包裹)

从源码建立 deb packages

apt-get source [-b] <package>
下载一个源码的包并解开。
你必须在你的 /etc/apt/sources.list 文件里写入一条 deb-src 的记录才能完成这项工作。
如果你输入了一个 -b 参数,并且是以 root 的身份,deb 包会被自动的创建。

apt-get build-dep <package>
自动下载并安装通过源码创建 <package> 时需要的包。
只有apt 0.5以上版本才支持这个功能。
现在woody和以上版本包含了这个功能。
如果你使有一个旧版本的apt,查找依赖性最简单的方法是查看源码包中 debian/control 这个文件,
注意这个路径是相对的,是包内的路径。

普通的用法,结合 apt-get source -b,例子 (as root):

apt-get build-dep <package>
apt-get source -b <package>

会下载源码包,建立依赖性,然后尝试编译源码。

dpkg-source -x <package.dsc>
如果你手工下载了一个程序的源码包,其中包含了几个类似 .orig.tar.gz ,.dsc ,
以及 .diff.gz 之类的文件,
那么你就可以对 .dsc 文件使用这个命令来 unpack 源码包。

dpkg-buildpackage
从 Debian 源码树建立一个 deb 包。你必须在 source tree 的主目录才能生效。例如:

dpkg-buildpackage -rfakeroot -uc -b

这里 '-rfakeroot' 指定命令使用 fakeroot 程序来模仿 root 权限 [来实现所有者(ownership)目的],
'-uc' 表示 "Don't cryptographically sign the changelog",'-b' 代表只建立二进制包。

debuild
一个快速打包脚本类似 dpkg-buildpackage,能自动的识别是否使用 fakeroot,
同时为你运行 lintiangpg

修正倚赖关系

dpkg --configure --pending
如果 dpkg 在 apt-get install upgrade dist-uptradeing 的时候出错退出,
尝试使用此命令来配置已经 unpack 的包。
然后再用 apt-get install,upgrade,或者 dist-upgrade -f,
然后再用 apt-get install,upgrade,或者 dist-upgrade。

可能会重复多次,这样通常可以解决大多数的依赖性问题。
(同时,如果提示由于某种原因需要某个特定的包裹,你可以常识安装或卸载这个包)

apt-get install -f
apt-get upgrade -f
apt-get dist-upgrade -f
尝试修正上述过程中出现依赖性关系
注意 apt-get install -f 不需要 <package> 作为参数。
posted @ 2006-07-08 12:56 sosopro 阅读(359) | 评论 (0)编辑 收藏
apt是轻量级的在线安装升级的软件包管理系统,synaptic 是图形化的apt软件包管理工具。能够管理Fedora core 4.0 系统及升级源的所有的软件包;是一个极为方便的软件包管理工具;两者配合,效果最佳,最适合我等一无所知的菜鸟弟兄;

可能有的弟兄介绍过这个软件,我也把自己的使用经验和大家分享一下;主要是想为新手弟兄写一个一步到位的文档,最好对Linux一无所知的弟兄,也能一路OK 。

一、apt的安装和简单用法;

1、apt的安装;

#rpm -ivh http://ftp.freshrpms.net/pub/fedora/linux/extras/4/i386/apt-0.5.15cnc7-6.fc4.i386.rpm

2、导入GPG签名;

#rpm --import http://svn.rpmforge.net/svn/branches/rpms/matthias/apt/RPM-GPG-KEY.freshrpms
rpm --import http://rpm.livna.org/RPM-LIVNA-GPG-KEY

3、加Fedora core 4.0的源;

在/etc/apt/目录中找到 sources.list,在里面加如下的两行;
rpm http://ayo.freshrpms.net fedora/linux/4/i386 core extras updates freshrpms
rpm http://rpm.livna.org/ fedora/4/i386 lvn

4.apt 简单的应用;

1]安装和配置好apt的第一步是执行 apt-get update ,目的是来从apt源中取回软件包的列表;也就是我们上面说的那个sources.list提到的源;

[root@localhost beinan]# apt-get update
You don't seem to have one or more of the needed GPG keys in your RPM database.
Importing them now...
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386 release [1834B]
Fetched 1834B in 8s (222B/s)
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/core pkglist [518kB]
Get:2 http://ayo.freshrpms.net fedora/linux/4/i386/core release [151B]
Get:3 http://ayo.freshrpms.net fedora/linux/4/i386/extras pkglist [1262kB]
Get:4 http://ayo.freshrpms.net fedora/linux/4/i386/extras release [155B]
Get:5 http://ayo.freshrpms.net fedora/linux/4/i386/updates pkglist [1107kB]
Get:6 http://ayo.freshrpms.net fedora/linux/4/i386/updates release [157B]
Get:7 http://ayo.freshrpms.net fedora/linux/4/i386/freshrpms pkglist [65.3kB]
Get:8 http://ayo.freshrpms.net fedora/linux/4/i386/freshrpms release [161B]
Fetched 2952kB in 59s (49.9kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done

2]安装、升级、移除软件包的用法;

a)软件包的安装;

[root@localhost beinan]# apt-get install 软件包名称

注:不要加版本号,软件名就好;

比如我们想安装或者升级firefox ,就可以直接用 apt-get install firefox ;

[root@localhost beinan]# apt-get install firefox
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be upgraded
firefox (1.0.4-4 => 1.0.6-1.1.fc4)
1 upgraded, 0 newly installed, 0 removed and 234 not upgraded.
Need to get 19.2MB of archives.
After unpacking 17.0kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/updates firefox 0:1.0.6-1.1.fc4 [19.2MB]
Fetched 19.2MB in 6m25s (49.8kB/s)
Checking GPG signatures... ########################################### [100%]
Committing changes...
Preparing... ########################################### [100%]
1:firefox ########################################### [100%]
Done.

b)移除软件包;

[root@localhost beinan]# apt-get remove 软件包名
举例:
[root@localhost beinan]# apt-get remove firefox

c)对系统全面升级;

[root@localhost beinan]# apt-get upgrade
[root@localhost beinan]# apt-get dist-upgrade

这两个功能差不多;

d)常用的参数选项;

[root@localhost beinan]# apt-get install -y 软件包名

比如:

[root@localhost beinan]# apt-get install -y gaim

注:如果意外中断的包下载和安装,可以用-y参数来继续下载安装,如上面gaim我下载到10%,可以用上面的命令接着来下载安装或者升级;


[root@localhost beinan]# apt-get install -d 软件包名

比如:


[root@localhost beinan]# apt-get install -d

注:只是下载软件包,不解包,也不安装,下载到本地机的目录为 /var/cache/apt/archives

3]清理apt-get 后下载下来的包和未完成的包;

[root@localhost beinan]# apt-get clean

通过apt-get下载下来的包存放在 /var/cache/apt/archives目录中;有时我们中断一些正在apt-get 的包,这样的包没有完全下载下来;我们也可以清理掉;也可以用继续接着下载安装,也可以清理掉;

这样apt-get clean 就会删除 已经下载完成的位于/var/cache/apt/archives目录的所有包;也会清理掉下载未完成的包位于/var/cache/apt/archives/partial/

这个功能还是比较有用的,因为apt-get 下载和安装量极大,要定期清理;

二、synaptic的安装和用法;

相对 apt-get的命令行操作来说,synaptic的操作还是极为简单的;synaptic全是点鼠标可视化操作;我等菜鸟不必知道什么原理不原理的,原理是早早晚晚都会知道,这有个时间的过程;但我们得把自己想要安装的东西得安装上,好在LinuxSir.Org 灌水啊,哈哈;

1]安装:

[root@localhost beinan]# apt-get install synaptic
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
   synaptic (0.57.2-1.fc4)
0 upgraded, 1 newly installed, 0 removed and 234 not upgraded.
Need to get 1682kB of archives.
After unpacking 4311kB of additional disk space will be used.
Get:1 http://ayo.freshrpms.net fedora/linux/4/i386/extras synaptic 0.57.2-1.fc4 [1682kB]
Fetched 1682kB in 46s (36.2kB/s)
Checking GPG signatures... ########################################### [100%]
Committing changes...
Preparing... ########################################### [100%]
   1:synaptic ########################################### [100%]
Done.


2]用法;简单吧;

想安装点什么就安装点什么吧;

建议:新手不要大规模的升级系统,要先安装和升级几个你想用的包;比如 xmms等;等手熟了,我们再大规模的升级和安装,但最好还是不要这样做,毕竟图形化的工具,有时会出现崩溃。所以还是小批量的比较好;

posted @ 2006-07-08 12:05 sosopro 阅读(657) | 评论 (1)编辑 收藏
许多网络程序,如telnet、rsh、rlogin或rexec,用明文(plain text)传送口令和秘密的信息,所以就可利用任何连接到网络上 的计算机监听这些程序和服务器之间的通信并获取口令和秘密信息。现在,telnet程序对于日常的管理工作是必不可少的,但是它又是不安全的,那么用什么 来替代它呢?OpenSSH就是那些过时的、不安全的远程登录程序,如:telnet、rlogin、rsh、rdist或rcp的替代品。 

在OpenSSH的README文件中提到:ssh(Secure Shell)程序可以通过网络登录到远程主机并执行命令。它提供了很强的安全验证可以在不安全的网络中进行安全的通信。 

我们把OpenSSH配置成支持TCP-Wrappers(inetd超级服务器),这样能够进一步地提高安全性而且也没有必要把OpenSSH作为守护 进程(daemon)在后台运行。当客户端的程序提出连接请求的时候,TCP-Wrappers守护进程就会在把连接重定向到OpenSSH之前,对连接 请求进行验证和授权。OpenSSH是自由软件而且使用不受专利保护的加密算法。因此,我建议你使用OpenSSH(免费而且修正了一些bug),而不使 用SSH1(免费但是有bug)和SSH2(现在使用商用的许可协议)。 

注意事项 
下面所有的命令都是Unix兼容的命令。 

源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。 

安装在RedHat linux 6.1和6.2下测试通过。 

要用“root”用户进行安装。 

OpenSSH的版本是1.2.3。 

软件包的来源 
OpenSSH的主页:http://violet.ibs.com.au/openssh/。 

下载:openssh-1.2.3.tar.gz。 

准备工作 
编译OpenSSH需要zlib-devel软件包,这个软件包包括头文件和函数库。编译使用zlib的压缩和解压函数的程序,就要事先安装这个软件包。可以用RedHat 6.1或6.2的光盘安装。 

l 用下面的命令验证一下在系统中是否已经安装了zlib-devel软件包: 

[root@deep /]# rpm -qi zlib-devel 

l 用下面命令在系统中安装zlib-devel软件包: 

[root@deep /]# mount /dev/cdrom /mnt/cdrom/ 
[root@deep /]# cd /mnt/cdrom/RedHat/RPMS/ 
[root@deep RPMS]# rpm -Uvh zlib-devel-version.i386.rpm 
gd ################################################## 
[root@deep RPMS]# rpm -Uvh gd-devel-version.i386.rpm 
zlib-devel ################################################## 
[root@deep RPMS]# cd /; umount /mnt/cdrom/ 

在使用OpenSSH之前,还必须安装OpenSSL。因为就算你不使用OpenSSL创建或保存加密文件,OpenSSH需要用OpenSSL的库文件才能正常运行。 

安装软件包需要注意的问题 
最好在编译前和编译后都做一张系统中所有文件的列表,然后用“diff”命令去比较它们,找出其中的差别并知道到底把软件安装在哪里。只要简单地在编译之 前运行一下命令“find /* &gt;OpenSSH1”,在编译和安装完软件之后运行命令“find /* &gt;  OpenSSH2”,最后用命令“diff OpenSSH1 OpenSSH2 &gt; OpenSSH-Installed”找出变化。 

编译和安装 
把软件包(tar.gz)解压: 

[root@deep /]# cp openssh-version.tar.gz /var/tmp 
[root@deep /]# cd /var/tmp 
[root@deep tmp]# tar xzpf openssh-version.tar.gz 

编译和优化 
第一步 

转到OpenSSH的新目录下,先设置编译器的编译参数: 

CC="egcs"  
CFLAGS="-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame- 
pointer -fno-exceptions"  
./configure  
--prefix=/usr  
--sysconfdir=/etc/ssh  
--with-tcp-wrappers  
--with-ipv4-default  
--with-ssl-dir=/usr/include/openssl 

这些设置告诉编译器如何编译OpenSSH: 

l 链接上libwrap函数库并且加上对TCP Wrappers的支持 

l 禁止linux/glibc-2.1.2中域名解析的延时,缩短建立连接的时间 

l 设置OpenSSL函数库的路径,这样OpenSSH才能正常运行 

第二步 

现在,编译和安装OpenSSH: 

[root@deep openssh-1.2.3]# make 
[root@deep openssh-1.2.3]# make install 
[root@deep openssh-1.2.3]# make host-key 
[root@deep openssh-1.2.3]# install -m644 contrib/redhat/sshd.pam /etc/pam.d/sshd 

“make”命令把源文件编译成可执行的二进制文件,“make install”把二进制文件和配置文件安装在合适的目录下。“make host-key”生成主机密匙,“install”命令在RedHat linux上安装对OpenSSH的PAM支持。 

清除不必要的文件 
用下面的命令删除不必要的文件: 

[root@deep /]# cd /var/tmp 
[root@deep tmp]# rm -rf openssh-version/ openssh-version.tar.gz 

“rm”命令删除所有编译和安装OpenSSH所需要的源程序,并且把OpenSSH软件的压缩包删除掉。 

配置 
可以到这去下载“floppy.tgz”文件:http://www.openna.com/books/floppy.tgz。把 “floppy.tgz”文件解开之后,可以在相应的目录下发现我们在这本书中介绍的所有软件的配置文件。这样就没有必要手工重新生成这些文件,或者用拷 贝粘贴的方法把它们粘贴到配置文件中去。不管是打算自己动手生成配置文件还是拷贝现成的,你都要学会自己修改配置文件并且把配置文件拷贝到正确的目录下。 下面将具体说明。 

为了运行OpenSSH,必须创建或者把下面的文件拷贝到相应的目录下: 

l 把“sshd_config”文件拷贝到“/etc/ssh”目录下 

l 把“ssh_config”文件拷贝到“/etc/ssh”目录下 

l 把“ssh”文件拷贝到“/etc/pam.d/”目录下 

可以把“floppy.tgz”解压之后,找到上面列出来的文件,并拷贝到合适的目录下,或者用拷贝粘贴的方法从本书中直接粘贴出。 

配置“/etc/ssh/ssh_config”文件 
“/etc/ssh/ssh_config”文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式。这个文件的 每一行包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词,用man命令查看帮助页(ssh (1))可以得到详细的列表。 

编辑“ssh_config”文件(vi /etc/ssh/ssh_config),添加或改变下面的参数: 

# Site-wide defaults for various options 
Host * 
ForwardAgent no 
ForwardX11 no 
RhostsAuthentication no 
RhostsRSAAuthentication no 
RSAAuthentication yes 
PasswordAuthentication yes 
FallBackToRsh no 
UseRsh no 
BatchMode no 
CheckHostIP yes 
StrictHostKeyChecking no 
IdentityFile ~/.ssh/identity 
Port 22 
Cipher blowfish 
EscapeChar ~ 

下面逐行说明上面的选项设置: 

Host * 
选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。 

ForwardAgent no 
“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。 

ForwardX11 no 
“ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。 

RhostsAuthentication no 
“RhostsAuthentication”设置是否使用基于rhosts的安全验证。 

RhostsRSAAuthentication no 
“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。 

RSAAuthentication yes 
“RSAAuthentication”设置是否使用RSA算法进行安全验证。 

PasswordAuthentication yes 
“PasswordAuthentication”设置是否使用口令验证。 

FallBackToRsh no 
“FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。 

UseRsh no 
“UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。 

BatchMode no 
“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。 

CheckHostIP yes 
“CheckHostIP”设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。 

StrictHostKeyChecking no 
“StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。 

IdentityFile ~/.ssh/identity 
“IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。 

Port 22 
“Port”设置连接到远程主机的端口。 

Cipher blowfish 
“Cipher”设置加密用的密码。 

EscapeChar ~ 
“EscapeChar”设置escape字符。 

配置“/etc/ssh/sshd_config”文件 
“/etc/ssh/sshd_config”是OpenSSH的配置文件,允许设置选项改变这个daemon的运行。这个文件的每一行包含“关键词- 值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词,用man命令查看帮助页(sshd (8))可以得到详细的列表。 

编辑“sshd_config”文件(vi /etc/ssh/sshd_config),加入或改变下面的参数: 

# This is ssh server systemwide configuration file. 
Port 22 
ListenAddress 192.168.1.1 
HostKey /etc/ssh/ssh_host_key 
ServerKeyBits 1024 
LoginGraceTime 600 
KeyRegenerationInterval 3600 
PermitRootLogin no 
IgnoreRhosts yes 
IgnoreUserKnownHosts yes 
StrictModes yes 
X11Forwarding no 
PrintMotd yes 
SyslogFacility AUTH 
LogLevel INFO 
RhostsAuthentication no 
RhostsRSAAuthentication no 
RSAAuthentication yes 
PasswordAuthentication yes 
PermitEmptyPasswords no 
AllowUsers admin 

下面逐行说明上面的选项设置: 

Port 22 
“Port”设置sshd监听的端口号。 

ListenAddress 192.168.1.1 
“ListenAddress”设置sshd服务器绑定的IP地址。 

HostKey /etc/ssh/ssh_host_key 

“HostKey”设置包含计算机私人密匙的文件。 

ServerKeyBits 1024 
“ServerKeyBits”定义服务器密匙的位数。 

LoginGraceTime 600 
“LoginGraceTime”设置如果用户不能成功登录,在切断连接之前服务器需要等待的时间(以秒为单位)。 

KeyRegenerationInterval 3600 
“KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。 

PermitRootLogin no 
“PermitRootLogin”设置root能不能用ssh登录。这个选项一定不要设成“yes”。 

IgnoreRhosts yes 
“IgnoreRhosts”设置验证的时候是否使用“rhosts”和“shosts”文件。 

IgnoreUserKnownHosts yes 
“IgnoreUserKnownHosts”设置ssh daemon是否在进行RhostsRSAAuthentication安全验证的时候忽略用户的“$HOME/.ssh/known_hosts” 

StrictModes yes 
“StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。 

X11Forwarding no 
“X11Forwarding”设置是否允许X11转发。 

PrintMotd yes 
“PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。 

SyslogFacility AUTH 
“SyslogFacility”设置在记录来自sshd的消息的时候,是否给出“facility code”。 

LogLevel INFO 
“LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。 

RhostsAuthentication no 
“RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够了。 

RhostsRSAAuthentication no 
“RhostsRSA”设置是否允许用rhosts或“/etc/hosts.equiv”加上RSA进行安全验证。 

RSAAuthentication yes 
“RSAAuthentication”设置是否允许只有RSA安全验证。 

PasswordAuthentication yes 
“PasswordAuthentication”设置是否允许口令验证。 

PermitEmptyPasswords no 
“PermitEmptyPasswords”设置是否允许用口令为空的帐号登录。 

AllowUsers admin 
“AllowUsers”的后面可以跟着任意的数量的用户名的匹配串(patterns)或user@host这样的匹配串,这些字符串用空格隔开。主机名可以是DNS名或IP地址。 

配置OpenSSH使其使用TCP-Wrappers inetd超级服务器 
TCP-WRAPPERS用来启动和停止sshd1服务。当inetd运行的时候,它会从配置文件(默认为“/etc/inetd.conf”)中读入配置信息。在配置文件中每一行的不同项是用TAB或空格分开。 

第一步 

编辑“inetd.conf”文件(vi /etc/inetd.conf)并加入这一行: 

ssh stream tcp nowait root /usr/sbin/tcpd sshd –i 

注意:“-i”参数很重要,它说明sshd是被inetd运行的。在加入这一行后,通过发送一个SIGHUP信号(killall –HUP inetd)来更新“inetd.conf”文件。 

[root@deep /root]# killall -HUP inetd 

第二步 

编辑“hosts.allow”文件(vi /etc/hosts.allow)并加入这一行: 

sshd: 192.168.1.4 win.openarch.com 

这一行表示IP地址为“192.168.1.4”,主机名为“win.openarch.com”的计算机允许用ssh访问服务器。 

下面这些“daemon”字符串(用于TCP-WRAPPERS)被sshd1使用: 

sshdfwd-X11 (允许/禁止X11转发). 
sshdfwd- (TCP转发). 
sshdfwd- (port-name在/etc/services中定义。用于TCP转发). 

注意:如果准备使用ssh,一定要用在所有的服务器上。如果十台安全的服务器和一台不安全的服务器配在一起,也谈不上什么安全性。 

更多的资料 
如果想查找详细的资料可以用man命令查帮助页,读取相关信息: 

$ man ssh (1) - OpenSSH secure shell client (remote login program) 
$ man ssh [slogin] (1) - OpenSSH secure shell client (remote login program) 
$ man ssh-add (1) - adds identities for the authentication agent 
$ man ssh-agent (1) - authentication agent 
$ man ssh-keygen (1) - authentication key generation 
$ man sshd (8) - secure shell daemon 

SSH1每用户配置 
第一步 

为本地服务器创建私有和公用密匙,执行下面的命令: 

[root@deep]# su username 
[username@deep]$ ssh-keygen1 

举个例子,显示出来的结果可能是: 

Initializing random number generator... 
Generating p: ............................++ (distance 430) 
Generating q: ......................++ (distance 456) 
Computing the keys... 
Testing the keys... 
Key generation complete. 
Enter file in which to save the key (/home/username/.ssh/identity): 【按下回车键】 
Enter passphrase: 
Enter the same passphrase again: 
Your identification has been saved in /home/username/.ssh/identity. 
Your public key is: 
1024 37 
14937757511251955533691120318477293862290049394715136511145806108870001764378494676831 
29757784315853227236120610062314604405364871843677484233240919418480988907860997175244 
46977589647127757030728779973708569993017043141563536333068888944038178461608592483844 
590202154102756903055846534063365635584899765402181 username@deep.openarch.com 
Your public key has been saved in /home/username/.ssh/identity.pub 

注意:如果有多个帐号需要为每个帐号创建一个密匙。 

你可能要为下面的服务器创建密匙: 

l Mail服务器 

l Web服务器 

l 网关服务器 

这允许对这些服务器进行有限的访问,例如,不允许用Mail服务器的帐号访问Web服务器或网关服务器。这样可以增加整体的安全性,即使因为某种原因有一个密匙被泄密了,也不会影响到其它的服务器。 

第二步 

把本机的公用密匙(identity.pub)拷贝到远程主机的“/home/username/.ssh”目录下,例如,使用“authorized_keys”这个名字。 

注意:拷贝文件的一个方法使用ftp命令,另一个办法是把公用密匙用email(包含“~/.ssh/identity.pub”文件的内容)发给系统管理员。 

改变pass-phrase 

用加上“-p”参数的“ssh-keygen”命令,在任何时候都可以改变pass-phrase。用下面的命令,改变pass-phrase: 

[root@deep]# su username 
[username@deep]$ ssh-keygen1 –p 

Enter file key is in (/home/username/.ssh/identity): [按下回车键] 
Enter old passphrase: 
Key has comment username@deep.openarch.com 
Enter new passphrase: 
Enter the same passphrase again: 
Your identification has been saved with the new passphrase. 

OpenSSH用户工具 
下面列出的是一些我们经常要用到的命令,当然还有很多其它的命令,更详细的信息可以查看man帮助页或其它文档。 

ssh 
ssh(Secure Shell)是用来登录远程计算机和在远程计算机上执行命令的程序。它是用来替代rlogin和rsh,以及在不安全的网络环境下在两台计算机之间提供安全和加密的信息交流。X11连接和TCP/IP端口可以被转发到一个安全的通道里。 

用下面的命令,登录远程计算机: 

[root@deep]# ssh 

例如: 

[root@deep]# ssh username www.openarch.com 
username@deep.openarch.com’s password: 
Last login: Tue Oct 19 1999 18:13:00 -0400 from gate.openarch.com 
Welcome to www.openarch.com on Deepforest. 

是用来登录ssh服务器的用户名,是ssh服务器主机的地址。 

scp 
可以用这个命令把文件从本地计算机拷贝到远程计算机,或者反之,甚至可以在两台远程计算机之间用“scp”命令拷贝文件。把远程主机上的文件拷贝到当前目录的一个简单的方法如下。 

用下面的命令把文件从远程主机拷贝到本地主机上: 

[root@deep /]# su admin 
[admin@deep /]$ scp -p :/dir/for/file localdir/to/filelocation 

例如: 

[username@deep]$ scp -p username@mail:/etc/test1 /tmp 
Enter passphrase for RSA key username@mail.openarch.com: 
test1 | 2 KB | 2.0 kB/s | ETA: 00:00:00 | 100% 

用下面的命令把文件从本地主机拷贝到远程主机上: 

[root@deep /]# su admin 
[admin@deep /]$ scp -p localdir/to/filelocation :/dir/for/file 

例如: 

[username@deep]$ scp -p /usr/bin/test2 username@mail:/var/tmp 
username@mails password: 
test2 | 7 KB | 7.9 kB/s | ETA: 00:00:00 | 100% 

注意:“-p”选项表示文件的改变和访问时间属性以及权限,在拷贝过程中被保留。通常是需要这样的。 

安装到系统中的文件 
&gt; /etc/ssh 
&gt; /etc/ssh/ssh_config 
&gt; /etc/ssh/sshd_config 
&gt; /etc/ssh_host_key 
&gt; /etc/ssh_host_key.pub 
&gt; /usr/bin/ssh 
&gt; /usr/bin/slogin 
&gt; /usr/man/man1/ssh.1 
&gt; /usr/man/man1/scp.1 
&gt; /usr/man/man1/ssh-add.1 
&gt; /usr/man/man1/ssh-agent.1 
&gt; /usr/man/man1/ssh-keygen.1 
&gt; /usr/bin/scp 
&gt; /usr/bin/ssh-add 
&gt; /usr/bin/ssh-agent 
&gt; /usr/bin/ssh-keygen 
&gt; /usr/man/man1/slogin.1 
&gt; /usr/man/man8/sshd.8 
&gt; /usr/sbin/sshd 

Windows平台上免费的SSH客户软件 
Putty 
Putty的主页:http://www.chiark.greenend.org.uk/~sgtatham/putty.html 

Tera Term Pro and TTSSH 
Tera Term Pro的主页:http://hp.vector.co.jp/authors/VA002416/teraterm.html 

TTSSH Homepage:http://www.zip.com.au/~roca/download.html 

版权说明 
这篇文章翻译和改编自Gerhard Mourani的《Securing and Optimizing linux: RedHat Edition》,原文及其版权协议请参考:www.openna.com。 
posted @ 2006-07-08 11:43 sosopro 阅读(977) | 评论 (1)编辑 收藏

RAID 0:级别0只是数据带。在级别0中,数据被拆分到多于一个的驱动器,结果是更高的数据吞吐量。这是RAID的最快和最有效形式。但是,在这个级别没有数据镜像,所以在阵列中任何磁盘的失败将引起所有数据的丢失。

RAID 1:级别1是完全磁盘镜像。在独立的磁盘上创建和支持数据两份拷贝。级别1阵列与一个驱动器相比读速度快、写速度慢,但是如果任一个驱动器错误,不会有数据丢失。这是最昂贵的RAID级别,因为每个磁盘需要第二个磁盘做它的镜像。这个级别提供最好的数据安全。

RAID 2:级别2设想用于没有内嵌错误检测的驱动器。因为所有的SCSI驱动器支持内嵌错误检测,这个级别已过时,基本上没用了。Linux不使用这个级别。

RAID 3:级别3是一个有奇偶校验磁盘的磁盘带。存储奇偶校验信息到一个独立的驱动器上,允许恢复任何单个驱动器上的错误。Linux不支持这个级别。

RAID 4:级别4是拥有一个奇偶校验磁盘的大块带。奇偶校验信息意味着任何一个磁盘失败数据可以被恢复。级别4阵列的读性能非常好,写速度比较慢,因为奇偶校验数据必须每次更新。

RAID 5:级别5与级别4相似,但是它将奇偶校验信息分布到多个驱动器中。这样提高了磁盘写速度。它每兆字节的花费与级别4相同,提高了高水平数据保护下的高速随机性能,是使用最广泛的RAID系统。

软件RAID是级别0,它使多个硬盘看起来像一个磁盘,但是速度比任何单个磁盘快得多,因为驱动器被并行访问。软件RAID可以用IDE或SCSI控制器,也可以使用任何磁盘组合。

posted @ 2006-07-08 10:18 sosopro 阅读(548) | 评论 (2)编辑 收藏

与普通的IDE硬盘相比,SCSI硬盘的好处主要体现在以下六个方面:

数据传输率更高:SCSI(Small Computer System Interface,小型计算机系统接口)原是一种广泛应用于小型机上的高速数据传输技术,现在越来越多地出现在PC服务器上,SCSI接口正在成为PC 服务器的标准接口。而IDE接口则是普通PC的标准接口。早期IDE接口的数据传输率非常低,从PIO 0模式到UDMA33、UDMA66、UDMA100,直至最新的ATA/133标准,理论上的数据传输率只达到133MB/s。采用Ultra WIDE、Ultra 2 WIDE、Ultra 160/m标准的SCSI接口速度分别可以达到40MB/s、80MB/s、160MB/s,现在Ultra 320标准已经确定,数据传输率已经达到了320MB/s。

转速更快:硬盘转速是决定传输性能的一个关键因素。当主流IDE硬盘的转速在5400rpm时, SCSI硬盘的转速就已经达到7200rpm,而现在IDE硬盘转速提高到7200rpm时,SCSI硬盘的转速早已高达15000rpm了。高转速意味 着硬盘的平均寻道时间短,能够迅速找到需要的磁道和扇区。

缓存容量更大:缓存容量也是影响硬盘性能的重要因素之一。SCSI硬盘一般都配置了容量相对较大 (8MB甚至更多)的缓存,用来解决硬盘与内存之间的传输速度瓶颈问题。同时,SCSI硬盘采用了巨型磁阻磁头(GMR)技术,其读、写分别由不同的磁头 来完成,大大提高了硬盘的速度。而IDE硬盘的缓存容量则比较小,一般为2MB,虽然现在也出现了8MB缓存的IDE硬盘,提高了一些IDE硬盘的性能, 但是由于IDE硬盘的先天不足,所以其性能没有得到显著的提升。

CPU占用率更低:比较SCSI硬盘和IDE硬盘的CPU占用率,可以发现SCSI硬盘具有相当的优势。 SCSI硬盘可通过独立的、高速的SCSI卡来控制数据的读写操作,大大提高了系统的整体性能。而IDE硬盘没有专用的数据处理芯片来担当数据处理重任, 所以对CPU的占用比较多,比如当保存一个比较大的Word文件时,您就会发现计算机停顿一下,这是因为CPU处理数据的结果。

扩展性更好:SCSI的扩展性要比IDE好得多。一般每个IDE系统可有两个IDE通道,总共连4个 IDE设备,使用比较特殊技术的主板也只能最大支持8个设备。而SCSI接口可连接7~15个设备,比IDE要多很多。现在IDE只有硬盘和光驱两类设 备,SCSI则多得多,比如扫描仪、打印机等。IDE的电缆长度大约为45cm,SCSI则可以达到1.5~12m,甚至更长,安装的自由度高了很多。由 于SCSI设备的中断共享,即只由SCSI卡占用一个中断,连接在其上的设备由SCSI卡提供ID地址。因此使中断得到了扩展,解决了出现中断冲突的问 题。

热插拔特性更佳:SCSI硬盘支持热插拔的硬盘安装方式,可以在服务器不停机的情况下拔出或插入硬盘,操作系 统可自动识别硬盘的改动。这种技术对于24小时不间断运行的服务器来说是非常必要的。当然并不是所有的SCSI硬盘都支持热插拔,只有符合热插拔标准的 SCSI硬盘才可以实现热插拔。而没有这种特性的IDE硬盘则不同了,在不停机的情况下,谁敢把IDE硬盘拔出来再插进去?

当然,SCSI硬盘的价格较贵,同样容量的SCSI硬盘价格会比IDE硬盘贵80%以上,所以SCSI硬盘主要应用于中、高端服务器和高档工作站。

引用自http://www.51cto.com/

posted @ 2006-07-08 09:32 sosopro 阅读(1534) | 评论 (9)编辑 收藏
register_globals = Off 这个是php.ini里的配置项目,自从4.0后就设置为off了把它改成on就可以了,
唉,好久没用php竟然落后到这个地步。都怪ms,搞个什么.net让我在里面耗了好多时间,最后发现跟以前一样,用起好多东西来居然还是那么模糊,反正能工作就行。不能开源吗?
posted @ 2006-06-28 16:17 sosopro 阅读(220) | 评论 (0)编辑 收藏
大家看下面简单的一个form提交
这里是html文件
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="post" action="a.php">
  <input name="namea" type="text">
  <input type="submit" name="Submit" value="提交">
</form>
</body>
</html>

a.php
<?php
echo $HTTP_POST_VARS[namea];
echo $namea;
?>
echo $namea不会输出任何东西
echo $HTTP_POST_VARS[namea]就会
哪里的问题呢?


posted @ 2006-06-27 13:23 sosopro 阅读(326) | 评论 (2)编辑 收藏
今天才发现,交待给各位的事都没办。。昏迷中。。。
他们都不熟悉网站的开始准备工作。唉。。。慢慢来。
我突然发现有个上海的网站做了和我设想的内容差不多的东西,我吓了一跳。他们的技术也不差,内容也不错,不过还好,与我的想法有点远。
还是要理一个项目规划,不然大家乱做一堆。
现在最大的问题就是构建网站的技术准备工作,一个人有点忙不过来。
ajax估计没多大意思,这只是一个过渡型的技术,soa倒是不能不仔细看看,看来得求组其他人了。
我老在想php,java,asp.net到底要什么好?.net已经发布3.0了,微软在搞什么呢?并非说他的产品不好但是跟着他就是累,我发现ms有点力不从心,一个新的框架没有社区大力的支持(象java一样)走不太远,我曾经希望.net能象java一样,现在看来还有很大距离。

网站到底要不要开始就做好更宽更深入的应用??技术估计没问题,但是人力。。。。。
posted @ 2006-06-26 14:19 sosopro 阅读(787) | 评论 (12)编辑 收藏
仅列出标题
共4页: 1 2 3 4