Chinaunix首页 | 论坛 | 博客
  • 博客访问: 232872
  • 博文数量: 40
  • 博客积分: 2025
  • 博客等级: 大尉
  • 技术积分: 531
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-25 17:47
文章分类

全部博文(40)

文章存档

2010年(8)

2009年(32)

我的朋友

分类: LINUX

2009-09-25 19:11:48

作者:good bai    

说明:本文下面操作的默认系统为fedora,在fedora11测试通过。


1、vsFTPd,目前常用FTP服务器套件;
 vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握,也然最主要的是会用;

目前在开源操作系统中常用的FTPD套件主要有ProFTPD、PureFTPd和wuftpd等;至于哪个FTP服务器套件更好,哪个是你最熟悉的,哪个就是最好的;

2、ftp 用户管理解说;
 FTP服务器对用户的管理,在默认的情况下是根据 /etc/passwd及/etc/group 来进行的,所以我们一定要了解Linux系统用户和用户组的管理,用户和用户组的管理是一切应用的的基础,有的弟兄不想去了解基础的东西,就想一步成架好 各种服务器,事实证明这种学习方法是最不明智的;虽然在您可能在几分钟启动了ftp服务器,但遇到问题时,您不一定能知道是哪里出错;所以基础还是极为重 要的;

3、vsFTPd的安装;
 如果您用的是Fedora 或Redhat 系统,可以用下面的命令在线安装;
 [root@localhost ~]# yum install vsftpd
 在Fedora/Redhat/CentOS中vsFTPd 服务器的启动和关闭:

在Fedora/Redhat/CentOS中,也可以用下面的方法来启动vsFTPd;当然也要用到root权限;
 [root@localhost beinan]# /etc/init.d/vsftpd start

重新启动vsFTPd用下面的命令;
 [root@localhost beinan]# /etc/init.d/vsftpd restart

关掉vsFTPd服务器,应该用下面的命令;
 [root@localhost beinan]# /etc/init.d/vsftpd stop

5、vsFTPd的服务器和防火墙及SELINUX的关系;(重要)

我在论坛上看到有些弟兄说vsFTPd服务器启动正常,但却不能访问或用户不能上传文件,我感觉应该是防火墙或SELINUX的事;可能FTPD服 务器被防火墙或SELINUX的安全机制防住了。所以您必须要让防火墙通过ftp,当然也要让SELINUX通过ftp服务器才行;
6、500 OOPS: vsftpd: refusing to run with writable anonymous root

如果我们已经把vsFTPd服务器启动好了,但登录测试是会出现类似下面的提示;
 500 OOPS: vsftpd: refusing to run with writable anonymous root

这表示ftp用户的家目录的权限不对,应该改过才对;

修正这个错误,应该用下面的办法;
 [root@localhost ~]# chown  root:root /var/ftp
 [root@localhost ~]# chmod  755 /var/ftp
 
7、关于vsFTPd服务器的一些常用功能的实现;
7.1、关于匿名上传下载的实现;

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

首先:我们要改一下vsftpd.conf,确保有以下几行;
 anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
7.2、关于添加本地用户及打开读写权限示例;

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

如果我们想把beinan这个用户目录定位在/opt/beinan这个目录中,并且不能登录系统;我们应该如下操作
 [root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan
[root@localhost ~]# passwd beinan

其实这还是不够的,还要改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限;
 local_enable=YES
write_enable=YES
local_umask=022
7.3、如何实现虚拟路径?

比如:
 /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目录中建一个目录
 [root@localhost ~]# mkdir /var/ftp/WinSoft

然后执行mount命令
 [root@localhost ~]# mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft

这样就OK了。
几点注意
 1 ftp用户的根目录不可以设为777模式,如果需要一个所有人都可以写的目录,可以在主目录下新建目录实现。
 2 开启你们用户可写设置后(anon_mkdir_write_enable=YES),匿名用户任没有重新文件的权限,可以通过增加下面配置行实现。
 anon_mkdir_write_enable=YES

参考文档:
  vsFTPd 服务器初学者指南
阅读(1310) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~