Yayi和大家一起学习Fedora系列教程–第七课

现在我们开始讲FTP服务了。

那么什么是FTP服务捏?

FTPFile Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

FTP的作用

正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。

FTP工作原理

拿下载文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用客户机/服务器方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。

简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议。(文件传输协议)

一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行DosWindowsPC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

FTP的使用当中,用户经常遇到两个概念:下载Download)和上载Upload)。下载文件就是从远程主机拷贝文件至自己的计算机上;上传文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID

通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。

值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。

当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。

作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。 Internet上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet上找到。这是Internet吸引我们的重要原因之一。

匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。

匿名FTPInternet网上发布软件的常用方法。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。

Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?这正是Archie服务器所要完成的工作。Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。

FTP的用户分类及权限归属

在考虑FTP服务器安全性工作的时候,第一步要考虑的就是谁可以访问FTP服务器。在Vsftpd服务器软件中,默认提供了三类用户。不同的用户对应着不同的权限与操作方式。

一类是Real帐户。这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

第二类帐户是Guest用户。在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

第三类帐户是Anonymous(匿名)用户,这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。

在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间 带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。

通过ftp传输文件的一般步骤

需要进行远程文件传输的计算机必须安装和运行ftp客户程序。在windows操作系统的安装过程中,通常都安装了tcp/ip协议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。

启动ftp客户程序工作的另一途径是使用ie浏览器,用户只需要在ie地址栏中输入如下格式的url地址:ftp//[用户名:口令@]ftp服务器域名[:端口号]

(CMD命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录,除了上述方法外还可以在cmd下输入ftp回车,然后输入open IP来建立一个连接,此方法还适用于linux下连接ftp服务器)

通过ie浏览器启动ftp的方法尽管可以使用,但是速度较慢,还会将密码暴露在ie浏览器中而不安全。因此一般都安装并运行专门的ftp客户程序。

1.在本地电脑上登陆到国际互联网.

2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径).

3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑.

4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的东东(这里的东东是指能放到电脑里去又能在显示屏上看到的东东).

5.完成工作后关闭FTP下载软件,切断连接.

为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,FlashFxp为其中的杰出软件。有兴趣的网友可以试试其他的软件,如LeapFTP总归各有各的特色.

FTP协议

TCP/IP协议中,FTP标准命令TCP端口号为21Port方式数据端口为20FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet 你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。

FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。

1ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。

但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。

2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。

如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

5. FTP的工作方式

FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式) Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到FTP Server

下面介绍一个这两种方式的工作原理:

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

FTP软件可以更好的帮助你管理FTP目录 提供更系统的工具

FTP工具推荐使用 cuteftp

http://www.onlinedown.net/soft/3065.htm

主动和被动模式FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。

一个主动模式的FTP连接建立要遵循以下步骤:

客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。

客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(x+1)。

客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。


FTP和网页浏览器大多数最新的网页浏览器和文件管理器都能和FTP服务器建立连接。这使得在FTP上通过一个接口就可以操控远程文件,如同操控本地文件一样。这个功能通过给定一个FTPURL实现,形如ftp://<服务器地址>(例如,ftp://ftp.gimp.org )。是否提供密码是可选择的,如果有密码,则形如:@ftp://<login>:<password>@<ftpserveraddress>。大部分网页浏览器要求使用被动FTP模式,然而并不是所有的FTP服务器都支持被动模式。(摘选自百度百科)


竟然我们都明白了FTP是什么,那么我们开始说下在Linux下如何架设FTP服务了

Linux下架设FTP的软件很多。我们这里选vsftpd来讲。

vsftp的官方网站是: http://vsftpd.beasts.org/

笔者使用的版本为2.1.2-1

那么我们开始安装吧。

跟着下图使用yum来安装:

安装好后我们看看配置文件:
/etc/logrotate.d/vsftpd.log

vsftpd日志文件
/etc/pam.d/vsftpd

vsftpd的认证模块文件

/etc/rc.d/init.d/vsftpd

vsftp的启动脚本
/etc/vsftpd/ftpusers

vsftpd的绝对黑名单
/etc/vsftpd/user_list

vsftpd的白/黑名单(视主配置文件的变量值而定)
/etc/vsftpd/vsftpd.conf

vsftpd的主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh

vsftpd操作的一些变量和设置脚本

/var/ftp

匿名用户主目录
/var/ftp/pub

匿名用户的下载目录

基本上我们只配置/etc/vsftpd面的文件就好.
我们查看一下vsftpd的核心配置文件
.
more /etc/vsftpd/vsftpd.conf
OH,MY GOD!
我们还是菜鸟
.
这也

不过我们可以试下用
:
grep -v ‘#’ /etc/vsftpd/vsftpd.conf
这个就是把注释去掉后显示的基本默认配置文件了

恍然大悟,原来grep也可以这样用
.
相信聪明的大家以后也会怎么样在查看文本时屏蔽自己不需要的内容了
.
当然如果看得懂E.这种做法是不对D.

千万不要心急马上vi.
我们还是一步一步来
.
继续

安装好后查询vsftpd服务.’chkconfig –list vsftpd

35模式启动.’chkconfig –level 35 vsftpd on

启动vsftpd服务,’service vsftpd start‘(关闭为‘service vsftpd stop’)

配置vsftp.conf文件
在配置之前,我们现把这个文件备份一下
.
然后
rm -/etc/vsftpd/vsftpd.conf
接着再创建一个vsftpd.conft文件,并设置权限(注意:一定要用ROOT用户来完成
)
touch /etc/vsftpd/vsftpd.conft
chmod 600 /etc/vsftpd/vsftpd.conf

这样就好了.
然后参照下表选择自己服务器需要的配置.VI编辑vsftpd.conf文件
.
例如我现在需要设置一个不需要输入帐号密码就能登录与下载和上传文件的FTP,还需要日志服务
.
那么好.我们就一步步来作
.
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_root=/var/ftp
anon_upload_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_std_format=YES
listen=YES
tcp_wrappers=YES

好了..就这么简单.然后保存退出vi
接着就service vsftpd restart重启服务一下

现在开始测试吧

测试的时候注意四点
.
第一,在架设服务器时一定要保证自己的IP是静态
.
第二,防火墙是否允许FTP,如果不会设置则关掉防火墙
.’srevice iptables stop
第三,如果发现无法上传请修改/var/ftp/pub这个文件夹的权限最好设置为777权限.(一般默认要求匿名用户上传到此
)
第四,每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误
:
500 OOPS: bad bool value in config file for: listen

关于下面这个表.
解说一下
.
一般“=”后面跟的不是YES就是NO“,yes代表启用,no代表不启用,如果有特殊的表里会说明.

./etc/vsftpd/vsftpd.conf配置文件注释:

View Code SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
anonymous_enable=YES                                #是否开启匿名用户
no_anon_password=YES                                #匿名用户login时不询问用户名和口 令
anon_umask=077                                      #匿名用户上传的文件权限是‘—-rw—-’
anon_upload_enable=YES                              #是否允许匿名用户上传文件
anon_mkdir_write_enable=YES                         #是否允许匿名用户建立目录
anon_other_write_enable=YES                         #是否允许匿名用户具有建立目录,上传之 外的权限,如重命名,删除
anon_world_readable_only=YES                        #匿名登入者是否能下载可阅读的档案
anon_max_rate=80000                                 #匿名用户的下载速度为 80KBytes/s
anon_root=(none)                                    #匿名用户的宿主目录
allow_anon_ssl=NO                                   #匿名用户是否允许使用安全的SSL连接 服务器
ftp_username=FTP                                    #定义匿名使用者登录的使用者名称(默认 为FTP)
banned_email_file=/etc/vsftpd.banned_emails         #禁止使用的匿名用户登陆时作为密码的电 子邮件地址使用表的位置
deny_email_enable=NO                                #禁止使用的匿名用户登陆时作为密码的电 子邮件地址
secure_email_list_enable                            #如果你想只接受以指定E-MAIL地址登录的匿名用户的话,启用它
local_enable=YES                                    #本地用户是否可以登录
local_umask=022                                     #设置本地用户的文件生成掩码
file_open_mode=0666                                 #上传文件的权限配合umask使用
local_root=(none)                                   #指定所有本地用户登陆后的目录,如果不设置此项,用户都会登陆于自己的主目录
local_max_rate=500000                               #本地用户的下载速度为500KBytes/s
chroot_local_user=YES                               #是否允许用户离开其宿主目录
chroot_list_enable=NO                               #登录用户名字若在/etc/vsftpd.chroot_list内,则会启用chroot机制,将这个用户限制在其home目录下.
guest_enable=YES                                    #是否开启虚拟用户(如果开启则匿名用户用使用guest_username值的用户)
guest_username=vsftpd                               #指定虚拟用户名
virtual_use_local_privs=YES                         #虚拟用户和本地用户权限是否相同
userlist_enable=YES                                 #是根据user_list实行访问控制(若启用此选项,userlist_deny选项才被启动)
userlist_deny=NO                                    #若为YES,则 userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
write_enable=YES                                    #用户是否具有写的权限(全局,若要对其中一种用户开放上传权限,此处必须YES)
download_enable=YES                                 #是否允许下载(全局模式)
chmod_enable=YES                                    #是否可以修改文件权限
nopriv_user= nobody                                 #设定服务执行者为nobody,vsftpd推荐使用一个权限很低的用户,最好是没有家目录(/dev/null),没有登陆shell(/sbin/nologin),系统会更安全
dirmessage_enable=YES                               #当切换到FTP服务器的某个目录这哦功时,是否显示该目录下的.message信息
dirlist_enable=YES                                  #是否启用通俗命令(如果设置为NO,那么只能使用unix/linux的命令)
xferlog_enable=YES                                  #是否启用上传和下载日志
xferlog_std_format=YES                              #是否使用标准的ftpdxferlog日志格式
xferlog_file=/var/log/vsftpd.log                    #将上传下载日志记录到/var/ log/vsftpd.log中
log_ftp_protocol=NO                                 #当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
dual_log_enable=NO                                  #如果启用,两个LOG文件会各自产生,默认的是/var/log/xferlog和/var/log/vsftpd.log
vsftpd_log_file=/var/log/vsftpd.log                 #这是被生成的vsftpd格式的log文件的名字(只有xferlog_enable被设置,而xferlog_std_format没有被设置时,此项才生效)
syslog_enable=NO                                    #如果启用,系统log将取代vsftpd的log输出到/var/log/vsftpd.log.FTPD的log工具将不工作
connect_from_port_20=YES                            #是否启用FTP数据端口的连接请求
listen=YES                                          #是否使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
listen_ipv6=NO                                      #与‘listen’功能嗯相同,但此项监听IPV6(两个只能设置一个)
pam_service_name=vsftpd                             #PAM认证服务配置文件名称,保存在“/etc/pam.d”目录下
userlist_enable=YES                                 #是否检查userlist_file设置文件
tcp_wrappers=YES                                    #是否使用tcp_wrappers作为主机访问控制方式(tcp_wrappers的两个配置文件“/etc/hosts.allow 允许访问的主机“,”/etc/hosts.deny拒绝访问的主机”
ftpd_banner=Welcome to yayi.biz FTP Service         #FTP欢迎信息(如果设置了banner_file则此设置无效)
banner_file=/etc/vsftpd/banner                      #定义登录信息文件的位置
check_shell=NO                                      #是否检测SHELL
chown_uploads=YES                                   #是否开启匿名上传用户切换(如果开启,上传用户则变为‘chown_username=daemon’指定的用户)
chown_username=daemon                               #匿名上传文件的属主
file_open_mode=0666                                 #对于上传的文件设定权限
idle_session_timeout=600                            #客户端超过600S没有动作则视为超时
data_connection_timeout=300                         #数据传输时超过120S没有动作则视为超时
connect_timeout=60                                  #连接超时时间
pasv_min_port=30000                                 #建立资料联机所可以使用port 范围的上界,0表示任意,默认值为0
pasv_max_port=30999                                 #建立资料联机所可以使用port 范围的下界,0表示任意,默认值为0
pasv_enable=YES                                     #是否允许使用PASV模式
pasv_promiscuous+NO                                 #是否关闭PASV安全检查.(删除‘+NO’则开启)
pasv_address=(none)                                 #使vsftpd在pasv命令回复时跳转到指定的IP地址.
port_enable=YES                                     #是否允许使用PORT模式
prot_promiscuous                                    #是否开启安全PORT检查(‘+NO’则不开启)
pasv_max_port=0                                     #指定为被动模式数据连接分配的最大端口(0为任何)
pasv_min_port=0                                     #指定为被动模式数据连接分配的最小端口(0为任何)
ACCEPT_TIMEOUT=60                                   #PAVS请求60s无响应则视为超时
ascii_upload_enable=YES                             #是否可用ASCII 模式上传(默认为NO)
ascii_download_enable=YES                           #是否可用ASCII 模式下载(默认为NO)
secure_chroot_dir=/usr/share/empty                  #这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中,默认值为/usr/share/empty
ls_recurse_enable=YES                               #是否能使用ls -R命令以(防止浪费大量的服务器资源)
one_process_model=YES                               #是否使用单进程模式
text_userdb_names=NO                                #是否可以查看文件拥有者的UID
use_localtime=NO                                    #显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
use_sendfile=YES                                    #是否测试平台优化
setproctitle_enable=YES                             #是否显示状态会话信息
user_config_dir=/etc/vsftpd/userconf                #定义用户配置文件的目录
local_root=xxx                                      #定义本地用户登陆的根目录,注意定义根 目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的
max_clients=0                                       #可接受的最大client数目(0为不限制)
max_per_ip=0                                        #每个ip的最大client数目(0为不限制)
connect_from_port_20=YES                            #是否启用FTP数据端口的数据连接
ftp_data_port=20                                    #设定PORT模式下的连接端口(只要被激活)
connect_from_port_20
listen_address=192.168.0.2                          #绑定FTP的IP地址(在多网卡或者多IP地址的机器上使用)
listen_port=2121                                    #绑定FTP使用使用端口
ftp_data_port=2020                                  #绑定FTP数据传输端口
background=NO                                       #起用时,VSFTPD将把监听进程置于后台,但访问VSFTPD时,控制台将立即被返回到SHELL
force_dot_files=NO                                  #如果激活, 以. 开始的文件和目录在目录列取的时候将会被显示, 即使客户端没有使用“a” 标识. 这不包括“.” 和“..” 目录
ssl_enable=NO                                       #是否启用SSL
force_local_data_ssl=YES                            #是否要求非匿名用户使用安全的SSL在 数据线路上收发数据
force_local_logins_ssl=YES                          #是否要求非匿名用户使用安全的SSL登录以发送密码
ssl_tlsv1=YES                                       #是否允许以TLS V1协议的连接,TLS V1连接将是首选
ssl_sslv2=NO                                        #是否允许以SSL V2协议的连接,TLS V1连接将是首选
ssl_sslv3=NO                                        #是否允许以SSL V3协议的连接,TLS V1连接将是首选
hide_ids=NO                                         #如果启用,目录资源列表里所有用户和组的信息将显示为\”ftp\”.
run_as_launching_user=NO                            #如果你使用非root用户启动vsftpd时使用.(不是Linux专业人士请不要使用,除非自己清楚自己在作什么.)
session_support=NO                                  #是否让VSFTPD去尝试管理登录会话
text_userdb_names                                   #默认情况下,在文件列表中,数字ID将被显示在用户和组的区域.你可以编辑这个参数以使其使用数字ID变成文字

注意:每行的值都不要有空格,否则启动时会出现错误,举个例子,假如我在listen=YES后多了个空格,那我启动时就出现如下错误:
500 OOPS: bad bool value in config file for: listen

最后介绍下如何配置FTP虚拟用户,过程不做详细介绍,自己理解。

1)、建立虚拟用户口令库文件
#touch logins.txt
#vi logins.txt

test
passwrod 123
chick
passwrod 123

2)
、生成vsftpd的认证文件

#db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
3)
、建立虚拟用户所需的PAM配置文件

#vi /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

4)
、建立虚拟用户及所要的访问的目录并设置相应权限

#useradd -d /home/ftpsite/ virtual
#chmod 700 /home/ftpsite/

5)
、设置vsftpd.conf配置文件

#cd /etc/vsftpd
#cp vsftpd.conf vsftpd.conf.bak
#vi vsftpd.conf

添加虚拟用户的配置项

guest_enable = YES
guest_username = virtual
pam_service_name = vsftpd

6)
、重新启动vsftpd服务程序

#service vsftpd restart
7)
、测试vsftpd中的虚拟用户账号

#touch /home/ftpsite/afile
#chown virtual.virtual /home/ftpsite/afile

使用ftp命令登陆vsftpd服务器,并使用已配置的虚拟用户账号进行登陆

8
)、对不同的虚拟用户设置不同的权限

1.
设置主配置文件

user_config_dir=/etc/vsftpd_user_conf
vsftpd.conf配置文件中添加user_config_dir配置项,并设置用户配置文件的保存目录

2.
建立用户配置文件目录

#mkdir /etc/vsftpd_user_conf
3.
为虚拟用户建立单独的配置文件

“/etc/vsftpd_user_conf/” 目录中可以为每个虚拟用户建立独立的配置文件,配置文件名称和用户名相同

在虚拟用户的独立配置文件中,配置项的含义如下:

anon_world_readable_only=NO 表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES
表示用户可以上传文件

anon_mkdir_write_enable=YES
表示用户具有建立和删除目录的权利

anon_other_write_enable=YES
表示用户具有文件改名和删除文件的权限

Yayi和大家一起学习Fedora系列教程–第六课

这次我们来讲DNS服务器的架设,在讲怎么架设之前我们有必要了解什么是DNS,及其的作用是什么?网域名称系统(Domain Name System缩写DNS,Domain Name被译为域名;另外域名服务器Domain Name Server也简称为DNS)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(摘选自维基百科)

这里重点提醒下大家一个尝试,DNS服务器的根服务器全世界只有13台。我们所做的DNS服务器永远无法成为根服务器,请大家记住。

竟然知道了什么是DNS和它的大概作用,现在我们现在来看看DNS的工作原理。

根据这幅图,我们来简单说下DNS是怎么来工作的。

1.DNS服务器C上具有很多很多的数据,至于是什么数据我们先不关心,等到我们自己动手做的时候就会明白的。

2.WEB服务器B的域名架设为yayi.biz,主机名为www.yayi.biz..

3.我们是客户机ADNS地址设置为:192.168.1.12,现在大家要来访问我的博客了,当我们在浏览器上敲上网址的时候,我们的电脑就会向主机B询问www.yayi.bizIP地址是什么?如图:

4.DNS服务器会找自己的数据,找到后会直接告诉主机Awww.yayi.bizIP地址是:192.168.1.3。如图:

5.主机A的我们知道www.yayi.bizIP地址是192.168.1.3时,就直接向WEB服务器B请求数据的发送了。如图:

6.收到请求的WEB服务器B,便向主机A发送数据,于是我们就可以浏览我的博客了。这样就完成了一次简单的网页浏览,这样我们也可以简单的理解到DNS的工作原理。

注意:这里已经忽略了各种复杂的网络,忽略了DNS服务器C不存在数据的问题,忽略了根DNS服务器的问题,最后也忽略了DNS转发服务器的问题,现实的情况下,这些问题都会是成为我们架设DNS服务器所遇到得一些小问题。只要注意一下便可以解决。值得一提的是DNS使用53端口,这个是一个很特殊的端口,说它特殊时因为它是TCP的同时又是UDP端口,更详细的大家去查阅下网络技术那一块。

竟然已经简单的理解了DNS是怎么工作的后,我们现在就来看看DNS服务器是怎么架设起来的。在Linux下,架设DNS服务器的软件很多很多,但是最为出名和实用的依然是bind,所以这里我们就讲讲怎么用bind来架设DNS服务器的。

首先我们先登录bind的官方网站把bind下载下来,笔者在这里使用的版本为 9.6.1

bind官方地址:https://www.isc.org/

1、安装篇:

然后解压:

tar zxf bind-XXXX.tar.gz

创建文件夹:

mkdir /usr/local/bind (要把bind安装在这里)

进入bind解压后的位置.进行编译安装

./configure –prefix=/usr/local/named –enable-threads

–enable-threads是为了开启多线程更多选项请参考configure –help)

make ;make install

安装完成!!

2、主配置文件配置篇:

进行bind目录:

cd /usr/local/named

生成密匙文件:

sbin/rndc-confgen > etc/rndc.conf

进入bindetc目录

cd etc

rndc.conf文件生成named.conf文件:

tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf

打开/usr/local/named/etc/named.conf文件
添加以下文件:

View Code SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
options
 {
directory “/var/named”; 					#域名文件存放的绝对路径
pid-file “named.pid”; 					#如果bind启动,自动会在/var/named目录生成一个 named.pid文件,打开文件就是named进程的ID
 
};
 
zone “.” IN {
type hint;							#根域名服务器
file “named.root”;						# 存放在/var/named目录,文件名为named.root
 
};
 
zone “localhost” IN {
type master;   						#类型为主域名服务器
file “localhost.zone”; 					#本地正向解析的文件
allow-update { none; };
 
};
 
zone “0.0.127.in-addr.arpa” IN {
type master; 							#类型为主域名服务器
file “named.local”;						#本地反向解析的文件
allow-update { none; };
 
};
 
zone “test.com” IN {						#建立test.com域
type master;							#类型为主域名服务器
file “test.zone”;						#test.com域映射IP地址可在此文件编写
allow-update { none; };
 
};
 
zone “1.168.192.in-addr.arpa” in {				#反向解析
type master; #类型为主域名服务器
file “test.local”;						#存放反向解析的文件
allow-update { none; };
 
};

3、区域配置文件配置篇:

打下依次建立这些区域文件

根区域文件的配置:

mkdir /var/named
cd /var/named
vi named.root
根域名服务器的存放位置,比喻hp.com域不在自己的解析范围,自动将解析交给根域名服务器,named.root内容是不定期更新的,最新的内容都是去ftp://rs.internic.net/domain/下载。

下面是Yayi给出的根区域配置文件的参考,建议去下载一个最新的,这里的内容不用背,理解下便可以,因为我可以通过网络得到最新的。

View Code SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the “cache  .  ”
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    Feb 04, 2008
;       related version of root zone:   2008020400
;
; formerly NS.INTERNIC.NET
;
.                                            3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:BA3E::2:30
;
; formerly NS1.ISI.EDU
;
.                                            3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
;
; formerly C.PSI.NET
;
.                                            3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                                            3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                                            3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                                            3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
F.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2f::f
;
; formerly NS.NIC.DDN.MIL
;
.                                            3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                                            3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
H.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:1::803f:235
;
; formerly NIC.NORDU.NET
;
.                                            3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.       3600000      A     192.36.148.17
;
; operated by VeriSign, Inc.
;
.                                           3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
J.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:C27::2:30
;
; operated by RIPE NCC
;
.                                            3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129
K.ROOT-SERVERS.NET.      3600000      AAAA  2001:7fd::1
;
; operated by ICANN
;
.                                            3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     199.7.83.42
;
; operated by WIDE
;
.                                             3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
M.ROOT-SERVERS.NET.      3600000      AAAA  2001:dc3::35
; End of File

②本地区域文件的配置:

依然是在/vat/named/目录中,创建一个本地区域文件:

vi test.zone

添加一下内容:

View Code SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$TTL      86400						#缓存时间.单位‘秒‘
 
@	IN SOA		dns.test.com. root@test.com (	#区域、SOA记录、主域名服务、联系人
 
42	; serial     (d. adams)				#序列号
 
3H	 ; refresh						#每3小时重试
 
15M	; retry						#隔15分钟重试
 
1W	; expiry						#过期时间1个星期
 
1D )	; minimum						#最小的TTL时间为1天
 
@	IN NS		dns.test.com.				#主DNS服务器名称
 
@	IN            dns1.test.com.			#辅助DNS服务器名称
 
dns	IN A          192.168.1.12				#主DNS服务器的IP
 
dns1   IN A          192.168.1.4				#辅助DNS服务器的IP
 
www    IN A          192.168.1.3				#主机www的IP地址
 
www	IN CNAME      host1.test.com.			#host1的别名记录
 
100	IN PTR	       host100.test.com.			#host100.test.com的ip是192.168.1.100(反向查询)
 
@	IN MX   5     mail.test.com.			#test.com使用mail.test.com作为邮件服务(MX记录)

注意:域名后面是需要加上“.”的,不要遗漏,否则出错。

这样,我们的本地区域文件就写好了,然后我们来看看这个区域需要理解的。

IN指的是intelnet类型,
SOA,NS,A,CNAME,MX,PTR是指记录的类型:
NS指的是DNS服务器
A指正向查询方式
CHAME指别名
MXMX记录
PTR指反向查询

好了,这样所有的都出来了.详细的配置看rpm安装配置,
是一模一样的.
启动则为/usr/local/name/sbin/named
/usr/local/name/sbin/named -g则是前台运行,适合第一次启动,或者说直到你看到running…
每次错误都有提示,认真看提示解决.
如果看懂那么就g.cn的在线翻译吧。

下图就是bind已经在运行了:

关于开机自动启动也很简单,
/etc/rc.local文件里加多一行,
“/usr/local/named/sbin/named”

然后我们用客户机测试下,看看是不是成功了,不过别忘记了,客户机的DNS应该设置为我们DNS主机的IP地址哦。

这样,我们这一课又结束了哦。想要了解DNS,不是这样就可以了,要自己再去多点实践与查阅资料。

Yayi和大家一起学习Fedora系列教程–第五课

接下来我们开始网络服务的配置。

网络服务的第一课,我们是讲DHCP服务的架设。在开始之前我们先讲下,关于安装网络服务器软件的过程,大多数我们会屏蔽、跳过。因为在fedora下,我们对于一个软件的安装并不是什么很困难的问题,只要在安装过程中按照提示的错误去解决,一般都不会遇到一些不可思议的事情。

实验环境的要求:2vmware虚拟机,安装fedora 11系统。系统模式init 3

DHCP的作用是什么捏?它能让客户机在不用设置静态IP的时候自动的获取到IP地址。看起来有点多此一举,但是如果你是一个网管,你面对几十台机子要设置IP地址的时候,或许它就不是多此一举了。更重要的是有些同事对电脑略懂一点,喜欢自己的数字号码,而恰好另一个同事的幸运号码也是这个,这时的IP地址冲突也是令人很烦恼的,然而DHCP也可以解决这个问题。同事的笔记本电脑在家里的网络情况和公司的网络情况有所不同,然而你可能会面对上班帮他设置一下,下班也需要帮他设置一下。这些等等的问题,DHCP都可以帮我们很好的解决,说真的,这是一个不错的解决方案,特别是IPv6的时代,我们将会更依赖他。

DHCP工作原理不是我们的重点,如果需要了解,建议找DHCP协议来看看。但是我们这里还是简单的说下,服务器A和客户机B怎么来协商IP地址的分配的。当客户机B开机后,启动到网络时,它首先需要一个IP地址,然而这时他会对全世界叫我要
nt face=”Times New Roman”>IP
地址,谁来给我。
也就是客户机B发送一个广播包,广播包的地址为255.255.255.255。这时候管理IP地址分配的DHCP服务器A接到客户机B的要求,然后分配一个IP地址给它。这时候客户机B就拥有了IP地址。这里只是简单的说下,没有涉及到DHCP工作原理。

DHCP服务:

服务端软件名称:dhcp

配置文件位置:/etc/dhcp/dhcpd.conf

服务名称:dhcpd

现在我们先安装dhcp服务先,怎么安装?通过yum来安装。如果不懂,请不要接下去看。

安装好后当然先查看一下配置文件。提示如下图:

看看画横线的两句话,这是在告诉我们配置文件参考帮助来写。不过Yayi是比较懒的人,所以Yayi,不是参考来写,而已参考来改。

cp /usr/share/doc/dhcp- 4.1.0/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

样后,我们再查看一下配置文件,已经写的很好的例子就在里面了。我们现在需要做的是理解常用配置项的作用,和参考列子来修改我们所需要的效果,把需要的用“#”来注视掉。

首先我们来理解下配置文件的配置项:

dhcpd.conf通常包括三部分:parametersdeclarations option。

1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。主要内容见表1:

参数 解释
ddns-update-style 配置DHCP-DNS 互动更新模式
default-lease-time 指定确省租赁时间的长度,单位是秒
max-lease-time 指定最大租赁时间长度,单位是秒
hardware 指定网卡接口类型和MAC地址
server-name 通知DHCP客户服务器名称
get-lease-hostnames flag 检查客户端使用的IP地址
fixed-address ip 分配给客户端一个固定的地址
authoritative 拒绝不正确的IP地址的要求

2. DHCP配置文件中的declarations (声明):用来描述网络布局、提供客户的IP地址等。主要内容见表2

解释
shared-network 用来告知是否一些子网络分享相同网络
subnet 描述一个IP地址是否属于该子网
range 起始IP 终止IP 提供动态分配IP 的范围
host 主机名称 参考特别的主机
group 为一组参数提供声明
allow unknown-clients;deny unknown-client 是否动态分配IP给未知的使用者
allow bootp;deny bootp 是否响应激活查询
allow booting;deny booting 是否响应使用者查询
filename 开始启动文件的名称,应用于无盘工作站
next-server 设置服务器从引导文件中装如主机名,应用于无盘工作站

3. DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容包括见表3:

解释
subnet-mask 为客户端设定子网掩码
domain-name 为客户端指明DNS名字
domain-name-servers 为客户端指明DNS服务器IP地址
host-name 为客户端指定主机名称
routers 为客户端设定默认网关
broadcast-address 为客户端设定广播地址
ntp-server 为客户端设定网络时间服务器IP地址
timeoffset 为客户端设定和格林威治时间的偏移时间,单位是秒

注意:如果客户端使用的是视窗操作系统,不要选择host-name选项,即不要为其指定主机名称。

(摘选www.chinalinuxpub.com

既然我们知道各个配置项的作用后,我们就来自己动手,写一个配置文件,首先我们把之前的配置文件删除。然后再建立一个全新的配置文件,接着把文件的权限改为644,然后再进行编辑。

#配置DHCP-DNS 互动更新模式
ddns-update-style interim;

#默认租约时间为8小时
default-lease-time 28800;

#最大租约时间为24小时
max-lease-time 86400;

#指定客户机域名,与客户机的机器名组成完整的主机名
option domain-name “yayi.biz”;

#指定DNS服务器的IP地址
option domain-name-servers 202.96.128.166;

#指定客户机的网段
subnet 192.168.1.0 netmask 255.255.255.0 {

#指定网关的IP地址
option routers          192.168.1.254;

#指定客户机的子网掩码
option subnet-mask      255.255.255.0;

#指定客户机的广播地址
option broadcast-address        192.168.1.255;

#指定DHCP分配的IP地址范围
range dynamic-bootp 192.168.1.100 192.168.1.200;

#指定主机名
host boss{

#指定的MAC地址主机,分配其IP地址为192.168.1.88
hardware ethernet aa:bb:cc:dd:ee:ff;
fixed-address 192.168.1.88;
}
}

注意每个配置项后面的“;”。


style=”font-size: smaller”>这样我们就配置完配置文件了,但是必须重启dhcpd服务才会生效,重启的命令为:

service dhcpd restart

重启后我们就测试一下成功没有。

现在开启客户机B,编辑一下网卡文件,其配置项如下:

为了不让实验机子以外的主机受到影响,我们把VMware的两台机子网卡改为VMnet2

现在我们来重启下网络服务。

这样我们就获取到了,现在来验证下:

到这里,也就是证明你已经成功了。

简单,但是却要自己不断的去尝试,直到熟手为止,学过而忘记了等于没学。死记硬背没有任何意义,更多是我们需要找到方法,这样我们才能记得更久。

这一课也到此为止了。

Yayi和大家一起学习Fedora系列教程–第四课

第三课我们讲到Linux文本模式下的软件使用,虽然并没有一个个详细的讲,但是依然教了大家怎么去应用他们,一个个的讲功能没有任何的意义,更多的应该是找到妙诀!然自己遇到从来没有应用过的软件时候,知道怎么去找到他的使用方法与帮助,所以这次的课我们依然采取这样的讲法。

这次课我们讲的是配置文件,那么什么是配置文件?

简单的说配置文件是配置一个软件,改变其属性、参数等的一个文本文件。举个例子,我们需要找到网卡接口的配置文件,然后修改里面的内容来达到我们需要的目的,例如修改IP地址、子网掩码、网关等。

学习配置文件的修改之前必须要知道并且一定要记住以下的几点:

1. 参数

2. 选项

3. 附加选项

那么他们是不是所有的格式都一样?

很明显,那是不可能的,每种软件的配置文件都是不一样,这样对于我们刚学习的同学来说是很困恼的,不过只要自己接触多了,慢慢会发现规则,规则是什么?我也解释不了,只能靠大家自己的经验了。

一般我们修改配置文件都会使用什么软件来修改呢?

其实全部归纳来说就是文本编辑器,当然文本编辑器很多,选择自己喜欢的一个就好。

不明白?没关系,我们实际的动手来理解,还记得我们上次课讲的,要查看网络接口属性的软件是哪个不?没错是ifconfig。现在我们用ifconfig先查看下我们主机网络接口的属性。

从图上我们可以看出,Yayi的主机又两个网络接口,一个eth0,另一个lolo是指主机的环回接口)。eth0IP地址为192.168.42.129、子网掩码为255.255.255.0、广播地址为192.168.42.255,现在我们就来通过修改其配置文件来更变IP、子网掩码和广播地址。

要修改其配置文件就必须知道他存放的位置,之前的几课中,我们讲过“/etc”是专门存放配置文件的地方,那么网络接口的配置文件是不是一定就在里面?肯定很肯定的告诉你,如果你那么想,肯定是错!一般的配置文件都放在这里,并不代表全部,Linux是自主的,只要你有能力可以修改他们的配置文件存放处,另外,在编译安装一些软件的时候,你可以自定义的知道配置文件存放的地方。不过为了规范和我们管理起来方便,建议大家都存放在“/etc”下。但是有些时候不规范要比规范好。

Fedora下,网卡接口的配置文件一般默认在:

/etc/sysconfig/network-scripts/

进入这个目录我们可以看到许多的配置文件,但是我们只需要找到一个,名为“ifcfg-eth0”,并不是每个人都一样,根据自己的实际情况来看。使用编辑器来对他进行编辑:

现在我们一起来看看,我是DHCP获取的IP,然而这个配置文件的规则是:

配置文件参数=配置文件选项(注意中间的“=”号)

每一行为一个配置项,每一个配置项修改其一样参数。大家可能会头疼,每一项的作用是什么?这个问题的确很难解释,不过聪明的同学已经发现了!根据选项后面的参数进行猜测,例如DNS1=202.96.128.166,这个配置项的作用肯定是修改第一个DNS地址。但是如果遇到自己不懂参数的内容捏?那就需要靠你自己的E文能力了,一般来说都是E文的缩写,懂E文就不能理解了。

下面我做个示范,发其IP地址改为静态:

这样,我就已经修改好了。然后是保存退出。修改是不是马上就能生效?许多朋友在操作Linux时就犯下这样的错误,修改完就以为马上生效了。其实不然,我们都知道,系统启动后,大部分运行中的软件都会装载到内存中。然后我们修改了配置文件,但是他并没有激活或者说更新到内存里。那么我们需要怎么做?重新启动系统吗?这是一个选择,但是这个是最坏的打算,特别是我们的主机不在身边的时候。那么我们应该怎么在不重新启动系统的情况下来更新内存里的信息呢?Linux在这里为我们提供了很不错的解决方案,服务个体单独重新启动,这样一来我们就可以不重启其他服务的情况下,单更新一个服务的资料了。这个事怎么一回事?或许这么说大家会明白点,当我们重启服务个体时,首先是把一个服务个体给停止了,服务停止了,那么他自然也会从内存里释放掉,释放掉后,服务将再次启动,把新的配置文件内容激活到内存里。值得一提的是,我们千万不要忘记了服务的依赖性质,如果服务1依赖服务2,那么服务2要重启,服务1必须也要重启。

下面我们来看看服务是怎么重启的!

服务重启的方法很多,我们这里教给大家一个最常用的,个别特殊的在以后会慢慢讲到。service这个软件。其用法:

service 服务名称 restart(重启)/start(启动)/stop(停止)/status(运行状态)

此软件需要root用户来完成。下面我就重启网络服务给大家看看:

这样我们就已经在不重启系统的情况下,把一个服务内容在内存里更新了,然后我们再用ifconfig来查看下我们修改后的效果。

这时我们的网络接口信息已经变动了,说明了我们已经成功修改了。

方法已经交给大家了,我不会一个个配置文件的讲,下面就列出一些重用的配置文件作用与其位置。

访问文件

/etc/host.conf 告诉网络域名服务器如何查找主机名。(通常是 /etc/hosts,然后就是名称服务器;)
/etc/hosts 包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS NIS 网络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看这里。
/etc/hosts.allow 允许访问主机的名单,可以使主机名、IP地址、网络号和域名。
/etc/hosts.deny 拒绝访问主机的名单,可以使主机名、IP地址、网络号和域名。

引导和登录/注销

/etc/issue & /etc/issue.net 这些文件由 mingetty(和类似的程序)读取,用来向从终端(issue)或通过 telnet 会话(issue.net)连接的用户显示一个“welcome”字符串。它们包括几行声明 fedora 版本号、名称和内核 ID 的信息。它们由 rc.local 使用。
/etc/fedora-release 包括一行声明 fedora版本号和名称的信息。由 rc.local 使用。
/etc/rc.d/rc 通常在所有运行级别运行,级别作为参数传送。例如,要以图形(Graphics)模式(X-Server)引导机器,请在命令行运行下面的命令: init 5 。运行级别 5 表示以图形模式引导系统。
/etc/rc.d/rc.local 非正式的。可以从 rcrc.sysinit /etc/inittab 调用。
/etc/rc.d/rc.sysinit 通常是所有运行级别的第一个脚本。
/etc/rc.d/rc/rcX.d rc 运行的脚本( X 表示 1 5 之间的任意数字)。这些目录是特定运行级别的目录。当系统启动时,它会识别要启动的运行级别,然后调用该运行级别的特定目录中存在的所有启动脚本。例如,系统启动时通常会在引导消息之后显示“entering run-level 3”的消息;这意味着 /etc/rc.d/rc3.d/ 目录中的所有初始化脚本都将被调用。

文件系统

/etc/mtab 这将随着 /proc/mount 文件的改变而不断改变。换句话说,文件系统被安装和卸载时,改变会立即反映到此文件中。
/etc/fstab 列举计算机当前可以安装的文件系统。这非常重要,因为计算机引导时将运行 mount -a 命令,该命令负责安装 fstab 的倒数第二列中带有“1”标记的每一个文件系统。
/etc/mtools.conf DOS 类型的文件系统上所有操作(创建目录、复制、格式化等等)的配置。

系统管理

/etc/group 包含有效的组名称和指定组中包括的用户。单一用户如果执行多个任务,可以存在于多个组中。例如,如果一个用户“project 1”工程组的成员,同时也是管理员,那么在 group 文件中他的条目看起来就会是这样的: user: * : group-id : project1
/etc/nologin 如果有 /etc/nologin 文件存在,login(1) 将只允许 root 用户进行访问。它将对其它用户显示此文件的内容并拒绝其登录。
/etc/passwd 请参阅“man passwd”。它包含一些用户帐号信息,包括密码(如果未被 shadow 程序加密过)。
/etc/rpmrc rpm 命令配置。所有的 rpm 命令行选项都可以在这个文件中一起设置,这样,当任何 rpm 命令在该系统中运行时,所有的选项都会全局适用。
/etc/securetty 包含设备名称,由 tty 行组成(每行一个名称,不包括前面的 /dev/),root 用户在这里被允许登录。
/etc/usertty
/etc/shadow
包含加密后的用户帐号密码信息,还可以包括密码时效信息。包括的字段有:

登录名

加密后的密码

1970 1 1 日到密码最后一次被更改的天数

距密码可以更改之前的天数

距密码必须更改之前的天数

密码到期前用户被警告的天数

密码到期后帐户被禁用的天数

1970 1 1 日到帐号被禁用的天数

/etc/shells 包含系统可用的可能的“shell”的列表。
/etc/motd 每日消息;在管理员希望向 Linux 服务器的所有用户传达某个消息时使用。

联网

/etc/networks 列举从机器所连接的网络可以访问的网络名和网络地址。通过路由命令使用。允许使用网络名称。
/etc/protocols 列举当前可用的协议。请参阅 NAG(网络管理员指南,Network Administrators Guide)和联机帮助页。 C 接口是 getprotoent。绝不能更改
/etc/resolv.conf 在程序请求解析一个 IP 地址时告诉内核应该查询哪个名称服务器。或者说是DNS设置。
/etc/rpc 包含 RPC 指令/规则,这些指令/规则可以在 NFS 调用、远程文件系统安装等中使用。
/etc/exports 要导出的文件系统(NFS)和对它的权限。
/etc/services 将网络服务名转换为端口号/协议。由 inetdtelnettcpdump 和一些其它程序读取。有一些 C 访问例程。
/etc/inetd.conf inetd 的配置文件。请参阅 inetd 联机帮助页。包含每个网络服务的条目,inetd 必须为这些网络服务控制守护进程或其它服务。注意,服务将会运行,但在 /etc/services 中将它们注释掉了,这样即使这些服务在运行也将不可用。格式为:<service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
/etc/sysconfig/network 指出 NETWORKING=yes no。至少由 rc.sysinit 读取。
/etc/sysconfig/network-scripts/if* fedora 网络配置脚本。

系统命令

/etc/grub.conf grub配置文件,包含系统的缺省引导命令行参数,还有启动时使用的不同映象。
/etc/logrotate.conf 维护 /var/log 目录中的日志文件。
/etc/identd.conf identd 是一个服务器,它按照 RFC 1413 文档中指定的方式实现 TCP/IP 提议的标准 IDENT 用户身份识别协议。identd 的操作原理是查找特定 TCP/IP 连接并返回拥有此连接的进程的用户名。作为选择,它也可以返回其它信息,而不是用户名。请参阅 identd 联机帮助页。
/etc/ld.so.conf 动态链接程序Dynamic Linker)的配置。
/etc/inittab 按年代来讲,这是 UNIX 中第一个配置文件。在一台 UNIX 机器打开之后启动的第一个程序是 init,它知道该启动什么,这是由于 inittab 的存在。在运行级别改变时,init 读取 inittab,然后控制主进程的启动。
/etc/termcap 一个数据库,包含所有可能的终端类型以及这些终端的性能。

内核

更改内核中的配置文件会立即影响到系统。例如,更改 passwd 文件以增加用户将立即使该用户变为可用。而且任何 Linux 系统的 /proc/sys 目录中都有一些内核可调参数。只有超级用户可以得到对所有这些文件的写访问权力;其它用户只有只读访问权力。此目录中文件的分类的方式和 Linux 内核源代码的分类方式一样。此目录中的每个文件都代表一个内核数据结构,这些数据结构可以被动态地修改,从而改变系统性能。

注意:在更改其中任何文件的任何值之前,您应该确保自己全面了解该文件,以避免对系统造成不可修复的损害。
/proc/sys/kernel/ 目录中的文件

文件名 描述
threads-max 内核可运行的最大任务数。
ctrl-alt-del 如果值为 1,那么顺序按下这几个键将彻底地重新引导系统。
sysrq 如果值为 1Alt-SysRq 则为激活状态。
osrelease 显示操作系统的发行版版本号
ostype 显示操作系统的类型。
hostname 系统的主机名。
domainname 网络域,系统是该网络域的一部分。
modprobe 指定 modprobe 是否应该在启动时自动运行并加载必需的模块。

用户配置文件:.(点)文件和 rc 文件

我们已经看到怎样容易地配置程序。但是如果有的人不喜欢在 /etc/ 中配置程序的方式该怎么办呢?普通用户不能简单地进入 /etc 然后更改配置文件;从文件系统的角度来看,配置文件的所有者是 root 用户!这就是大多数用户程序都定义两个配置文件的原因:第一个是系统级别的,位于 /etc/;另一个属于用户专用,可以在他或她的主目录中找到。

例如,我在我的系统中安装了非常有用的 wget 实用程序。/etc/ 中有一个 /etc/wgetrc 文件。在我的主目录中,有一个名为 .wgetrc 的文件,它描述了我定制的配置(只有在我,也就是用户运行 wget 命令时,才会加载这个配置文件)。其它用户在他们自己的主目录(/home/other)中也可以有 .wgetrc 文件;当然,只有这些用户运行 wget 命令时,才会读取这个文件。换句话说,/etc/wgetrc 文件为 wget 提供了缺省值,而 /home/xxx/.wgetrc 文件列举了某个用户的定制项。重要的是这只是一般规则,并非所有情况都如此。例如,一个象 pine 一样的程序,在 /etc/ 中并没有任何文件,它只在用户主目录中有一个定制配置文件,名为 .pinerc。其它程序可能只有 /etc/ 中的缺省配置文件,而且可能不允许用户定制这些配置文件(/etc 目录中只有少数 config. 文件是这种情况)。

通常使用的 rc 和 .(点)文件

文件名 描述
~/.bash_login 请参考“man bash”。如果 ~/.bash_profile 不存在,bash 则将 ~/.bash_login 作为 ~/.bash_profile 处理。
~/.bash_logout 请参考“man bash”。在退出时由 bash 登录 shell 引用。
~/.bash_profile bash 登录 shell 引用 /etc/profile 之后引用。
~/.bash_history 先前执行的命令的列表。
~/.bashrc 请参考“man bash”。由 bash 非登录交互式 shell 引用(没有其它文件)。除非设置了 BASH_ENV ENV,非交互式 shell 不引用任何文件。
~/.emacs 启动时由 emac 读取。
~/.forward 如果这里包含一个电子邮件地址,那么所有发往 ~ 的所有者的邮件都会被转发到这个电子邮件地址。
~/.fvwmrc ~/.fvwm2rc fvwm fvwm2(基本的 X Window 管理器)的配置文件。
~/.hushlogin 请参考“man login”。引起无提示登录(没有邮件通知、上次登录信息或者 MOD 信息)。
~/.mail.rc 邮件程序的用户初始化文件。
~/.ncftp/ ncftp 程序的目录;包含书签、日志、宏、首选项和跟踪信息。请参阅 man ncftpncftp 的目的是为因特网标准文件传输协议(Internet standard File Transfer Protocol)提供一个强大而灵活的接口。它旨在替换系统所使用的标准的 ftp 程序。
~/.profile 请参考“man bash”。如果 ~/.bash_profile ~/.bash_login 文件不存在,bash 则将 ~/.profile 作为 ~/.bash_profile 处理,并被其它继承 Bourn shell 使用。
~/.pinerc Pine 配置
~/.muttrc Mutt 配置
~/.exrc 这个文件可以控制 vi 的配置。
示例:set ai sm ruler
在此文件中写入上面一行会让 vi 设置自动缩进、匹配括号、显示行号和行列这几个选项。
~/.vimrc 缺省的“Vim”配置文件。和 .exrc 一样。
~/.gtkrc GNOME 工具包(GNOME Toolkit)。
~/.kderc KDE 配置。
~/.netrc ftp 缺省登录名和密码。
~/.rhosts r- 工具(如 rshrlogin 等等)使用。因为冒充主机很容易,所以安全性非常低。

1. 必须由用户(~/ 的所有者)或超级用户拥有。

2. 列出一些主机,用户可以从这些主机访问该帐号。

如果是符号链接则被忽略。

~/.rpmrc 请参阅“man rpm”。如果 /etc/rpmrc 不存在则由 rpm 读取。
~/.signature 消息文本,将自动附加在从此帐号发出的邮件末尾。
~/.twmrc twm The Window Manager)的配置文件。
~/.xinitrc 启动时由 X 读取(而不是由 xinit 脚本读取)。通常会启动一些程序。
示例:exec /usr/sbin/startkde
如果该文件中存在上面这行内容,那么在从这个帐号发出 startx 命令时,这一行就会启动“KDE 视窗管理器KDE Window Manager)。
~/.xmodmaprc 此文件被传送到 xmodmap 程序,而且可以被命名为任何文件(例如 ~/.Xmodmap ~/.keymap.km)。
~/.xserverrc 如果 xinit 可以找到要执行的 Xxinit 就会将该文件作为 X 服务器运行。
~/News/Sent-Message-IDs gnus 的缺省邮件历史文件。
~/.Xauthority xdm 程序读和写,以处理权限。请参阅 Xxdm xauth 联机帮助页。
~/.Xdefaults, ~/.Xdefaults-hostname 在主机 hostname 的启动过程中由 X 应用程序读取。如果找不到 -hostname 文件,则查找 .Xdefaults 文件。
~/.Xmodmap 指向 .xmodmaprcRed Hat 有使用这个名称的 .xinitrc 文件。
~/.Xresources 通常是传送到 xrdb 以加载 X 资源数据库的文件的名称,旨在避免应用程序需要读取一个很长的 .Xdefaults 文件这样的情况。(有些情况曾经使用了 ~/.Xres。)
~/mbox 用户的旧邮件。

(部分选自IBM)

这样一来,我们这节课就结束了。难?不算,只要多练。简单?那你肯定是天才。配置文件这个东西需要自己多点去应用,如果不能好好的找到窍门与经验、方法,那么你还不能说你会用Linux,接下来的课就更让你头疼的了。这样我们就讲完了。下一次课开始我们将会开始讲一些服务器的架设。


Yayi和大家一起学习Fedora系列教程–第三课

就是Shell了。Shell可以帮助我们去驱使内核来完成我们所需要的工作。Shell一般分为两大主流:

sh
burne shell (sh)
burne again shell (bash)

csh
c shell (csh)
tc shell (tcsh)
korn shell (ksh)

然后在Linux下大多数的发行版都是默认选择bash的,我们也称之为bash shell

知道Shell是什么后,我们来看看Shell的基础使用。首先我们要知道哪里可以使用ShellShell是可以在虚拟终端中使用和在终端中使用的。终端的打开方式是“ctrl+atl+F*”按键,这个自己去试试,无论终端还是虚拟终端,使用效果是一样的,登录了就可以了。那么虚拟终端在哪里捏?按照下面的图片去把虚拟终端打开来吧。

打开后的这个将是我们的实验环境哦。

现在我们来说说Shell的格式,Shell格式正规应该是:

Shell软件 选项 参数

记住格式后,我们简单的看看一些软件的作用,注意区分大小写

cd 切换目录
pwd 查看当前的位置
ls 查看当前目录下的文件与文件夹
cp 复制文件/文件夹
mv 移动文件/重命名文件
touch 创建文件与修改文件属性
rm 删除文件
mkdir 创建文件夹
rmdir 删除文件夹
vi 编辑文件
less 以阅读器方式查看文件
cat 查看文件并输出
head 指定文件头的行数并输出(默认10行)
tail 指定文件尾的行数并输出(默认10行)
more 分页输出显示文件
file 查看文件类型
find 查看文件
mount 挂载文件系统(包括网络)
umount 卸载文件系统(包括网络)
fdisk 查看磁盘情况与创建分区
uesradd 创建用户
uesrdel 删除用户
groupadd 创建组
groupdel 删除组
chmod 更改文件/文件夹权限
chown 更改文件/文件夹属主与属组
history 查看终端输入历史
配合history查看的历史编号使用历史输入
chkconfig 查看与设定服务状态
service 对指定服务进行任务
jobs 查看后台进程号
fg 将后台进程恢复到前台
ps 查看全部进程并输出
top 实时方式查看进程
pstree 以树形方式查看进程并输出
tar 释放/创建归档
ifconfig 查看网络接口信息与配置网络接口
route 查看路由信息与配置路由
ping 测试网络
hostname 查看当前主机的主机名
nslookup 以交互方式进行域名查询
free 查看内存使用情况
df 查看磁盘使用情况
du 查看目录占用空间情况
cal 查看日历
date 查看与设置系统时间
time 设置程序时间(例如程序生存时间)
last 主机最近的登录情况
ln 创建链接文件
init 切换系统模式
reboot 重启
grep 查看文件里符合条件的字符串
help 查看软件的帮助文档
man 查看软件的手册页信息

知道了这些软件的功能后我们就开始讲讲如何去使用这些软件。

在这之前我先告诉介绍给大家认识下最好的老师给大家认识。

他们就是“helpman”这两个软件。他们可以帮助我们解决很多的问题。

我们先看看我们需要怎么找help老师帮忙,现在我不知道cd这个软件怎么样用,或者说是他的功能,我们需要help老师的帮忙。那么我们应该:

cd –help

是的,就是这么简单。不过大家要注意中间的空格键。

现在我们看看另一个老师的用法。man老师要比help老师懂更多的东西哦,用法有一点不一样。是反过来哦。同样是cd的帮助:

man cd

这样就明白了吧。简单吧,不过同样注意中间的空格,按“q”退出帮助。

接下来先看看cd这个的用法,大家都知道Linux是以树形结构来构建文件系统的。所有都在“/”之下。在配合前面给大家的公式。现在我们的位置是哪里?使用“pwd”查看下。现在明白后我们就看看如果进入到“/”位置,软件名称+参数:

cd /

是的就是这么的简单。

好了我不会跟大家讲每个“命令”的用法,为什么?很简单,因为他们是软件,我们不可能学习到所有的软件的选项与参数的用法,我们需要抓住技巧,抓住方法,更多的时候是需要我们的经验。要想学好基础的shell使用,不能懒,不能说为了方便复制直接就右键复制,试下用shell来帮你完成任务。因为这课很少,我在这个建议大家每个命令都要去用。不懂?我不是介绍了两个老师给你们么,再不懂?

Google也是你的老师,还不行?那么就mail跟Yayi一起讨论吧。

下面我也给大家一些练习,一定要做!

1. 创建一个文件test并删除。

2. 创建一个文件夹并删除。

3. 创建一个文件test并用mv修改文件名为check

4. vi编辑文件check,随便写20行。

5. 分别用catlessmoreheadtail查看文件。

6. 使用chmod修改文件check权限,权限为所有人均可读写执行。

7. 创建一个用户为test,删除用户。

8. 创建一个组为check并删除。

9. 创建一个用户test并指定加入到root组。

10. 使用chown切换文件check的属主为“test:root”。

11. 使用pspstreetop查看系统进程。

12. 使用ln为文件check创建一个硬链接并删除,使用ls查看删除后的情况。

13. 使用ln –s一个文件夹创建软链接,删除并使用ls查看删除后的情况。

14. 创建两个归档压缩包,一个为bz的包,一个为gz的包。并解压缩。

15. 尝试删除一个带文件的文件夹。

16. 尝试用时kill停止一个进程。

17. 尝试使用init切换每个参数,并把每个参数的功能记录在脑子里,参数分别为“012345、”。

作业就这么多。不难,但是要配合“helpmanGoogle”使用。

最后为大家推荐一个不错的中文翻译注释网站:

http://linux.chinaitlab.com/Special/linuxcom/Index.html

Yayi和大家一起学习Fedora系列教程–第二课

大家好,现在接着上次,开始我们的第二课,上次讲到Fedora 10的安装,那么我们现在接着上次讲讲怎么样才能把Linux在图形下应用起来。
首先我们先讲讲yum,Fedora应用到了yum来在线安装,升级,卸载自己的软件,那么yum是什么东西捏?
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora中的字符前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
可供Yum下载的软件包包括Fedora本身的软件包以及源自rpm.livna.org的Fedora Extras,全部是由Linux社区维护的,并且基本是自由软件。所有的包都有一个独立的GPG签名,主要是为了您的系统安全。而对于Fedora core 4.0 以上的用户,rpm.livna.org 的签名是自动导入并安装的。(摘自中国维基百科)
在一般Fedora4以上都会默认安装,如果之前你在安装系统的时候把它精简了,那么就把自己的安装光盘挂载上,现在一般都已经会自己挂载,所以挂载方法不在这里做详细讲解。
进到光盘的Packages文件夹里,里面有M多的软件,我们只要找到“yum”、“yum-metadata-parser”、“yum-utils”然后双击安装即可以,如果提示需要其他软件包,必须安装。
使用yum有什么好处?
解决新手对软件包依赖关系的烦恼,可以得到最新fedora测试过的软件。缺点则是你需要拥有一个稳定的网络。
下面我们来说说终端及虚拟终端如何使用yum。
Yum需要root官员里权限,所以必须先登陆到root,在Fedora 10里,图形界面已经不允许root登陆了,那么怎么在虚拟终端中登陆?答案是使用“su”。
在终端里,我们使用“su root”,就可以得到root的权限了然后我们就可以进行需要管理员权限的操作了。
注意:这里并不代表你已经切换登陆到root用户了,如果你需要切换到root用户,而不是得到权限的话,你应该是输入“su – root”。之间是有空格的。如果想切换到其他用户而不是得到权限,一样是“su – 用户名”。

如果你一定要使用root用户进行日常操作,用vi编辑下“/etc/pam.d/gdm”文件,把“auth [success=done ignore=ignore default=bad] pam_selinux_permit.so”这一行前面加个“#”号屏蔽掉。不过笔者并不建议大家这么做,如果这么做了,就算是用root用户登陆,但是依然有许多东西无法执行,这些都是SElinux惹的祸,但是把SElinux关掉后会大大降低系统的安全性,还是创建普通用户使用吧。

那么现在我们得到root权限后就看看yum使用方法。

安装一个软件 yum install 软件名称(不带版本号)
删除一个软件 yum erase 软件名称(不带版本号)
升级你系统里的软件 yum update
删除缓存数据 yum clean
查询YUM是否有此软件包 yum search 软件名称(不带版本号)
Yum帮助 yum –help

下面我们开始实际安装一个软件,许多朋友寻找教程都会看到chm结尾的文件,在fedora下默认是不对此文件支 持的,需要安装一个软件,软件的名字为“chmsee”,那么我们来示范一下。当我们在虚拟终端输入“yum install chmsee”,就会出现下面的提示:

让我们一起来分析下这个提示,看到chmsee设置为升级,需要依赖“libchm.so.0。然后在下面就会显示包的大小,版本,构架,源4个信息。然后我们按照提示按下“y”(如果不安装则按“N”),
安装就会自己完成。
现在有朋友感觉这样很麻烦自己又不知道自己需要什么软件,更不知道软件的名称了。不用怕,不过你至少要记住这个软件包的名称。
yumex是一个图形界面的yum,安装,删除,升级,设置yum的源都是图形下进行,最重要的是它带有每个软件的说明。不过需要你对E文有一定的理解,不行就g.cn吧。至于安装方法这里就不说了,当做作业。如果实在不会的就进群问吧。安装完成后按照下图找到“yumex Extender”:

点击它,输入root密码。就可以使用了。选择左侧的第二个就可以安装删除软件了。(别忘了点击“处理软件包队列”)。

最后说说升级,看到前面两张图上面都有个红色齿轮的图标,这个代表你有软件可以升级了,直接点击安装就好,这里不做详细讲解。

当然也可以在虚拟终端里输入“yum update”升级了。如果在使用yum的过程中,图形界面遇到锁定,或者终端里遇到正在使用,那么我们需要切换到root,然后“rm /var/run/yum.pid”,这样就好了。

附:因为Fedora不提供带有版权麻烦或者是封源的软件,这个给我们找软件带来了不少的麻烦,所以在这里提供fusion的源,来扩大我们的“软件库”。

直接复制到虚拟终端里就好了,必须需要root的权限哦。

rpm –ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

如果安装这个源后无法正常使用yum,那很可能是key引起的问题,解决方法就是在虚拟终端里输入下面的命令就好:

su -c “sed -i ‘s|^#baseurl|baseurl| ; s|^mirrorlist|#mirrorlist|’ /etc/yum.repos.d/rpmfusion*free*repo”

建议用来复制,不要自己打上去,以免出错。

说完yum后,我们再来看看rpm包是如何进行安装的。大家都知道rpm包是红帽特有的软件包,是一种已经编译好,我们只需要安装的就可以了。 rpm包唯一有一点要注意的是包依赖的问题,不过这个也不是什么难点,只要学会看懂提示,那么包依赖也很简单解决了。先看看下面的表,有关rpm的使用方法。

安装软件并显示过程

rpm –ivh 软件包

卸载软件

rpm –e 软件包

升级软件

rpm –Uvh 软件包

查询软件包是否安装

rpm –q 软件包名称

查询系统已经安装的软件包

rpm –qa

强行安装/卸载一个软件包

rpm –ivh/e –force 软件包名

不查询依赖关系安装/卸载

rpm –ivh/e –nodep软件包名

rpm帮助

rpm –help

大家一定要把表里的这几个参数记住了,内容不是很多。如果需要卸载一个软件,只需要打上软件名字就好,不需要带版本号,例如下载的QQ名字为“linuxqq-v1.0-preview3.i386.rpm”,那么我们卸载的时候只需要输入“rpm –e linuxqq”就可以了。现在我们开始实际安装一个软件,可能大家最关心的就是QQ怎么安装。那么我们首先上腾讯的官方网站下载qq for linuxrpm包。下载好后我们打开虚拟终端,进入到我们QQ存放的位置,开始安装。

如果有朋友和我一样遇到这个提示,那么请你用su得到root的权限再次安装。

看,只要拥有root的权限就可以安装了。这里要求大家把图片里的错误提示记住,如果以后遇到这样的提示,很可能就是没有权限造成的原因。下面登陆看看是否成功吧,笔者已经成功了。

rpm包的安装也就到此为止了,剩下的参数自己去尝试下,建议把qq安装,卸载,再安装,重复做多几次,熟能生巧。

接下来我们简单的讲讲编译安装,大家都知道,要想把Linux学好,编译安装不能不会,但是编译安装不是简单的几页纸能说的清楚的。所以笔者在这里只能简单的讲解下,更多的应该是自己去实际中体验,寻找技巧,把提示的错误尝试在google.com里找找,(不是谷歌,但是要大家E文比较好),在做编译安装前我们必须把gcc等软件安装上去,这样才可以正常的编译,废话不多说了,开始吧。

在编译安装中,其实简单来说只有3步(不包括一些庸师所说解压缩过程):

1. 编译前工作,大多数软件都带有一个“configure”文件,这个文件的作用也就是做编译前工作。编译前工作就是程序路径,不需要那些功能,需要哪些功能等的设定,一般我们在安装一个软件前都会“./config –help”来看看具体的参数。

2. 编译,直接点说就是make这个命令,但并不是所有的都是如此,只是大部分。

3. 最后就是执行编译后的工作了,也就是俗话说的安装。

通常需要输入的命令是“make install”。

接下来我们开始动手安装一个软件,不过在此之前我们必须把gcc给安装上去。为了简单方便,我们使用yum来安装gcc

打开yumexyum的图形界面工具),勾选开放工具,应用就好了,过程是漫长的,网速好的朋友列外。

把编译所需要的工具安装完整后,现在就上网下载一个rar for linux,安装这个后就可以在linux下解rar的包了。下面是下载地址:

http://www.rarlab.com/download.htm

编译安装也就到此为止了,后面讲到一些软件也会需要编译安装。大家就体验多几次吧,提一下的是,编译安装没有什么很好的卸载方法,也就是说,没有多少个人可以完全卸载一个大型编译安装软件,卸载方法就直接删除那个文件,你必须完全清楚文件在安装的时候都把文件发去哪了。

选择适合自己的软件包,然后下载就好了。下载好后我们就开始安装吧,对于如何解压缩,这里不详细讲解,请按照图片里的一起操作吧。依然记住需要root的权限。

现在我们就已经安装好了,大家可以对着一些文件右键创建压缩包的时候,看看是不是多了rar。不过这里值得一说的是,这个软件不需要gcc的支持,但是大部分还是需要的。在安装过程中,大家可能会看到笔者少了一步,是的,这个软件比较简单,所以就不需要那一步了,不过我们现在来打开Makefile这个文件看看,再回头看看编译和安装过程中的提示,大家应该基本可以猜出编译安装是怎么个回事了吧,实际就是用一个文件告诉电脑你要做什么,这个文件大部分都是“configure”,然后执行。现在对编译安装应该不感觉到陌生了吧,但是看完这个不代表自己已经会了,应该自己去尝试下更多的软件。

虽然在安装过程中没有提到“configure”的用法,不过有个参数我感觉是一定要提出来的,那就是对软件安装路径的设置,参数为“—prefix”。下面给出一些简单而又经典的演示,不过这个3个命令多数软件就可以安装完成了,不信的自己去试试。

1.“./configure –prefix=/usr/share/XXX

注意:一定要是软件的当前目录,并确保configure有执行权限。关于权限的设置会在第三课详细讲到。

2.make

3.make install

Fedora基本的安装也就到此结束了。下面我们来看看如何把Fedora应用起来。先看看网络设置。我们先说说共享上网的,设置IP相信许多人都没有问题,只是每次开机都不激活网卡或者是明明在线却说无连接,使火狐等软件默认脱机运行。解决这个问题有两种方法,

先看看第一种,也是笔者推荐的一种,安装图片操作即可:

下面看看第二种解决方法,实际是一种无奈的解决办法,还是跟图片一起操作:

不过记住要把network服务启用,这里就不示范了,大家学习下开关服务。

接下来就看看ADSL的拨号情况,同样跟着图片做即可

基本上是这样就可以了,然后激活一下就是拨号了哦。自己去试下吧,因为Yayi一直和别人共享上网,没有这个实际试验的机会。如果不成功请大家告诉我。

如果有朋友是共享上网的,想必也会有人遭遇到arp攻击,解决arp攻击最简单直接的方法就是把IP地址和MAC地址进行绑定,绑定的方式:先创建一个文本,然后写入“IP MAC地址”注意中间有空格,列如192.168.1.1mac地址为AA:BB:CC:DD:EE:FF,那么就在文本里写入“192.168.1.1 AA:BB:CC:DD:EE:FF”,用arp –f 文本的名称进行绑定就可以了。

网络设置好了,还有一个问题是大家每次开机都没有声音,网上找资料的时候就说把一些声卡选项点上就好了,但是关机再开机又没声音了,这个问题很容易解决,大家把“alsa-utils”安装一下就好了。哪里有下载?使用yum安装,具体方法不讲,如果不会请回去前面看看。

听歌的工具很多,比较出名的有xmmsAudaciousAmarok等等,笔者比较喜欢Audacious,所以在这里就讲讲Audacious的安装与使用。在虚拟终端里输入“yum install audacious”。

选择“y”进行安装。安装完后我们并不能马上使用,必须装上解码器,但是audacious- 1.5.1并没有mp3wmaacc等的rpm包的解码器,所以在这里我们选择了用audacious-1.4.5的解码器。不过Fedora10yum软件库并没有提供这些解码器,因为涉及的版权的问题,更详细的大家上网去找找看,所以我们必须把fusion的软件库给装上,详细的安装前面有提到,自己翻前去看看。如果已经安装好了,我们就安装“audacious-plugins-freeworld-mp3audacious-plugins-freeworld-wmaaudacious-plugins-freeworld-acc这三个软件,安装方法同样不说,自己去实践,如果有需要其他的解码器,可以自己使用“yum search audacious”来查询下安装包的名字。皮肤可以到http://www.gnome-look.org或者是http://customize.org/这里去下载,然后把下载后解压,然后把后缀名为wsz的文件放到“/usr/share/audacious/Skins”里面,接着打开audacious的首选项设置皮肤就好了。不在任务栏显示audacious的方法是,把打开首选项à插件à常规à StatusIcon勾选上,

这样就会看到托盘上有audacious的图标,对着它点下,audacious就会隐藏到托盘里了。

然后我们再看看flash player的安装,这个相对来说比较简单,到http://get.adobe.com/flashplayer/去下载一个rpm包,然后安装就可以了,记住需要root权限安装。

下面讲讲影视播放器软件,笔者在这里推荐使用两个,一个是大名鼎鼎的realplayer和一个不会比暴风影音差的mplayer。先看看realplayer的安装吧,首先到read的官方网站下载一个realplayer for linux rpm包,下载网址:http://www.real.com/linux ,然后跟着图片一起安装,图片里已经对realplayer设置过路径,如果不设路径它默认会安装到“/opt”这里,也是需要root的权限进行安装。

安装完后,安装下面图片找到realplayer,然后进行配置,配置过程比较简单,基本是不停的下一步就好了,这里就不多说了。

接下来就mplayer的安装了。安装mplayer需要有fusion的软件库,Fedora本身没有带。安装过fusion后,就直接使用yum来安装吧。

在虚拟终端里得到root权限,然后输入:

yum install mplayer mplayer-gui gecko-mediaplayer mencoder

这样就好了,当然mencoder不是必要安装的,但提供了许多编码功能。

如果需要皮肤可以到http://www.mplayerhq.hu/design7/dload.html 这里去下载,然后把解压的皮肤放到“/usr/share/mplayer/skins/default”里,打开mplayer右键可以设定皮肤。

虚拟机VMware,是大家用来做实验少不了的东西,现在我们开始来讲讲这个。首先到官方网站下载最新的vmware。网址为http://www.vmware.com

注意:建议下载最新的,否则vmware会不支持最新内核。

下载文件后得到root权限,然后就键入“sh VMware*.bundle

之后就有图形安装界面选择路径下一步就可以了。

安装完后如下图,至于KEY的问题,我这里就不方便提供了,大家上网搜索一下吧。

Windows共享,Fedora在这方面已经做得很方便了,大家在“位置”的地方找到“连接服务器”:

这个软件比较强大,ftpssh、和samba都支持,只需要把对方IP和用户名,文件夹名(对方共享的文件的名字)、共享文件夹名就可以了。

Fedora提供天气预报的功能,只要设置好就能使用,是否准确,这个就不知道了。对着托盘的时间右键打开选项,把“显示天气”给勾选上,然后选择位置。点击添加,在位置名称中按下C就可以显示中国大部分的城市了,自己选择自己的城市确定就好了

键盘快捷方式设置方法,看图:

然后在里面设置成自己需要的就好了。
到这里第二课就完了.其实不难,linux对我们是很友善的,大部分的问题都是可以解决的.所以请大家请不要害怕linux,用心学.

Yayi和大家一起学习Fedora系列教程–第一课

什么是Linux呢?

是一种计算机操作系统。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具(例如DEV C++)、资料库(例如PostgreSQLMySQL)、Web服务器(例如Apache)、X Window、桌面环境(例如GNOMEKDE)、办公套件(例如OpenOffice.org)、脚本语言(例如PerlPHPPython)等等。Linux内核最初是为英特尔386微处理器设计的。现在Linux内核支持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。在开始的时候,Linux只是个人狂热爱好的一种产物。但是现在,Linux已经成为了一种受到广泛关注和支持的一种操作系统。包括IBM和惠普、戴尔在内的一些计算机业巨头也开始支持Linux。很多人认为,和其他的商用Unix系统以及微软 Windows相比,作为自由软件的Linux具有低成本,安全性高,更加可信赖的优势。

绝大多数基于Linux内核的的操作系统使用了大量的GNU软件,包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正因为如此,GNU计划的开创者理查德·马修·斯托曼博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做“Linux”大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。

除了一部分专家之外,大多数人都不自己选择每一样组件或自行设置,而是直接使用Linux套件。

1983年,理查·马修·斯托曼(Ric hard Stallman)创立了GNU计划(GNU Project)。这个计划有一个目标是为了发展一个完全免费自由的 Unix-like 操作系统。自1990年代发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的元件,像是——函式库(libraries)、编译器(compilers)、侦错工具(debuggers)、文字编辑器(text editors)、网页服务器(web server),以及一个Unix的使用者接口(Unix shell)——除了执行核心(kernel)仍然付阙外。1990年,GNU计划开始在马赫微核(Mach microkernel)的架构之上开发系统核心,就是所谓的GNU Hurd,但是这个基于Mach的设计异常复杂,发展进度则相对缓慢。

1983年,理查·马修·斯托曼(Ric hard Stallman)创立了GNU计划(GNU Project)。这个计划有一个目标是为了发展一个完全免费自由的 Unix-like 操作系统。自1990年代发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的元件,像是——函式库(libraries)、编译器(compilers)、侦错工具(debuggers)、文字编辑器(text editors)、网页服务器(web server),以及一个Unix的使用者接口(Unix shell)——除了执行核心(kernel)仍然付阙外。1990年,GNU计划开始在马赫微核(Mach microkernel)的架构之上开发系统核心,也就是所谓的GNU Hurd,但是这个基于Mach的设计异常复杂,发展进度则相对缓慢。

Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的,当时他并不满意Minix这个教学用的操作系统。最初的设想中,Linux 是一种类似 Minix 这样的一种操作系统。Linux的第一个版本在19919月被大学FTP server管理员Ari Lemmke发布在Internet上,最初Torvalds 称这个核心的名称为 “Freax” ,意思是自由( “free” 和奇异( “freak” 的结合字,并且附上了“X”这个常用的字母,以配合所谓的 Unix-like 的系统。但是FTP server管理员嫌原来的命名“Freax”的名称不好听,把核心的称呼改成“Linux”,当时仅有10000行代码,仍必须执行于Minix操作系统之上,并且必须使用硬盘开机;随后在10月份第二个版本(0.02版)就发布了,同时这位芬兰赫尔辛基的大学生在comp.os.minix上发布一则讯息。

Linux 的历史是和GNU紧密联系在一起的。从1983年开始的GNU计划致力于开发一个自由并且完整的类Unix操作系统,包括软件开发工具和各种应用程序。到1991 Linux 内核发布的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。在 Linus Torvalds 和其他开发人员的努力下,GNU组件可以运行于Linux内核之上。整个内核是基于 GNU 通用公共许可,也就是GPLGNU General Public LicenseGNU通用公共许可证)的,但是Linux内核并不是GNU 计划的一部分。19943月,Linux1.0版正式发布,Marc Ewing成立了 Red Hat 软件公司,成为最著名的 Linux 分销商之一。(摘自中国维基)

那么Linux又有那些放行版呢?

比较出名的有UbuntuFedoraRedhatDebianSuseOpensuseCentosGentooLFS等等。

服务器通常会使用:RedhatDebianUbuntuServer版本)、SuseCentos

Linux爱好者经常使用:FedoraUbuntu(桌面版)、DebianSuseopensuse

比较自主:GentooLFS。(比较自主是安装自己的意愿去组装一个Linux)。

安装上面推荐的,选择一个自己喜欢的版本,只有选择了,我们才能继续下去。

Yayi在这里选择了Fedora

原因没有,萝卜青菜各有所爱,没有谁特别好,谁特别不好,因为大家都是Linux

那么Yayi为什么要去维基摘选上面的给大家呢?

难道你想别人跟你说“Debian系统怎么安装?”自己却不知道那个是什么东西?所以大家至少要把上面的摘选看一下。

选择好自己的系统后我们就开始安装吧。(系列教程笔者将使用Fedora10为示范)把光碟放入光驱设置为从光盘启动好后就会看到下面的画面了。然后我们选择第一项“Install or upgrade an existing system

选择后第一步后它将会检测光盘的完整性。如果需要检测则选择“OK”。如果不选择就选择“Skip”。Yayi就选择Skip跳过检测了。

到了这一步就直接NEXT吧。

注意:如果无法显示下面的画面则回到第一步,按tab建输入linux xdriver=vesa resolution=1024x768然后继续。

在这里选择自己需要的语言,然后下一步。需要外语的自己选择。

下面选择键盘的属性,大陆使用一般都是标准的US.English(也就是电脑城买到那些普通的键盘)。

这里选择“安装Fedora”,继续下一步。

设置好自己的机器名称。在这里值得注意的是,这里的机器名称并不是Windowsnetbios名称。

选择自己所在的时区,中国东边一搬选择上海。

输入根用户密码(Root),根用户密码也就是管理员密码,在Linux下管理员只有一个就是Root,当然可以把Root更改名字,不过那将会为你以后埋下一堆让你头疼的伏笔。

这里或许就是光盘安装的唯一一个难点了,有必要在分区之前告诉大家Linux的分区情况,不过详细的将会再以前讲到。

我们在windows下常见的文件系统有Ntfsfat等。

不知道大家还记得硬盘分区的一个概念不。

主分区一共最多可以有4个,扩展分区1个,逻辑分区可以有很多。

把这个记住了,下面开始说说Linux下文件系统:

Linux对硬盘的标识:sda1/hda1

sd/hd代表硬盘类型,我们PC机就两大类硬盘(SCSI一般PC机上没人会去装),有IDESATALinux下面对于IDE类的硬盘用hd来标识,而SCSISATA一样用sd标识。

a代表硬盘序号,而第一块硬盘用a来表示,第二块用b来表示,如此类推。

1代表分区序号。

注意:一个主分区最多可以标识成sda4/hda4

简单的认识完后,我们尝试自己标识一个,第三块SCSI硬盘的第二个主分区:sdc2那么第2IDE硬盘的第1个逻辑分区:hdb5

注意:无论你的硬盘是是否有主分区存在,逻辑分区一定从5开始,第二个就是6

接下来我们看看文件系统,常见的有ext3ext2swap等等。

对于新手的我们暂时先了解这3个。

Swap是交换分区,一定需要分区的,一般是内存的2倍。内存过大时不需要分过大,如8G以上。

Linux下面有个“挂载”这个词,在我们选择分区的时候会看到系统要求你选择挂载点。

在了解挂载点之前,必须说的是Linux是以“/”来建立的,并不是我们在windows下的c$d$这样来储存的,也就是说无论你的分区多少个挂载的地方一定是根的下面(“/”等于“根”)。当然swap等除外。

挂载点是什么?或许我这么跟你说你会明白快点。

打开你的c$,会看到windowsProgram Files之类的,可以理解成将文件分类好储存,每个挂载点放的文件各有各的意义,一定要理解好几个重要的。

目录(挂载点) 说明
/ 根目录,根所在的分区为根分区。
/boot 储存启动文件,一般独立分区。
/home 用户的宿主目录,root除外,一般独立分区
/root 管理员root的宿主目录。
/etc 用于储存Linux系统各种程序的配置文件。
/usr 用于储存应用程序(软件本身)。
/var 用于储存需要经常变化的文件(如数据库)。
/bin 用于储存普通用户可以执行的软件(可以看成快捷方式,大多数书籍会写这里存放命令)。
/sbin 储存管理员才能执行的软件(可以看成快捷方式,大多数书籍会写这里存放命令 )。
/tmp 用于储存临时文件,每次开机会自动清除。

一个Linux系统最少需要2个分区,一个是挂载“/”,一个则是交换分区,大家记住了。

在下面的画面我们选择“建立自定义分区结构”。

在这里我们选择新建,然后选择文件系统类型,挂载点分区大小。

交换分区不需要选择挂载点。

一般我们不是服务器的可以分成一个交换分区,一个“/”,还有一个挂载“/boot”的分区。分区好后如下图:

如果你怕自己分错或者嫌麻烦,可以让系统帮你分区,在之前的画面选择“在选定驱动上删除linux分区并创建默认的分区结构”,然后下一步就好了。

这里是选择自己要安装的选件,如果需要自己定制,那么就按现在定制吧。这里我们默认,继续下一步。

然后就进入安装了,安装过程是个漫长的等待。安装好后安装提示重启就好了。

这个没有看fedora10的启动画面是因为显卡驱动没有装好。不过可以尝试修改/boot/grub/grub.conf文件解决,不一定成功。详细的修改将后面讲到。

无论有无开机画面,按下方向键“↓”就可以看到详细开机进度。

看到欢迎画面了,对于大部分人来说基本就快完成了,但是一部人会不成功,后面详细讲,下一步吧。

还是继续下一步,这里主要是告诉你许可的信息,法律程序,你不是盗版的,别怕,这里已经给你许可了。

设置一个普通用户名,这个用户将是你以后在桌面下登陆的用户。

设置好时间,下一步。
这里是要你把你机器的配置发送给Fedora,可以无视,选择完成。

然后就到了登陆画面了,赶紧选择好刚刚创建的用户输入密码吧。

这里,已经说明我们成功了。

现在我们就讲讲把最后的信息设置好,点击完成后死机,非法重启继续回到欢迎界面设置的解决方法。

1. 开启电脑后,随便按下建,

2. 看到选择启动项,按E进行编辑。

3. 然后选择第二项,按E

4. 在最后面加个1,然后按esc

5. 再按B启动单用户,然后把firstboot这个服务给禁用了。

6. init 5继续。

在前面讲到fedora 10开机画面无法开启就和笔者一样是一条横条。这样的情况下可以尝试编辑/boot/grub/grub.conf文件。在“kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=XXXXX rhgb quiet” 后面加上vga=0x317kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=XXXXX rhgb quiet vga=0x317这个样子就好了,不一定成功!关于vga的参数设置,可以g.cn上找找。

到这里为止,一切都完成了。第一课讲完,认识与安装Fedora