linux下安装vsftp
Linux下安装VSFTPD可是一个技术活,但是掌握了方法之后就一切变的很简单了。本文以CentOS 6.3为配置环境,进行vsftpd的安装。命令yum install vsftpd
- 下载VSFTPD
Linux 下传统的安装软件方法是下载tar.gz安装包,或者RPM安装包,再经过解压之后进行编译,或者用RPM -i命令安装。过程比较繁琐,其实还有个更为简捷的方法就是使用yum命令在线安装,支持几乎所有常见的软件,它的好处是读取多个镜像服务器列表中的最新 版本,一切傻瓜化操作。
- yum命令的好处已经体现出来,当输入完安装命令之后,首先从服务器读取资源,然后选择安装包,最后由用户决定是否安装,这里我们按y确认安装。当出现“Complete!”时意味着安装完成。
值得注意的是,在Linux中,系统对于大小写严格区分,比如abc和ABC是完全不相同的字符,要特别注意。
- 配置Vsftpd
安装完之后我们要对它进行配置,才能正常使用。编辑vsftpd的配置文件vi /etc/vsftpd/vsftpd.conf
vi编辑器中的搜索使命是斜杠“/”,然后输入要查找的内容,回车确定。以下是要更改的选项
anonymous_enable=NO #禁止匿名访问
ascii_upload_enable #允许使用ascii码上传
ascii_download_enable #允许使用ascii码下载
userlist_deny=NO #(这条需手动添加到最后)使用FTP用户表,表里没有的用户需要添加才能登录
设置完毕之后,ESC,冒号wq回车。启动vsftpd服务/etc/init.d/vsftpd start,看到[确定]即为启动成功。
只启动完还不行,还要给它添加开机自动启动,chkconfig vsftpd on
- 添加启动是没有任何提示的,如果不确定是否已经加入了开机启动项可以运行chkconfig –list进行查看。
安 装和配置完之后要对它添加用户才能使用,这里以添加用户baidu为例。useradd baidu回车,然后为baidu这个用户添加密码passwd baidu,会提示输入两次密码。然后我们将baidu这个用户加入到FTP用户表里。vi /etc/vsftpd/user_list,将里面其它初始用户全部删除,加入刚刚我们新建的baidu用户。
- 5
linux关闭selinux
然后reboot重启Linux服务器。
本人使用FlashFXP客户端软件连接,直到出现用户主目录(一般位于/home/用户名),则vsftpd成功安装并运行。然后就能进行文件的上传和下载了。
为用户指定访问目录
如何给VSFTP增加用户,只能访问指定目录
1 增加组 groupadd ftpgroup
2 修改/etc/vsftpd/vsftpd.conf
将底下三行
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改为
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
3 增加用户 useradd-g ftpgroup -d /home/www/default/wordpress/wp-content/themes/WPortal-Gov_6 -M songbo
4 设置用户口令 passwd 333333333( passwd tom,修改tom用户密码。)
5 编辑文件: /etc/vsftpd/chroot_list
内容为ftp用户名,每个用户占一行,如:
peter
john
6 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
第一次设置2~5,以后每增加一个用户,只需执行3~5即可.
附录:遇到的问题
vsftp不能上传下载问题解决
我的系统:64位RHEL6
1、问题:vsftp登录报错”500 OOPS: cannot change directory:/home/*******”
解决:
A、首先检查权限问题;
B、ftp服务器连接失败,错误提示:
500 OOPS:cannot change directory:/home/******* 500 OOPS: child died
当你看到以上提示时,试着在输入以下命令解决:
(1) [root@www.codesky.net vsftpd]#setsebool -P ftpd_disable_trans 1
[root@ www.codesky.net vsftpd]#service vsftpd restart
或使用以下解决:
(2) [root@www.codesky.net ~]#/usr/sbin/setsebool -P ftp_home_dir 1 ###################################################################################2、如果使用setsebool -P ftpd_disable_trans 1//加-P表示永久性 提示错误:
[root@ www.codesky.net vsftpd]#setsebool -P ftpd_disable_trans 1
libsemanage.dbase_llist_set: recordnot found in the database (No such file or directory). libsemanage.dbase_llist_set: could not set record value (No such file ordirectory).
Could not change booleanftpd_disable_trans Could not change policy booleans
解决方法: 可能直接使用下面这个一条就可以解决了:
[root@ www.codesky.net ~]#/usr/sbin/setsebool -P ftp_home_dir 1
再试试,如果还是不行的话再使用下面完全方式:
setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
setsebool -P ftp_home_dir 1
setsebool httpd_enable_ftp_server 1
setsebool tftp_anon_write 1
service vsftpd restart
关闭 vsftpd:[确定] 为 vsftpd 启动 vsftpd:[确定]
[root@ www.codesky.net vsftpd]#getsebool -a | grep ftp
allow_ftpd_anon_write -->off
allow_ftpd_full_access -->on
allow_ftpd_use_cifs --> on
allow_ftpd_use_nfs --> on
ftp_home_dir --> on
ftpd_connect_db --> off
httpd_enable_ftp_server -->on
sftpd_anon_write --> off
sftpd_enable_homedirs -->off
sftpd_full_access --> off
sftpd_write_ssh_home -->off
tftp_anon_write --> on
重启vsftpd,即可解决问题。