作者: 木頭    来源: PHPChina 开源社区门户
1、vsftpd配置参数详细整理 
#接受匿名用户 
anonymous_enable=YES 
#匿名用户login时不询问口令 
no_anon_password=YES 
#匿名用户主目录 
anon_root=(none) 
#接受本地用户 
local_enable=YES 
#本地用户主目录 
local_root=(none) 
#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录 
deny_email_enable=YES 
#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录 
check_shell=YES 
#若启用此选项,userlist_deny选项才被启动 
userlist_enable=YES 
#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
userlist_deny=NO 
#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下) 
passwd_chroot_enable=NO 
#定义匿名登入的使用者名称。默认值为ftp。 
ftp_username=FTP

#################)用你的新数据库创建一个PAM文件 
请参考范例vsftpd.pam,它包含2行: 
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login 
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login

这是告诉PAM用新的数据库去验证用户。把这个PAM文件拷贝到PAM目录,一般是/etc/pam.d 
cp vsftpd.pam /etc/pam.d/ftp

3)为虚拟用户设置home目录
useradd -d /home/ftpsite virtual 
ls -ld /home/ftpsite 
(which should give): 
drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

我们已经创建了一个名叫"virtual"的用户,home目录是"/home/ftpsite". 
我们拷贝一些东西到这个下载目录: 
cp /etc/hosts /home/ftpsite 
chown virtual.virtual /home/ftpsite/hosts

4)创建你的vsftpd.conf配置文件
请参考这个目录下的例子。让我们一行行地看一看这些配置: 
anonymous_enable=NO 
local_enable=YES

安全起见,屏蔽了匿名用户,只启用了非匿名用户(即虚拟用户使用的账号)

write_enable=NO 
anon_upload_enable=NO 
anon_mkdir_write_enable=NO 
anon_other_write_enable=NO

为了安全请确认这几个配置,这将关闭写的权限。

chroot_local_user=YES

这将把虚拟用户锁定在我们在以上设置的/home/ftpsite目录内。

guest_enable=YES 
guest_username=virtual

guest_enable非常重要-它激活了虚拟用户!而guest_username说明所有的虚拟用户都对应我们在上面设置的真实用户:“virtual". 
这同时确定了虚拟用户在文件系统中的位置,也就是说,虚拟用户的home目录即"virtual"用户的home目录:/home/ftpsite。

listen=YES 
listen_port=10021

这让VSFTPD以独立模式(standalone)运行,而不是从inetd方式启动。也就是说,你运行VSFTPD可执行文件就启动了FTP服务。
同时也让VSFTPD启用非标准端口10021来监听FTP请求(FTP一般使用21端口)。

pasv_min_port=30000 
pasv_max_port=30999

这设定了被动模式的FTP请求端口。当你配置了一个防火墙的时候,这个配置就很好用。
拷贝范例配置文件到/etc 
cp vsftpd.conf /etc/ 
(daidong注:也可能是/etc/vsftpd)

5)启动VSFTPD 
到VSFTPD二进制文件所在的目录,输入: 
./vsftpd

如果一切正常,这个命令将生效。否则,你将会看到一些错误信息的反馈。

6)测试
启动另一个会话。(或者ctrl-z,再输入"bg",让VSFTPD在后台运行)。
这是一个FTP会话的例子:

ftp localhost 10021 
Connected to localhost (127.0.0.1). 
220 ready, dude (vsFTPd 1.1.0: beat me, break me) 
Name (localhost:chris): tom 
331 Please specify the password. 
Password: 
230 Login successful. Have fun. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp> pwd 
257 "/" 
ftp> ls 
227 Entering Passive Mode (127,0,0,1,117,135) 
150 Here comes the directory listing. 
226 Transfer done (but failed to open directory). 
ftp> size hosts 
213 147 
ftp>

注释:
密码是"foo" 
出现”failed to open directory“的话,别担心。这是因为/home/ftpsite目录不容许被任意浏览。
(我们可以更改anon_world_readable_only=NO以消除告警,但为了安全,还是保留这个配置)。
我们能通过size命令看到我们已经访问了被我们拷贝到这里的"hosts"文件。

vsftpd.conf 
anonymous_enable=NO 
local_enable=YES 
write_enable=NO 
anon_upload_enable=NO 
anon_mkdir_write_enable=NO 
anon_other_write_enable=NO 
chroot_local_user=YES 
guest_enable=YES 
guest_username=virtual 
listen=YES 
listen_port=10021 
pasv_min_port=30000 
pasv_max_port=30999 
虚拟用户2 
=============== 
这个例子将演示如何扩展“VIRTUAL_USERS”那个范例,从而实现更复杂一点的配置。
让我们假定我们需要2种不同的虚拟用户:一种只能浏览并下载资源,另一种能上传文件并浏览站内资源。
要激活这个设置,我们将使用VSFTPD的强大的“单个用户配置”功能(是V1.1.0后出现的新功能)。
在前一个虚拟用户范例中,我们创建了2个用户-tom和fred. 
我们将实现fred有写权限以上传新文件,同时tom只能下载文件。

1)激活单个用户配置功能。
要激活这个功能,需要增加以下配置行到配置文件:

user_config_dir=/etc/vsftpd_user_conf

并且创建目录:

mkdir /etc/vsftpd_user_conf

2)授予tom读取所有文件和目录的权限
在上一个例子的最后,我们注意到虚拟用户只能浏览所有的完全可读属性的目录和文件。我们使/home/ftpsite完全可读,而且被上传的文件也
赋予了完全可读的权限(daidong注:意思是说这样虚拟用户就能读取所有的文件了)。但实现这个目的的另一个方法是授权tom能下载那些非完全可读的文件。
对于tom,他的配置文件中需要修改一个设置: 
anon_world_readable_only:

设为"anon_world_readable_only=NO" > /etc/vsftpd_user_conf/tom 
(daidong注:既把默认配置修改了anon_world_readable_only后,复制到/etc/vsftpd_user_conf下,名字为tom)

验证一下结果-以tom登录,“ls”将返回一个目录列表。如果以fred登录将不会如此。
注意:重启VSFTPD以启用配置文件/etc/vsftpd.conf(高级用户也可以发送SIGHUP给VSFTPD的监听进程).

3)授予freg读取所有文件/目录并创建新文件/目录的权限,但让他不能对已存在的文件/目录进行操作.

echo "anon_world_readable_only=NO" > /etc/vsftpd_user_conf/fred 
echo "write_enable=YES" >> /etc/vsftpd_user_conf/fred 
echo "anon_upload_enable=YES" >> /etc/vsftpd_user_conf/fred

验证一下-以tom登录,将不能上传,而fred就可以. 
试图删除一个文件--噢,你们俩都不行!

vsftpd配置手册(实用)的更多相关文章

  1. linux vsftpd 配置

    linux 使用vsftpd 实现ftp上传 安装 vsftpd yum install -y vsftpd 配置vsftpd 备份配置文件后 将/etc/vsftpd/vsftpd.conf内容替换 ...

  2. Ubuntu 用vsftpd 配置FTP服务器

    网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久,其实弄出来能用不就这么点内容吗... 本文在Ubuntu Server 14.04 amd64系统测试. Ma ...

  3. 运维之Centos apache vsftpd配置

    安装Apache yum install httpd -y chkconfig httpd on service httpd start 配置一下iptables iptables -I INPUT ...

  4. [转]Ubuntu 用vsftpd 配置FTP服务器

    FROM : http://www.cnblogs.com/CSGrandeur/p/3754126.html 网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久 ...

  5. vsftpd配置参数详细整理

    vsftpd配置参数详细整理  -|白王斧三又干一 vsftpd配置参数详细整理     -|白王斧三又干一 发表于 2005-10-23 20:30:00   1.vsftpd配置参数详细整理#接受 ...

  6. Varnish缓存服务器的搭建配置手册

    Varnish缓存服务器的搭建配置手册 1.Varnish官方环境依赖提示 Installing Varnish Cache is as simple as enabling our package ...

  7. Ubuntu_10.04下Hadoop-0.20.2集群配置手册

    Ubuntu_10.04下Hadoop-0.20.2集群配置手册 一.软硬件环境的准备 下面的文章来自hadoopor.com,我先交待一下我自己的环境: 两台机器,每台机器上面两个虚机(vmware ...

  8. nginx1.9.4 +php 5.5.29+yii2.0配置手册

    nginx1.9.4 +php 5.5.29+yii2.0配置手册 目录 一.    php5.5.29安装配置    2 二.    nginx1.9.4安装配置    2 三.    yii2.0 ...

  9. QC邮件转发工具Mail Direct安装配置手册

    QC邮件转发工具Mail Direct安装配置手册 2010-06-11 10:00:56| 分类: 软件测试 | 标签: |举报 |字号大中小 订阅 QC邮件转发工具安装配置手册 由于公司没有独立的 ...

随机推荐

  1. DOM EVENT

    属性 此事件发生在何时... onabort 图像的加载被中断. onblur 元素失去焦点. onchange 域的内容被改变. onclick 当用户点击某个对象时调用的事件句柄. ondblcl ...

  2. EditPlus 4.3.2555 中文版已经发布

    新的版本修复了之前版本出现的多行文本缩进调整的问题. 下载连接在页面左上角!

  3. python yield yield from

    1.可迭代对象 具备可迭代的能力,即enumerable,在python中指的是可以通过for-in去逐个访问元素的一些对象,比如元组tuple,列表list,字符串string,文件对象file等. ...

  4. 数据仓库基础(十一)Informatica小技巧(2)

    本文转载自:http://www.cnblogs.com/evencao/p/3152384.html 1.User shortcuts:shortcuts能实现快捷方式的复用.快捷方式可以根据源的变 ...

  5. pythonl类继承例子

    #coding=utf-8 class Person(object):    def __init__(self,name,age):        self.name=name        sel ...

  6. 20165207 Exp4 恶意代码分析

    目录 1.实验内容 1.1.系统运行监控 1.1.1.使用命令行创建计划任务 1.1.2.使用命令行借助批处理文件创建计划任务 1.1.3.分析netstat计划任务的最终结果 1.1.4.安装配置s ...

  7. yum安装时提示app is currently holding the yum lock; waiting for it to exit

    yum安装时出现下面情况 可能是yum升级一些文件时,出现这种情况 解决方法: #rm -f /var/run/yum.pid 强制关掉yun进程

  8. mysql函数之四:concat() mysql 多个字段拼接

    语法: COUNT(DISTINCT expr ,[expr ...]) 函数使用说明:返回不同的非NULL 值数目.若找不到匹配的项,则COUNT(DISTINCT) 返回 0 Mysql的查询结果 ...

  9. Linux基础命令---bc

    bc bc是一种算数语言,其语法和c语言类似,可以交互执行.通过命令行选项可以获得一个标准的数学库.如果请求,在处理任何文件之前定义数学库.BC从处理所有文件的代码开始.命令行中列出的文件按所列顺序排 ...

  10. iOS获取本地ip和端口

    #include <arpa/inet.h> #include <ifaddrs.h> #include <net/if.h> #define IOS_CELLUL ...