阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 18593阅读
  • 0回复

Linux下FTP服务器之VSFTP配置手册

级别: 菜鸟
发帖
83
云币
103
E76#xsyhF  
{ +$zgg  
vsFTP服务器的安装 Jw b'5[R  
3T|xUY)G4  
?KKu1~a_  
安装一个软件实在是不许要在这里介绍,因此,这里的安装主要针对vsFTPd服务器的初级配置。 *?-,=%,z/  
VSFTPD的菜鸟篇 4|]0%H~n6  
这是我这个菜鸟学习LINUX所写的第一篇文章,是比较基础的FTP架设的应用,如果我写有什么问题请大家多指教,我后续会陆续出进阶篇把 FTP中各种详细的配置跟大家一起进行探讨。我所用的是Redhat Linux AS + VSFTPD-1.2.0-4的系统架构,在这里说明的是如果对配置文件不是很熟悉,最好做个备份,以免误操作: S]O0zv^}  
XuY#EJbZ  
匿名服务器的连接(独立的服务器) 1h[xVvo<L  
8vK$]e36  
bRhc8#kw)  
在/etc/vsftpd/vsftpd.conf配置文件中添加如下几项: =u.jZ*u]WT  
  anonymous_enable=yes (允许匿名登陆) }+F&=-P)  
DMcH, _(  
  dirmessage_enable=yes (切换目录时,显示目录下.message的内容) KbcmK( `_  
  local_umask=022 (FTP上本地的文件权限,默认是077) y;r{0lTB  
  connect_form_port_20=yes (启用FTP数据端口的数据连接)* s[}4Q|s%  
  xferlog_enable=yes (激活上传和下传的日志) ,?k~>,{3  
  xferlog_std_format=yes (使用标准的日志格式) GlPd)m`  
  ftpd_banner=XXXXX (欢迎信息) zBKfaQI,  
  pam_service_name=vsftpd (验证方式)* \a}_=O  
  listen=yes (独立的VSFTPD服务器)* \mIm}+!H  
]((Ix,ggP  
功能:只能连接FTP服务器,不能上传和下传 vK10p)ZV  
注:其中所有和日志欢迎信息相关连的都是可选项,打了星号的无论什么帐户都要添加,是属于FTP的基本选项 WA$Ug  
@N%/v*  
开启匿名FTP服务器上传权限 b;K]; o-/f  
>B~vE2^tQ~  
6HK dBW$/  
在配置文件中添加以下的信息即可: !SxZN dv  
  Anon_upload_enable=yes (开放上传权限) yltzf #%  
  Anon_mkdir_write_enable=yes (可创建目录的同时可以在此目录中上传文件) q"uP%TN  
  Write_enable=yes (开放本地用户写的权限) !VXs yH3r5  
  Anon_other_write_enable=yes (匿名帐号可以有删除的权限) xyvG+K&  
t'.oty=  
O5lP92],  
开启匿名服务器下传的权限 ui[E,W~  
G8Qo]E9-/  
%_>+K;<  
在配置文件中添加如下信息即可: iYE7BUH=  
  Anon_world_readable_only=no 2=[deQs  
l[cBDNlrC;  
注:要注意文件夹的属性,匿名帐户是其它(other)用户要开启它的读写执行的权限 1vG]-T3VC  
(R)读-----下传 (W)写----上传 (X)执行----如果不开FTP的目录都进不去 ee7{5  
@TWtM#  
普通用户FTP服务器的连接(独立服务器) (X(296<;  
|rhCQ"H  
]\8{z"  
在配置文件中添加如下信息即可: j0]|$p  
  Local_enble=yes (本地帐户能够登陆) @[vwqPOL  
  Write_enable=no (本地帐户登陆后无权删除和修改文件) 2!y%nkO*  
=D"H0w <zw  
功能:可以用本地帐户登陆vsftpd服务器,有下载上传的权限 >.fN@8[  
注:在禁止匿名登陆的信息后匿名服务器照样可以登陆但不可以上传下传 =64%eF  
_Q $D6+  
用户登陆限制进其它的目录,只能进它的主目录 ;Bs^+R7  
eT4+O5t  
#SR"Q`P  
设置所有的本地用户都执行chroot F[65)"^  
  Chroot_local_user=yes (本地所有帐户都只能在自家目录) DKzP)!B "  
:q+D`s  
设置指定用户执行chroot !:7aXT*D$  
  Chroot_list_enable=yes (文件中的名单可以调用) R\+O.vX  
  Chroot_list_file=/任意指定的路径/vsftpd.chroot_list qU/,&C  
x9Qa.Jmj  
注意:vsftpd.chroot_list 是没有创建的需要自己添加,要想控制帐号就直接在文件中加帐号即可 Ijs"KAW ?  
FQ72VY  
限制本地用户访问FTP T 5jZd@VT,  
m&h5u,  
  Userlist_enable=yes (用userlistlai 来限制用户访问) %~ROV>&  
  Userlist_deny=no (名单中的人不允许访问) 5nhc|E)C  
  Userlist_file=/指定文件存放的路径/ (文件放置的路径) w ,CZ*/^  
L,QAE)S'a  
注:开启userlist_enable=yes匿名帐号不能登陆 3}}#'5D  
OcBn1k.  
安全选项 ~ 3HI;  
ke(LjRS  
  Idle_session_timeout=600(秒) (用户会话空闲后10分钟) wJ| wAS  
  Data_connection_timeout=120(秒) (将数据连接空闲2分钟断) 4/rd r80  
  Accept_timeout=60(秒) (将客户端空闲1分钟后断) |0wUOs*5  
  Connect_timeout=60(秒) (中断1分钟后又重新连接) :h|nV ~  
  Local_max_rate=50000(bite) (本地用户传输率50K) N8Mq0Ck{$  
  Anon_max_rate=30000(bite) (匿名用户传输率30K) -ty_<m]  
  Pasv_min_port=50000 (将客户端的数据连接端口改在 b;[u=9ez  
  Pasv_max_port=60000 50000—60000之间) ` _+j+  
  Max_clients=200 (FTP的最大连接数) mxpncM=q  
  Max_per_ip=4 (每IP的最大连接数) X5@rPGc  
  Listen_port=5555 (从5555端口进行数据连接) u.}z}'-  
y?|JBf  
*+E9@r=HF  
查看谁登陆了FTP,并杀死它的进程 Jk.Ec )w  
Y^?J3[@  
  ps –xf |grep ftp 8#Q=CTjF  
  kill 进程号 <3!jra,h  
Tv;|K's'  
wec |~Rc-  
GlDl0P,*r  
sQT0y(FW  
XK)qDg  
Ou _bM n  
vsFTP服务器的配置 D/CSR=b  
PZQb.QAn  
K4vl#*qn  
VSFTPD的高手篇 我可不是高手!!!^_^我只不过是个菜鸟,尽我的能力写出了我这个菜鸟觉得的高手篇,所以有什么错误请大家指正哦!!! &b 2Vt  
环境:linux as 3.0 + vsftpd -1.2.0-4的系统架构,是在独立服务器下的哦!讨厌XINETD^_^ K"cN`Kj<*-  
H\f.a R=  
配置本地组访问的FTP HNA/LJl[VU  
zL @ZNH  
Z[baQO  
首先创建用户组 test和FTP的主目录   groupadd test :bLLN  
  mkdir /tmp/test mis cmD  
VP$`.y  
然后创建用户   useradd -G test –d /tmp/test –M usr1 qbjLTE=  
A|#9  
注:G:用户所在的组 d:表示创建用户的自己目录的位置给予指定 Q0f7gY1-%  
M:不建立默认的自家目录,也就是说在/home下没有自己的目录   useradd –G test –d /tmp/test –M usr2 h Znq\p~  
9=D\xBd|w  
接着改变文件夹的属主和权限   chown usr1.test /tmp/test ----这表示把/tmp/test的属主定为usr1 kzhncku  
  chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什么权限都没有 qV$\.T>x  
).TQYrs  
这个实验的目的就是usr1有上传、删除和下载的权限 H|4O`I;~(  
而usr2只有下载的权限没有上传和删除的权限 &46h!gW  
当然啦大家别忘了我们的主配置文件vsftpd.conf yWa-iHWC  
要确定local_enable=yes、write_enable=yes、chroot_local_usr=yes这三个选项是有的哦! R 2uo ZA,  
}fW@8ji\  
p/B&R@%  
nV-A0"z_&  
配置独立FTP的服务器的非端口标准模式进行数据连接 I| qoHN,g  
p4;A[2Ot`:  
RLN>*X  
这个非常容易:在VSFTPD。CONF中添加   Listen_port=33333 u@\]r 1  
vu[+UF\G  
就可以了啦! Lrgv:n  
ve2GRTO^aC  
=dD<[Iz6  
, ;L  
配置单独的虚拟FTP,使用虚拟FTP用户,并使建立的四个帐户中有不同的权限 =j]us?5  
C2;qSKG3{m  
7@u0;5p|  
(两个有读目录的权限,一个有浏览、上传、下载的权限,一个有浏览、下载、删除和改文件名的权限) W is_N3M  
xmxfXW  
A:配置网卡 0 !yvcviw  
TTaSg\K  
,vEwck#  
第一块网卡地址是10.2.3.4 掩码是255.255.0.0   ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up .L[WvAo  
6R V]9  
1>OfJc(K  
B:写入/etc/sysconfig中(为了重起后IP地址不会丢失) c#M 'Mye  
AAjsb<P  
  cd /etc/sysconfig/network-scripts W-:gU!{*#  
  cp ifcfg-eth0 ifcfg-eth0:1 |e@9YDZ  
  vi ifcfg-eth0:1在其中修改内容如下 kVk^?F  
  DEVICE=eth0:1 QLYb>8?"C  
  BROADCAST=211.131.4.255 TSXa#SKp  
  HWADDR=该网卡的MAC地址 i|PQNhUe  
  IPADDR=211.131.4.253 7q*L-Xe]k  
  NETMASK=255.255.255.0 <Y9vc:S  
  NETWORK=211.131.4.0 nYG$V)iCb  
  onBOOT=yes n<6p0w  
  TYPE=Ethernet +v:t  
  wq退出 (#FWA<o  
#W,BUN}  
8FyJo.vr(  
C:进入vsftpd.conf所在的文件夹 z5-vx`  
Cdl#LVqs  
  cp vsftpd.conf vsftpd2.conf Ql sMMIax  
kD:O$8[J8  
修改vsftpd.conf添加以下信息   Listen_address=10.2.3.4 &/*XA  
az@{O4  
修改vsftpd2.conf添加以下信息   Listen_address=211.131.4.253 MVU5+wX  
  Ftpd_banner=this is a virtual ftp test U^SJWYi<Y  
vt}+d StUm  
到此虚拟的FTP服务器建立好了 %E Jv!u*-  
&gxRw l  
D:建立logins.txt 1lZl10M:f  
N*w/\|  
  vi /tmp/logins.txt P]:r'^Yn  
Ijq1ns_tx8  
添加入下信息:   longlei------------用户名 v'0A$`w`  
  longlei------------密码 v 0mc1g+9  
  zhangweibo T{v(B["!$  
  zhangweibo "1>I/CM  
  jinhui }I<r=?  
  jinhui BYt#aqf  
  lxp ;$Q `JN=  
  lxp S05+G}[$  
FOiwB^$ >  
格式要按照我的来哦,一个用户名,一个密码啦 E>f+E8?  
?}"$[6.  
E:建立访问者的口令库文件,然后修改其权限 lR[[]Yn  
\xG>>A%  
  db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db a5jc8S>  
^lhV\YxJ  
hN*,]Z{  
F:进如/etc/pam.d/中创建ftp.vu S 4uX utd  
I\E`xkbBu  
}}y$T(:l  
在此文件中添加如下信息   auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login lPyGL-Q  
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login 8enlF\I8g  
O?e38(  
f*KNt_|:  
G:在/var/ftp/创建目录并改变其属性和它的属主 mne4uW  
>+y[HTf-  
  useradd -d /var/ftp/test qiang KdI X`  
  chmod 700 /var/ftp/test _7r<RZ  
_7es_w}R  
在目录中添加test_file测试文件 0dxEV]  
l&l&e OE  
H:进入vsftpd2.conf修改其中的信息  SyFw  
-d]-R ?mQ  
  Listen_yes (os}s8cIh  
  Anonymous_enable=no g&eIfm  
  Local_enable=yes I3`WY-uv  
  Write_enable=no 3)\jUVuj  
  Anon_upload_enable=no ;8\w$SPP  
  Anon_mkdir_write_enable=no  h>\T1PM  
  Anon_other_write_enable=no iJ n<  
  Chroot_local_user=yes {3n|=  
  Guest_enable=yes----------起用虚拟用户 Sy|fX_i  
  Guest_username=qiang------将虚拟用户映射为本地用户 FG/".dU  
  Listen_port=5555 x=>B 6o-f  
  Max_client=10 l~P%mVC3m  
  Max_per_ip=1 V4I5PPz~  
  Ftpd_banner=this is a virtual server and users 6.%M:j0 0E  
  Pam_service_name=ftp.vu T DOOq;+  
i) v ]  
注:在主配置文件中给的权限越低,在后面分用户管理的时候对拥护的权限划分的空间就越大,因为主配置文件最高的限制服务先读主配置文件,然后再读用户的配置文件 _9yb5_  
重起服务。到此虚拟USER就建好了 {*utke]}*  
3 RB+  
I:在vsftpd.comf所在的目录中创建virtaul文件目录并在文件目录中创建以你用户名命名的配置文件 FW* k O  
y4sKe:@2  
  Longlei zhangweibo jinhui lxp OsI>gX>  
zq]I"0Bi.  
在longlei中添加:   Anon_world_readable_only=no sa8JN.B  
Mttt]]  
在lxp中添加   Anon_world_readable_only=no We%HdTKT  
.*FBr7rE\  
这样此两个用户就有了浏览目录的权限了 wUb5[m  
在jinhui中添加   Anon_world_readable_only=no matW>D;J  
  Write_enable=yes =' %r"_`}  
  Anon_upload_enable=yes $sF'Sr{)y  
dCq-&3?t  
此用户就有了上传、下载和浏览的权限 6/{V#.(  
在zhangweibo中添加   Anon_world_readable_only=no G<1)N T\u  
  Write_enable=yes Cj{+DXT  
  Anon_upload_enable=yes k;EG28   
  Anon_other_write_enable=yes x=-dv8N?  
vG E;PwR  
此用户就有了上传、下载、删除文件目录、修改文件名和浏览的权限 >ZRCM  
} @r|o:I  
J:修改vsftpd2.conf /%qw-v9qPV  
wXUP%i]i=  
*[XVkt`H  
加入user_config_dir=/vsftpd.conf所在的目录/virtual j&6O 1  
重起服务器就搞定了 cf\PG&S  
kT7x !7C  
Sr$&]R]^  
6f=,$:S$  
vsftpd.conf中的所有配置信息 a4a/]q4T  
k&JB,d-mJ%  
XFj\H(D  
`vbd7i  
vsftpd.conf的参数:
Anonymous_enable=yes允许匿名登陆
Dirmessage_enable=yes切换目录时,显示目录下.message的内容
Local_umask=022FTP上本地的文件权限,默认是077
Connect_form_port_20=yes启用FTP数据端口的数据连接 *
Xferlog_enable=yes激活上传和下传的日志
Xferlog_std_format=yes使用标准的日志格式
Ftpd_banner=XXXXX欢迎信息
Pam_service_name=vsftpd验证方式 *
Listen=yes独立的VSFTPD服务器 *
Anon_upload_enable=yes开放上传权限
Anon_mkdir_write_enable=yes可创建目录的同时可以在此目录中上传文件
Write_enable=yes开放本地用户写的权限
Anon_other_write_enable=yes匿名帐号可以有删除的权限
Anon_world_readable_only=no放开匿名用户浏览权限
Ascii_upload_enable=yes启用上传的ASCII传输方式
Ascii_download_enable=yes启用下载的ASCII传输方式
Banner_file=/var/vsftpd_banner_file用户连接后欢迎信息使用的是此文件中的相关信息
Idle_session_timeout=600(秒)用户会话空闲后10分钟
Data_connection_timeout=120(秒)将数据连接空闲2分钟断
Accept_timeout=60(秒)将客户端空闲1分钟后断
Connect_timeout=60(秒)中断1分钟后又重新连接
Local_max_rate=50000(bite)本地用户传输率50K
Anon_max_rate=30000(bite)匿名用户传输率30K
Pasv_min_port=50000将客户端的数据连接端口改在
Pasv_max_port=6000050000—60000之间
Max_clients=200FTP的最大连接数
Max_per_ip=4每IP的最大连接数
Listen_port=5555从5555端口进行数据连接
Local_enble=yes本地帐户能够登陆
Write_enable=no本地帐户登陆后无权删除和修改文件
下面这是一组
Chroot_local_user=yes本地所有帐户都只能在自家目录
Chroot_list_enable=yes文件中的名单可以调用
Chroot_list_file=/任意指定的路径/vsftpd.chroot_list前提是chroot_local_user=no
这又是一组
Userlist_enable=yes在指定的文件中的用户不可以访问
Userlist_deny=yes
Userlist_file=/指定的路径/vsftpd.user_list
又开始单的了
Banner_fail=/路径/文件名连接失败时显示文件中的内容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2将虚拟服务绑定到某端口
Guest_enable=yes虚拟用户可以登陆
Guest_username=所设的用户名将虚拟用户映射为本地用户
User_config_dir=/任意指定的路径/为用户策略自己所建的文件夹指定不同虚拟用户配置文件的路径
又是一组
Chown_uploads=yes改变上传文件的所有者为root
Chown_username=root
又是一组
Deny_email_enable=yes是否允许禁止匿名用户使用某些邮件地址
Banned_email_file=//任意指定的路径/xx/
又是单的
Pasv_enable=yes服务器端用被动模式
User_config_dir=/任意指定的路径//任意文件目录指定虚拟用户存放配置文件的路径
#.Q3}[M  
FJI%+$]  
_ aJo7  
aL)}S%5o?  
vsFTP服务器的维护 " pZvV0'  
%#AM }MWIa  
*s=jKV#  
现在这里还没有关于维护vsftp服务器的资料。欢迎大家编辑2 Re[x$rw  
#\P\(+0K  
vsFTP使用的一些补充 3y# U|&]{  
st7\k]J\  
\r.{Ru  
OV~]-5gau  
补充一:如何有选择的把用户限制在家目录中呢? Xa,d"R~  
~8oti4  
 }q$6^y  
我们要自己建一个文件,在/etc目录中   #touch /etc/vsftpd.chroot_list # dA-dN  
9~rrN60Q  
以beinan和nanbei这两个用户限制在他们所在的家目录中,而其它的FTP用户不做此限制。 p1BMQ?=($  
在vsftpd.chroot_list这个文件中,把beinan和nanbei添上去就行,注意,每个用户占一行。   beinan >$/<~j]  
  nanbei c }-AD r9  
jV|j]m&t  
然后改/etc/vsftpd/vsftpd.conf文件,找如下的两行   #chroot_list_enable=YES `d,v  
  #chroot_list_file=/etc/vsftpd.chroot_list `F(ghC  
^CBc~um2  
把前面的#号去掉,也就是这样的   chroot_list_enable=YES )qID<j#  
  chroot_list_file=/etc/vsftpd.chroot_list  /# FU"  
K|Cb6''  
如果没有这样的两行,就可以自己添加上去也是一样的。 .="/n8B  
设置好后,重新vsFTPD服务器。 ?'8(']/  
补充一之补充:如何把系统内所有的FTP用户都限制在家目录中呢??经juliaugong兄的提示,我查找了vsFTPd的洋文说明,证明这个选项是一刀切的解决所有的用户都能限制在家目录中 [^D~T  
我们可以通过更改vsftpd.conf文件,加入如下的一行   chroot_local_user=YES .#OD=wkN0  
Lu][0+-  
改完配制文件,不要忘记重启vsFTPd服务器 &i5MRw_]]  
i"_@iN0N  
  [root@linuxsir001 root]# /etc/init.d/vsftpd restart rYK GBo8"  
  关闭 vsftpd: [ 确定 ] A &tMj?  
  为 vsftpd 启动 vsftpd: [ 确定 ] /cXVJ(#j  
  [root@linuxsir001 root]# ]?<=DHn  
P}re"<MD  
@ L=dcO{r  
补充二:打开vsFTP服务器的日志功能 US'rhSV  
S|Yz5)*  
?= R C?K  
把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。   #xferlog_file=/var/log/vsftpd.log = }!4%.$  
\' Z^rjB  
/@O$jlX5I  
补充三:如何让绑定IP到vsFTP? 05ZF>`g*  
L5RBe  
.l:x!  
也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP w|G4c^KH  
在/etc/vsftpd/vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过192.168.0.2来访问FTP   listen_address=192.168.0.2 ;!9-I%e  
&a9Y4~e::  
加完后,要重启vsFTP服务器   [root@linuxsir001 root]# /etc/init.d/vsftpd restart KmX?W/%R  
  关闭 vsftpd: [ 确定 ] Q~-MB]'  
  为 vsftpd 启动 vsftpd: [ 确定 ] c?t,,\o(}  
  [root@linuxsir001 root]# ]w5j?h"b  
zf.&E3Sn  
tPz!C&.=  
补充四:如何让vsFTP服务器限制链接数,以及每个IP最大的链接数?? Naa "^  
y3Q2d7G  
"~,3gNTzV  
答:应该改vsFTP服务器的配制文件vsftpd.conf,加入下面的两行:   max_clients=数字 d+L!s7  
  max_per_ip=数字 >0AVs6&;v  
ZQN%!2  
举例:我想让我的vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:   max_clients=100 =%ry-n G  
  max_per_ip=5 5tUN'KEbN  
)+dd  
改好了配制文件,不要忘记启动vsftp服务器。 d#cEAy  
l|" SM6  
@w @SOzS)  
d3&l!DoX  
补充五:如何限制下载的速度? eZv G  
gbr-C  
$/|2d4O:{  
anon_max_rate=数字 注:这是匿名的下载速度 local_max_rate=数字 注:这是vsFTP服务器上普通用户的下载速度 q'CtfmI`r=  
注:这个数字的单位是字节,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024x80=81920 所以我们要在vsftpd.conf中加入下面的两行   anon_max_rate=81920 i}e4P>ADD  
  local_max_rate=81920 h/xV;oj  
ATkx_1]KM-  
不要忘记重启vsftpd服务 ?5Q_G1H&  
+et)!2N  
补充六:我的硬盘空间有限,怎么办? Cp!Qd e  
@lu` oyM  
)D8V;g(7F  
我的硬盘空间有限,如何把帐号ftp默认的路径/var/ftp更改到别处?或者是,我的linux所有的目录都放在/根分区,因为空间紧张,我能否把ftp这个用户的默认路径放到别的分区? X{-901J1  
可以,应该如下操作! th]pqhl>  
首先要把ftp这个用户删除   #userdel -r ftp D]*<J"/]d  
<:!;79T\  
会有错误信息,不过不用理,这是正常的。 %WO4uOi:@  
然后我们再把这个用户添加上,比如我想为帐号ftp的家目录设置在/mnt/LinG/ftp,我们就可以如下操作   [root@linuxsir001 root]# mkdir /mnt/LinG dA[S@ysvG  
  [root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp T@gm0igW/;  
Tp&7CNl|  
仅仅是这样做还不行,因为这样还是不能让匿名用户找到它的家目录,所以我们必须改变/mnt/LinG/ftp这个目录的权限。   [root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/ /PTk296@  
  [root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/ nv}z%.rRUj  
"[Hn G(gA  
i564<1`x  
补充七:如何定制欢迎信息 x>eV$UJ  
?8TIPz J  
WOR H4h9  
如何在我们登入有些FTP之后,会出现类似:欢迎您来到LinuxSir FTP,在这里,您会得到最真诚的帮助,如果有什么问题和建议,请来信,多谢。 @*"H{xo.U  
实现这个并不难,我们可以查看vsftpd.cof文件中,是否有这行。   dirmessage_enable=YES P>[,,w  
g$9EI\a  
如果没有就加上,如果dirmessage_enable=YES前面有#号,就把#号去掉。 gkMyo`  
然后我们制定一个.message文件,写上您想要写的东西,比如是.message的内容是如下的:   欢迎您来到LinuxSir FTP! L`n Ma   
  在这里,您会得到最真诚的帮助; O0=}: HM  
  如果有什么问题和建议,请来信,多谢。 NsUP0B}.  
~pG,|\9  
我们可以用编辑器来写这个.message,我想这个过程就不用说了吧。 DWmViuZmL  
然后我们把.message这个文件复制到各个用户的家目录中。比如我的FTP的一个用户是beinan,这个用户所在的家目录是/home/beinan h-6zQs   
我们就要把.message放在/home/beinan这个目录下。如果系统用户ftp,他的目录就是/var/ftp这个目录,这个是默认的, 当匿名用户登入时就访问的是/var/ftp这个目录。我们要让匿名用户能看到欢迎信息。就要把.message放在/var/ftp目录中。其它的用 户,也无非就是类似的操作。 <)9dTOdd  
Ers8J V  
L2`a| T=  
^rssZQKY[  
补充八:如何实现虚拟路径? R~!md  
"c*&~GSE4  
JH`oa1 b  
比如: /home/a 映射为ftp://localhost/a /home/b/c 则为ftp://localhost/c ^Y?Y5`! Q  
其实这个不能说是vsFTPd的内容,其实我们早就接触过了,可能我们没有注意,我们可以通过如下的方法来实现。   #mount --bind [原有的目录] [新目录] `ZZq Sc4  
["ML&2|o  
比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作 {/}p"(^  
我们要先在/var/ftp目录中建一个目录   #mkdir /var/ftp/WinSoft Q@5v> `  
/ &#b*46  
然后执行mount命令   #mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft +_v#V9?  
v/z~ j  
这样就OK了。 JLu>w:\  
]JvZ{fA%*  
>NjgLJh  
zelM}/d  
补充九:如何上匿名访问、上传,并支持下载和执行? Xot2L{EIUE  
<= Aqi91  
k\A[p\  
在默认的情况下,vsftp是不支持匿名用户的访问的,所以我们要自己打开相应的选项。现在我针对这个问题,我们要打开如下的选项。   anonymous_enable=YES 注:允许匿名访问 %IH ra6  
  anon_upload_enable=YES 注:允许上传 <0!)}O  
  anon_mkdir_write_enable=YES 注:允许建立相应的目录 O~&j}WN  
  anon_umask=022 把上传到FTP的文件或者目录改变权限 *7G5\[gI$  
w .+B h  
当然打开这些选项还是不行的,我们还要让匿名写入文件的上一级目录有写入权,以我所做的FTP为例,我所做的FTP的匿名访问的目录是 /var/ftp,在vsFTPd中,/var/ftp这个目录是不能让匿名用户有写入权限的,这是为了安全考虑,所以我们必须自己在/var/ftp目 录中建一个目录,让这个目录有写入权。 {bMOT*X=A  
比如:我在/var/ftp目录建一个upload目录,然后把它的权限设置成777,这样匿名用户就能写入了。   #mkdir /var/ftp/upload H:!pFj  
  #chmod 777 /var/ftp/upload BX-fV|  
.qg 2zE$0  
改了一系列的文件,不要忘记重启vsFTPd服务器 tq&CJvJ4  
我是用standalone模式的,当然用下面的方法   [root@linuxsir001 root]# service vsftpd restart H-5h-p k  
  关闭 vsftpd: [ 确定 ] j,CVkA*DY  
  为 vsftpd 启动 vsftpd: [ 确定 ] ;b;Bl:%?  
  [root@linuxsir001 root]# <g'0q*qE  
,pR.HCR#Y  
如果您用的是xinetd模式来启动vsFTPd,我们要重启xinetd服务器   [root@linuxsir001 root]# service xinetd restart se`^g ,]P  
  停止 xinetd: [ 确定 ] j5V{,lf  
  启动 xinetd: [ 确定 ] RE.t<VasP  
  [root@linuxsir001 root]# ] eg(1kDMpn  
 MKZq*  
 #[yZP9  
rkWiGiisM  
*rv7#!].  
补充十:通过pam认证方式,添加虚拟用户 h}yfL@  
hd~0qK  
*TC#|5  
JE ''Th}  
通过pam认证,用db_load添加用户,是真正的虚拟用户。现在我们简单的介绍一下,通过以后的学习,我们再深入补充: Bf8[(oc~  
1。在/etc/pam.d/目录中创建一个文件ftp   [root@linuxsir001 root]# touch /etc/pam.d/ftp !1[ZfTX^a  
 re@;6o  
2。在/etc/pam.d/ftp里面加上如下的两行   auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login !A'3Mw\Nm  
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login U_<k*o@:  
4v;KtD;M  
3。创建一系统的用户名用密码的文件logins.txt   [root@linuxsir001 root]# touch logins.txt ]Ia}H+&  
RLR\*dL1  
在logins.txt文件中,输入如下的内容。这个内容您可以自己来定。比如我下面的。其实linuxsir007是FTP的虚拟用户名, 123456是linuxsir007的密码;linuxsir008是虚拟用户名,234567是linuxsir008的密码,以此类推,您想加入几 个就是几个;下面是我添加的FTP的虚拟用户名和密码。   linuxsir007 zr^"zcfz&  
  123456 ]3I@5}5%  
  linuxsir008 J{e`P;ND  
  234567 s>ohXISB[  
  linuxsir009 @Jc^ur  
  567890 M{Hy=:K+  
  linuxsir010 ]oizBa@?G  
  678901 nZ8jBCh  
  linuxsir011 ~en'E  
  789012 -$ha@ bCWO  
#@}wl  
4。创建一个真实的用户名linuxsir006,这个linuxsir006的用户,所在的家目录由您来定。我在这里不多说了。我是按系统默认的来添加的。   [root@linuxsir001 root]# useradd linuxsir006 rL|9Xru  
UYvdzCUh  
5。把/etc/hosts复制到/home/linuxsir006,并改变它的属主   [root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts m\@q2l-  
  [root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts g-DFcwO,V  
!m6=Us  
6。通过db_load来创建虚拟用户的库文件。我们在前面建的logins.txt文件,我是放在了/root用户目录下。所以咱们得把目录切换到/root目录来创建虚拟用户的库文件。   [root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db Hk@LHC  
Oz-@e%8L  
7。更改vsftpd.conf文件,加入如下的几行   pam_service_name=ftp 7O<K?;I  
  guest_enable=YES g [c ^7  
  guest_username=linuxsir006 jq( QL%)_O  
  anon_world_readable_only=NO ]^I[SG,  
,nSapmg  
z@U5  
/5m~t.Z9M  
补充十一:如何把系统默认用standalone启动改为用xinetd启动? I\P w`  
,d7o/8u  
v%;Ny ab6$  
如何把Redhat 9.0中系统默认安装的vsftpd-1.1.3-8.i386.rpm,系统默认vsFTPd是用standalone启动方式 ,改为xinetd启动方式 ?如果是用源码包安装的,安装后就是xinetd模式,如果是用RPM包安装的,在Redhat 9.0中,应该用下面的方法来解决。 (x140_TH~  
1.在/etc/xinetd.d/目录中创建一个文件vsftpd   [root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd *&tv(+P  
|6 E !wW  
/etc/xinetd.d/vsftpd内容如下:   service ftp aPm2\Sq$  
  { Vu;z|L  
  socket_type = stream `qhZZ{s)1U  
  wait = no Ti&v9re%wO  
  user = root 1;JH0~403  
  server = /usr/sbin/vsftpd `c?8i  
  # server_args = @waY+sqt=  
  # log_on_success += DURATION USERID 7.bPPr&  
  # log_on_failure += USERID nTCwLnX(O  
  nice = 10 lf}%^od~6  
  disable = no 5U6b\jxX  
  } \CrWKBL  
.4XX )f5  
2。复制vsftpd.conf到/etc/目录下,因为xinetd对vsFTPd配制文件应该在/etc目录下,所以我们就必须把这个文件复制 到/etc目录下,否则会出现系统中local用户无法登入,也就是说,不复制这个文件会出现ftp非匿名用户无法访问,只能用匿名用户访问。   [root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf +Sak_*fq  
|'](zEwq  
3。更改配制文件/etc/vsftpd.conf,把如下的项注掉:也就是把   listen=YES .x][ _I>  
4ZtsLMwLD  
改为   #listen=YES S@cKo&^  
6xoCB/]  
或者是把这行删除也行。 3c[]P2Bh  
4。把/etc/init.d/vsftpd这个文件删除。其实最好的备份到别处,因为我们有时实验来实验去,可能还会转到standalone模式启动。我就直接移动到别的目录,比如是/root下面的backup目录。 Y7<(_p7  
B}^l'p_u  
  [root@linuxsir001 root]#mkdir /root/backup Bb.U4#  
  [root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup sF~!qag4q'  
GuKiNYI_  
5。运行ntsysv,把vsftpd的服务取消   [root@linuxsir001 root]#ntsysv d$:LUxM#  
  [ ] vsftpd Zx)gLDd  
3ICMH  
6。重启xinetd服务   [root@linuxsir001 root]# service xinetd restart
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 53 + 46 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)