1.安装vsftpd
直接从源里面安装
sudo apt-get install vsftpd

安装完毕后或许会自动生成一个帐户”ftp”,/home下也会增加一个文件夹。
如果没有生成这个用户的话可以手动来,生成了就不用了:
代码:
sudo useradd -m ftp
sudo passwd ftp

有”ftp”帐户后还要更改权限
代码:
sudo chmod 777 /home/ftp

在这个目录下我建立一个文件夹专门保存需要共享的内容

2.配置文件
通过sudo gedit /etc/vsftpd.conf修改。
配置文件比较简单,如下
代码:
#独立模式启动
listen=YES

#同时允许4客户端连入,每个IP最多5个进程
max_clients=200
max_per_ip=4

#不允许匿名用户访问,允许本地(系统)用户登录
anonymous_enable=NO
local_enable=YES
write_enable=NO

#是否采用端口20进行数据传输
connect_from_port_20=YES

#生成日志
xferlog_enable=YES

#指定登录转向目录
local_root=/home/ftp/ftp

这样,在同局域网的电脑上,用我的IP地址,用帐号”ftp”和对应密码就可以登录了,密码是第一步里面passwd那句指定的。

对了,更改配置后不要忘了重启ftp服务
代码:
sudo /etc/init.d/vsftpd restart

此外还有开启关闭服务的命令
代码:
sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop

2 /etc/vsftpd.conf 文件配置

中文资料地址:http://fanqiang.chinaunix.net/app/ftp/2005-06-24/3337.shtml

主要卡壳的地方是这2个配置:
userlist_enable=yes
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list


#chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
这样设置后,vsftpd.user_list文件中列出的用户才有权限来访问ftp,vsftpd.chroot_list文件中列出的用户是无法随意进入系统的其他目录的,只能在自家目录下活动。

/etc/vsftpd.user_list文件和/etc/vsftpd.chroot_list文件是需要手动建立的,文件名和路径都随意,里面写入需要开放权限或限制的用户名,每行一个。

注意点:

1. 如果chroot_local_user设置激活(设为YES),则vsftpd.chroot_list文件中列出的用户是可以自由出入整个文件系统目录的,不止是自家目录。也不管chroot_list_enable是否被激活了。

2. 如果chroot_local_user设置未激活(设为NO或注释掉),同时chroot_list_enable=YES,则vsftpd.chroot_list文件中列出的用户只能在自家目录下活动,否则还是可以自由出入其他一些目录的。[这才达到我的目的,因为这个设置,我搞了好久,都是相信别人的配置和说明惹的弯路阿]

3 Vsftpd虚拟路径设置

要解决的问题

假定我们的ftp的默认目录是/home/ftp,我们想把/media/hda5/download文件夹,映射到/home/ftp目录中

解决方法 :

首先在/home/ftp目录中建一个目录

sudo mkdir /home/ftp/virtual

然后执行mount命令

sudo mount --bind /media/hda5/download /home/ftp/virtual

这样就OK了^_^。

1. 查看ftp的根目录可以用这个命令 finger ftp

2. 启动ftp: sudo vsftpd

3. 关闭ftp: pkill vsftpd

4. 重启ftp:sudo /etc/init.d/vsftpd restart

5. 查看vsftpd是否启动了可以用 pgrep vsftpd 或者列出所有进程 ps -d

6. 查看ftp默认的根目录: more /etc/passwd | grep ftp

7. 修改ftp默认的根目录: gedit /etc/passwd ,把其中的ftp项修改成自己需要的. vi打开文件,/为查找命令

8. 赋予那个组: sudo chown root:root ftp , ftp为目录