转载:http://zyjustin9.iteye.com/blog/2178943
一.安装
1.用apt-get工具安装vsftpd:
- $ sudo apt-get install vsftpd
2.检查FTP端口是否已经打开
- $ netstat -tnl
或者直接在浏览器里输入“ftp://服务器IP”
开启、停止、重启vsftpd服务的命令:
- service vsftpd start | stop | restart
二.配置
1.修改配置文件
- $ sudo vi /etc/vsftpd.conf
主要配置:
- listen=YES # 服务器监听
- local_enable=YES # 是否允许本地用户访问
- write_enable=YES # 是否允许上传文件,不开启会报 550 permission denied
- anonymous_enable=NO # 匿名访问允许,默认不要开启,
- #anon_upload_enable=YES # 匿名上传允许,默认是NO
- #anon_mkdir_write_enable=YES # 匿名创建文件夹允许
用户访问目录的权限设置:
在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。
- chroot_local_user=YES # 用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
- chroot_list_enable=YES # 设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
- chroot_list_file=/etc/vsftpd.chroot_list
- #禁用的列表名单,格式为一行一个用户,用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
通过搭配能实现以下几种效果:
- (1).当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
- (2).当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
- (3).当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
- (4).当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
其他配置解释:
- local_umask=022 # FTP上本地的文件权限,默认是077
- dirmessage_enable=YES # 进入文件夹允许
- xferlog_enable=YES # ftp 日志记录允许
- connect_from_port_20=YES # 启用20号端口作为数据传送的端口
- xferlog_enable=yes # 激活上传和下传的日志
- xferlog_std_format=yes # 使用标准的日志格式
- ftpd_banner=XXXXX # 欢迎信息
相关链接:
vsftpd配置文件详解
2.重启vsftpd服务
- $sudo /etc/init.d/vsftpd restart
- 或者
- $ sudo service vsftpd restart
注:修改配置文件后一定要重启服务才能生效
三.FTP增加删除用户
1.增加用户
#创建目录
- mkdir -p /home/test
#创建用户
- sudo useradd -g ftp -d /home/test -m test
(注:g:用户所在的组 d:表示创建用户的自己目录的位置给予指定 m:不建立默认的自家目录,也就是说在/home下没有自己的目录)
#设置用户口令
- sudo passwd test123
编辑/etc/vsftpd.chroot_list文件,将ftp的帐户名添加进去,保存退出
重新启动vsftpd:
- $ sudo service vsftpd restart
注:修改用户权限文件vsftpf.chroot_list文件后一定要重启服务才能生效
2.删除用户
- $ sudo userdel test
四.卸载
sudo apt-get remove --purge vsftpd
(--purge 选项表示彻底删除改软件和相关文件)