vsFTPd服务器的常用功能

运维 系统运维
vsFTPd服务器的常用功能:Unix和Linux中,vsftpd是一款非常安全的FTP服务器。任何发行版本中的vsftpd都非常安全。像RedHat、Debian、GNU、GNOME、KDE 等等一些大型站点,都采用vsftpd作为它们的FTP服务器。本文将介绍vsFTPd服务器的常用功能。

vsFTPd服务器的常用功能:Unix和Linux中,vsftpd是一款非常安全的FTP服务器。任何发行版本中的vsftpd都非常安全。像RedHat、Debian、GNU、GNOME、KDE 等等一些大型站点,都采用vsftpd作为它们的FTP服务器。本文将介绍vsFTPd服务器的常用功能。

  1、关于匿名上传下载的功能

  关于匿名上传,其实也比较简单,首先我们要修改一下vsftpd.conf ,此文件位于 /etc/目录下,可能是/etc/vsftpd.conf,也可能是/etc/vsftpd/vsftpd.conf文件。以您的系统环境为准;

  首先:我们要改一下vsftpd.conf,确保有以下几行;

  1.   anonymous_enable=YES 
  2.  
  3.   anon_upload_enable=YES 
  4.  
  5.   anon_mkdir_write_enable=YES 
  6.  
  7.   anon_umask=022 
  8.  

  其次:在ftp用户家目录的下建一个文件夹,并修改其权限为完全开放;

  ftp用户的家目录在哪?我们前面已经说了,要通过/etc/passwd来查看;也可以通过finger ftp来查看;

  1.   [root@localhost beinan]# finger ftp  
  2.  
  3.   Login: ftp Name: FTP User  
  4.  

  Directory: /var/ftp Shell: /sbin/nologin

  这说明ftp用户的家目录在/var/ftp ,我们要在这个目录下建一个目录,然后把他的权限设置为任何用户可读可写可执行就行了;一般的情况下,在发行版中,有一个/var/ftp/pub的目录,如果没有,您也可以自己建一个;把配置文件改好后,只要把/var/ftp下的任何一个目录的权限打开,都可以用来匿名上传和下载;

  比如您想让匿名用户上传和下载都在/var/ftp/pub,就可以把/var/ftp/pub的权限打开,如果没有这个目录,您要自己建一个;

  1.   [root@localhost ~]# mkdir /var/ftp/pub  
  2.  
  3.   [root@localhost ~]# chmod 777 /var/ftp/pub  
  4.  

  这样上传的时候传到pub目录就OK了,对不对??

  2、关于添加本地用户及打开读写权限示例的功能;

 

  FTP用户一般是不能登录系统的,这也是为了安全。在系统中,没有权限登录系统的用户一般也被称之为虚拟用户;虚拟用户也是要写进/etc /passwd中;这只是一种虚拟用户的方法,但说实在的并不是真正的虚拟用户,只是把他登录SHELL的权限去掉了,所以他没有能力登录系统;

  如果我们想把beinan这个用户目录定位在/opt/beinan这个目录中,并且不能登录系统;我们应该如下操作

  1.   [root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan  
  2.  
  3.   [root@localhost ~]# passwd beinan  
  4.  

  Changing password for user beinan.

  New password:

  Retype new password:

  passwd: all authentication tokens updated successfully.

  1.   [root@localhost ~]#  
  2.  

  检查用户对ftp家目录有没有权限,权限不是755则修改ftp家目录权限,并且再为用户ftp新建一个目录pub:

  1.   [root@localhost ~]#finger ftp  
  2.  
  3.   Login: ftp Name: FTP User  
  4.  
  5.   Directory: /home/ftp/ Shell: /bin/false  
  6.  
  7.   [root@localhost ~]#ls -l /home/  
  8.  
  9.   drwxr-xr-x 30 chimin chimin 4096 2010-07-29 00:12 chimin  
  10.  
  11.   drwxrwxrwx 3 root root 4096 2010-07-28 19:26 ftp  
  12.  
  13.   [root@localhost ~]#chmod 755 /home/ftp/  
  14.  
  15.   [root@localhost ~]#mkdir /home/ftp/pub; chmod 777 /home/ftp/pub  
  16.  

  其实这还是不够的,还要改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限;

  1.   local_enable=YES 
  2.  
  3.   write_enable=YES 
  4.  
  5.   local_umask=022 
  6.  
  7.   anon_upload_enable=YES 
  8.  
  9.   anon_mkdir_write_enable=YES 
  10.  

  3、如何让匿名用户拥有删除上传文件的功能?

  我们可以通过更改vsftpd.conf文件,加入如下的一行

  1.   anon_other_write_enable=yes 
  2.  

  4、如何实现虚拟路径的功能?

  比如:

  /home/a 映射为 ftp://localhost/a

  /home/b/c 则为 ftp://localhost/c

  其实这个不能说是vsFTPd的内容,其实我们早就接触过了,可能我们没有注意,我们可以通过如下的方法来实现。

  [root@localhost ~]# mount --bind [原有的目录] [新目录]

  比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作

  我们要先在/var/ftp目录中建一个目录

  1.   [root@localhost ~]# mkdir /var/ftp/WinSoft  
  2.  

  然后执行mount命令

  1.   [root@localhost ~]# mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft  
  2.  

  这样就OK了。

  5、打开vsFTP服务器的日志功能;

  把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。

  1.   xferlog_file=/var/log/vsftpd.log  
  2.  

  6、如何定制欢迎信息的功能;

  如何定制欢迎信息,也就是我们登入有些FTP之后,会出现类似:欢迎您来到LinuxSir FTP,在这里,您会得到最真诚的帮助,如果有什么问题和建议,请来信,多谢。

  实现这个并不难,我们可以查看vsftpd.conf文件中,是否有这行。

  1.   dirmessage_enable=YES 
  2.  
  3.   message_file=.message  
  4.  

  如果没有就加上,如果dirmessage_enable=YES前面有#号,就把#号去掉。其实FTP信息默认的就是.message,所以可以不加 message_file= 来指定。自己指定也行,无所谓的事;

  然后我们制定一个.message文件,写上您想要写的东西,比如是.message的内容是如下的:

  --欢迎您来到LinuxSir FTP!

  --在这里,您会得到最真诚的帮助;

  --如果有什么问题和建议,请来信,多谢。

  我们可以用编辑器来写这个.message,我想这个过程就不用说了吧。

  然后我们把.message这个文件复制到各个用户的家目录中。比如我的FTP的一个用户是beinan,这个用户所在的家目录是/opt/beinan

  我们就要把.message放在/opt/beinan这个目录下。如果系统用户ftp,他的目录就是/var/ftp这个目录,这个是默认的,当匿名用户登入时就访问的是/var/ftp这个目录。我们要让匿名用户能看到欢迎信息。就要把.message放在/var/ftp目录中。其它的用户,也无非就是类似的操作。

#p#

  7、硬盘空间有限,如何把帐号ftp默认的家目录更改到别处的功能?

  我的硬盘空间有限,如何把帐号ftp默认的路径/var/ftp更改到别处?或者是,我的linux所有的目录都放在/根分区,因为空间紧张,我能否把ftp这个用户的默认路径放到别的分区??

  对于ftp这个用户的管理,我们应该查看/etc/passwd ,然后修改ftp用户那行;

  ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

  比如我们想把ftp用户的家目录改为/opt/ftp,则要把类似上一行改为

  ftp:x:14:50:FTP User:/opt/ftp:/sbin/nologin

  然后我们要建立ftp用户的新的家目录;

 

  1.   [root@localhost ~]# mkdir /opt/ftp  
  2.  
  3.   [root@localhost ~]# chmod 755 /opt/ftp  
  4.  
  5.   [root@localhost ~]# chown root:root /opt/ftp  
  6.  

  如果默认的ftp磁盘空间紧张,我们其实也可以用虚拟路径映射的方法来解决;也就是mount --bind的办法;看情况吧,哪个适合就是***的方法;

  8、如何让vsFTP服务器限制链接数,以及每个IP***的链接数的功能?

  应该改vsFTPd服务器的配制文件vsftpd.conf,加入下面的两行:

  max_clients=数字

  max_per_ip=数字

  举例:我想让我的vsFTP***支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:

  1.   max_clients=100 
  2.  
  3.   max_per_ip=5 
  4.  

  改好了配制文件,不要忘记启动vsftp服务器。

  9、如何限制传输速度的功能?

  anon_max_rate=数字

  注:这是匿名的速度

  local_max_rate=数字

  注:这是vsFTP服务器上本地用户的速度

  注:这个数字的单位是byte,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024x80=81920

  所以我们要在vsftpd.conf中加入下面的两行

  1.   anon_max_rate=81920 
  2.  
  3.   local_max_rate=81920 
  4.  

  10、如何有选择的把用户限制在家目录中的功能呢?

  我们要自己建一个文件,在/etc目录中或/etc/vsftpd目录中(假如您的vsftpd配置文件都是放在这个目录的话);

  1.   #touch /etc/vsftpd.chroot_list  
  2.  

  以beinan和nanbei这两个用户限制在他们所在的家目录中,而其它的FTP用户不做此限制。

  在vsftpd.chroot_list这个文件中,把beinan和nanbei添上去就行,注意,每个用户占一行。

  beinan

  nanbei

  然后改/etc/vsftpd/vsftpd.conf文件,找如下的两行

  1.   chroot_list_enable=YES 
  2.  
  3.   chroot_list_file=/etc/vsftpd.chroot_list  
  4.  

  如果没有这样的两行,就可以自己添加上去也是一样的。

  设置好后,重新vsFTPD服务器。

  补充一之补充:如何把系统内所有的FTP用户都限制在家目录中呢??经juliaugong兄的提示,我查找了vsFTPd的洋文说明,证明这个选项是一刀切的解决所有的用户都能限制在家目录中

  我们可以通过更改vsftpd.conf文件,加入如下的一行

  1.   chroot_local_user=YES 
  2.  

  改完配制文件,不要忘记重启vsFTPd服务器;

  11、如何实现让绑定IP到vsFTPd的功能?

  如何让绑定IP到vsFTPd?也就是说,如何让用户只能通过某个IP来访问FTP。其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP

  在vsftpd.conf中加一行,以我的局域网为例,请看***帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过192.168.0.2来访问FTP;

  listen_address=192.168.0.2

 

责任编辑:zhaolei 来源: javaeye网
相关推荐

2011-02-21 18:11:27

vsFTPd

2011-02-22 09:08:14

vsFTPd

2011-02-22 09:55:00

vsFTPd

2011-02-22 09:40:42

vsFTPd

2018-02-26 11:25:33

2011-02-22 10:12:07

vsFTPd

2011-03-04 17:38:24

2011-02-22 09:23:21

vsFTPd

2010-02-24 14:20:27

Fedora vsft

2011-03-02 10:51:09

vsftpd

2011-02-22 14:19:28

vsFTPd启动关闭

2011-03-07 09:37:32

Vsftpd启动CentOS

2010-08-25 16:28:04

2011-02-24 09:57:40

vsFTPd启动关闭

2011-03-04 10:03:44

VSFTPD虚拟服务器

2011-02-23 15:32:39

vsftpd

2019-09-04 14:30:54

Nginx功能服务器

2022-08-28 10:47:22

Ubuntu

2011-03-04 10:00:56

Vsftpd数字

2011-03-02 10:57:27

vsFTPd
点赞
收藏

51CTO技术栈公众号