Fedora安装tor、privoxy/polipo、vidalia

前提工作
下载tor for linuxvidalia for linux

使用yum 安装必须软件

privoxy/polipo
cmake
qt4
qt-devel
libevent
libevent-devel
openssl
openssl-devel
doxygen

值得说下privoxy与polipo功能类似.选其中一个就好了.

安装tor
1.解压tor

tar zxf tor-0.2.1.27.tar.gz

2.开始安装tor

cd tor-0.2.1.27
./configure
make;make install

配置privoxy
用编辑器打开配置文件

vi /etc/privoxy/config

在配置文件里加下面这个行

forward-socks4a / 127.0.0.1:9050 .

最后.最后面有个”.
把下面这行注释掉

logfile logfile

保存退出即可

配置polipo
tor专用polipo配置文件替换当前的 Polipo 配置文件(如 /etc/polipo/config 或 ~/.polipo/polipo.conf”)就可以了.

安装vidalia
1.解压vidalia

tar zxf vidalia-0.2.10.tar.gz

2.开始安装vidalia

cd vidalia-0.2.10
cmake .
make
make install

Torbutton
安装并且确保Torbutton已经运行中.
如下图:

并且把privoxy和vidalia启动.

最后到https://check.torproject.org/确保自己的tor已经在运行了.

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

第八课了,这次我们来讲讲samba。
先来看看其作用吧。

Samba是许多服务以及协议的实现,其包括TCP/IP上的NetBIOS(NBT)、SMB、CIFS(SMB的增强版本)、 DCE/RPC或者更具体来说MSRPC(网络邻居协议套件)、一种 WINS服务器(也被称作NetBIOS Name Server(NBNS))、NT 域协议套件(包括NT Domain Logons、Secure Accounts Manager(SAM)数据库、Local Security Authority(LSA)服务、NT-style打印服务(SPOOLSS)、NTLM以及近来出现的包括一种改进的Kerberos协议与改进的轻型目录访问协议(LDAP)在内的Active Directory Logon服务)。以上这些服务以及协议经常被错误地归类为NetBIOS或者SMB。Samba也能够用于共享打印机。Samba能够为选定的Unix目录(包括所有子目录)建立网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。(摘选自维基百科)

软件包:

samba-common
samba
system-config-samba
samba-client

主配置文件:

/etc/samba/smb.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
[global]
 
#Samba服务器的全局设置,配置项的内容对整个 Samba服务器有效
 
workgroup = MYGROUP
 
#设置Samba服务器所在的工作组名称,默认设置为 MYGROUP
 
server string = Samba Server
 
#设置Samba服务器的说明文字,用于描述Samba主机
 
security = user
 
#设置Samba服务器的默认安全级别为user,设置项的值可以有以下4种:
 
#share:用户不需要帐户及密码即可登入Samba服务器
 
#user:由提供服务的Samba服务器负责检查帐户及密码,是Samba默认的安全等级
 
#server:检查帐户及密码的工作指定由另一台 Windows服务器或Samba服务器负责
 
#domain:指定Windows域控制服务器来验证用户的帐户及密码
 
;   hosts allow = 192.168.1. 192.168.2. 127.
 
#默然情况下的配置不使用,它可以用来设置局域网中容许访问 Samba服务器的主机、子网或者是网段
 
load printers = yes
 
#是否允许打印机中的所有打印机,在开机时自动加载浏览列表,以支持客户端的浏览功能
 
;   printcap name = /etc/printcap
 
#设置开机时自动加载的打印机配置文件名称和路径
 
;   printcap name = lpstat
 
#设置打印机名称
 
;   printing = cups
 
#设置指定打印系统的类型
 
cups options = raw
 
#设置以’raw’的方式打印,可选项
 
;  guest account = pcguest
 
#设置Guest帐号名,默认不使用
 
log file = /var/log/samba/%m.log
 
#所有连接到SAMBA服务器的计算机建立个别的记录日志
 
max log size = 50
 
#设置每个记录日志大小的上限,单位是KB
 
#  password server =*
 
;   password server = 
 
#默认的配置下不使用,只有选项设置为 “security=server”时才生效,它是用来指定密码服务的名称,所以要使用NETBIOS名称,也可以使用“password server=*”的方式来自动寻找可用的域控制器
 
;   realm = MY_REALM
 
;   passdb backend = tdbsam
 
;   include = /usr/local/samba/lib/smb.conf.%m
 
#容许Samba服务器使用其他的配置文件
 
;   interfaces = 192.168.12.2/24 192.168.13.2/24
 
#使Samba服务器监视多个往来接口,如果服务器上有多张网卡应该配置此项
 
#在配置时可以写成:
 
interfaces =eth0
 
interfaces =172.17.4.150
 
;   local master = no
 
#Samba服务器是否可以成为本地主浏览器
 
;   os level = 33
 
#Samba服务器的管理等级
 
;   domain master = yes
 
#该服务器是否可以成为域浏览器
 
;   preferred master = yes
 
#该服务器是否可以成为工作组中的首要主浏览器
 
;   domain logons = yes
 
;   logon script = %m.bat
 
;   logon script = %U.bat
 
;   logon path = \\%L\Profiles\%U
 
;   wins support = yes
 
;   wins server = w.x.y.z
 
#设定samba server 是否要使用别台主机提供的WINS服务.通常无特殊原因设为no.除非所处网络上有一台主机提供WINS服务才要设yes
 
;   wins server = 192.168.0.1
 
#表示samba server要使用192.168.0.1提供的WINS服务
 
;   wins proxy = yes
 
dns proxy = no
 
;  add user script = /usr/sbin/useradd %u
 
;  add group script = /usr/sbin/groupadd %g
 
;  add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
 
;  delete user script = /usr/sbin/userdel %u
 
;  delete user from group script = /usr/sbin/deluser %u %g
 
;  delete group script = /usr/sbin/groupdel %g
 
#============================ Share Definitions ==============================
 
[homes]
 
#用户的主目录设置内容
 
comment = Home Directories
 
#设置共享的说明信息
 
browseable = no
 
#设置所有Samba用户的宿主目录是否能被看见
 
writable = yes
 
#设置用户是否可以对该共享目录写入
 
; [netlogon]
 
#登陆网域时的“netlogon”目录设置内容
 
;   comment = Network Logon Service
 
#主目录注释
 
;   path = /usr/local/samba/lib/netlogon
 
#实际访问资源的本机路径
 
;   guest ok = yes
 
#连接时是否需要密码
 
;   writable = no
 
#是否允许写入此目录
 
;   share modes = no
 
#是否容许目录中的文件在不同的用户之间共享
 
;[Profiles]
 
#用户配置文件目录设置内容
 
;    path = /usr/local/samba/profiles
 
#设置实际访问资源的本机路径
 
;    browseable = no
 
#设置是否允许浏览此主目录
 
;    guest ok = yes
 
#设置连接时是否需要密码
 
[printers] strong>
 
#设置打印机环境内容
 
comment = All Printers
 
#设置打印机注解
 
path = /usr/spool/samba
 
#设置打印队列路径
 
browseable = no
 
#设置是否允许浏览打印机内的暂时存盘内容
 
# Set public = yes to allow user ‘guest account’ to print
 
guest ok = no
 
#设置连接时是否不需要密码
 
writable = no
 
#设置是否允许写入此目录
 
printable = yes
 
#设置是否允许使用打印机
 
# This one is useful for people to share files
 
;[tmp]
 
;   comment = Temporary file space
 
#注释说明
 
;   path = /tmp
 
#分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
 
;   read only = no
 
#是否以只读方式共享当与writable 发生冲突时也writable为准
 
;   public = yes
 
#是yes/否no公开共享,若为否则进行身份验证(只有当security = share
 
;[public]
 
;   comment = Public Stuff
 
;   path = /home/samba
 
;   public = yes
 
;   writable = yes
 
;   printable = no
 
;   write list = @staff
 
#若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
 
;[fredsprn]
 
;   comment = Fred’s Printer
 
;   valid users = fred
 
;   path = /homes/fred
 
;   printer = freds_printer
 
;   public = no
 
;   writable = no
 
;   printable = yes
 
;[fredsdir]
 
;   comment = Fred’s Service
 
;   path = /usr/somewhere/private
 
;   valid users = fred
 
;   public = no
 
;   writable = yes
 
;   printable = no
 
;[pchome]
 
;  comment = PC Directories
 
;  path = /usr/pc/%m
 
;  public = no
 
;  writable = yes
 
;[public]
 
;   path = /usr/somewhere/else/public
 
;   public = yes
 
;   only guest = yes
 
;   writable = yes
 
;   printable = no
 
;[myshare]
 
tyle=”color: #ff6600″>;   comment = Mary’s and Fred’s stuff
 
#设置共享的说明信息
 
;   path = /usr/somewhere/shared
 
#共享的目录
 
;   valid users = mary fred
 
#设定只有此名单内的用户才能访问共享资源 (拒绝优先)(用户名/@组名)
 
;   public = no
 
#是否公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
 
;   writable = yes
 
#是否不以只读方式共享当与read only发生冲突时,无视read only
 
;   printable = no
 
#是yes/否no允许打印
 
;   create mask = 0765
 
#建立文件时所给的权限

客户端使用简单的说下吧。

配置samba本地用户密码
smbpasswd -a USER

显示当前服务器连接的状态
smbstatus

查看服务器共享的服务
smbclient -L //192.168.1.20 -U administrator

连接服务器共享
smbclient //192.168.1.20/share -U administrator

挂载samba服务器共享文件夹
mount -t cifs -o username=USER //192.168.1.20/USER /mnt -o username=username,passwd=’password’

这一课也结束了。这次并不是做主要的讲,是因为希望大家动动脑筋,多点经验解决自己第一次使用与安装的软件,

找出窍门,不要凡事没动过脑筋与思考马上就GOOGLE与问别人。先要相信自己的能力。

DNW在linux的解决方案

Dnw烧录工具一般只是提供在windows下,

官方并没有Linux的版本,

然而这样让我们使用Linux的人感到许多的不方便,

不过一位达人已经把Dnw成功移植到了Linux下,

这样我们就可以方便的使用了,

值得庆贺的是另一位达人添加了QT的界面,

这样对于新手来说更是方便.

加上个Gtkterm,

这个是代替windows下的超级终端.

本人以用mini2440已经充分测试,

测试通过.

副上图片,

注意:xdnw需要安装QT4,Fedora下为qt-devel.还有一点,它们需要root权限运行,紧记是’su – root‘,而不是’su root‘.并且都需要libusb和libusb-devel.

至于说明自己请解压看README文件.

Dnw for linux Dowdload.

XDnw for linux Dowdload.

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,接下来的课就更让你头疼的了。这样我们就讲完了。下一次课开始我们将会开始讲一些服务器的架设。