2010-05-13 11:24:03
在ubuntu 下 vsftp 服务器建立和设置的步骤总结如下:
1.安装
sudo apt-get install vsftpd
安装完后在etc目录下会有vsftpd.conf文件,在home目录下会有ftp文件夹,如果没有ftp这个文件夹,用 sudo mkdir /home/ftp 新建。
2.设置vsftpd.conf文件
因为ubuntu下不是root登录,所以在etc目录下没有直接打开文件和修改的权限,所以只好用 sudo vi /etc/vsftpd.conf 进行编辑。
ubuntu下使用VI编辑文件必知的常用命令可以参考这里 http://blog.sina.com.cn/s/blog_536405df01009vze.html
下面是我的部分配置
#不允许匿名
anonymous_enable=NO
#接受本地用户
local_enable=YES
write_enable=YES
#本地用户上传文件的umask
local_umask=022
#使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file选项修改
xferlog_enable=YES
#日志使用标准xferlog格式
xferlog_std_format=YES
#login时的欢迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#设置的话将覆盖上面的ftpd_banner设置,用户login时将显示/etc/vsftpd/banner中的内容
banner_file=/etc/vsftpd.banner
#为YES则进入目录时显示此目录下由message_file选项指定的文本文件(,默认为.message)的内容
dirmessage_enable=YES
#本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录(/etc/passwd的第六个字段)中.匿名用户的对应选项是anon_root
local_root=/home/ftp
#设置为YES则下面的控制有效
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
#若为NO,则记录在chroot_list_file选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被 chroot在登录后所在目录中,无法离开.如果为YES,则所记录的用户将不被chroot.这里选择YES.
chroot_local_user=YES
#若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法 login,并且将检察下面的userlist_deny选项
userlist_enable=YES
#若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_deny=NO
#注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将无法login!!
#服务器以standalong模式运行,这样可以进行下面的控制
listen=YES
...
上面用到的三个文件,简单说明下:
/home/ftp是指定ftp所在的目录(这里建议用该默认的目录,不然会出现问题)
vsftpd.banner用于显示欢迎信息的,用sudo vi /etc/vsftpd.banner 然后 编辑 最后:w保存
vsftpd.chroot_list中的用户是不允许浏览主目录之上的其他目录的,建立方法和banner一样
3.添加用户和密码
sudo useradd -d /home/ftp xxx(用户名称)
sudo password xxx(用户名称)
然后输入密码
4.重新启动
sudo service vsftpd restart
正确的话会显示vsftpd start/running, process xxxx
5.ftp客户端
方法一:
输入ftp xxx.xx.xx.xx(服务器ip)
Connected to xxx.xx.xx.xx.
220-welcome
220
Name (xxx.xx.xx.xx:xx):XXX
331 Please specify the password.
Password:
输入用户名和密码后会出现
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
说明登录成功
更多的ftp命令可以参考这里http://forum.ubuntu.org.cn/viewtopic.php?f=70&t=104785&start=0
方法二:
推荐用Filezilla客户断软件!
sudo apt-get install filezilla
6.ftp服务端设置
如果想要对用户权限进行更改 ,配置文件vsftpd.conf,具体内容可以参考这里http://hi.baidu.com/vsgp/blog/item/0daae64589a3852fcffca3e7.html
如果想建立一个目录供上传使用 ,首先建立目录sudo mkdir /home/ftp/xxx,然后更改权限sudo chmod 777 /home/ftp/xxx,如果不更该权限的话客户端上传文件会出错
如果想要建立可读但不能上传文件的目录 ,先建立,然后sudo chmod 755 xxx -R,将目录以及目录下所有文件和文件夹都更改权限,不然客户端不能进入该目录。