CentOS vsftpd是常用系统,于是我学习研究了CentOS vsftpd,在这里对大家详细介绍下CentOS vsftpd系统应用,希望对大家有用。本地用户经过设置后可以进行ftp访问。
而匿名用户的访问经过了转换,在系统中。匿名用户的用户名为ftp, 系统将其属性设置为 根目录 /var/ftp/, 禁止控制台登陆,也就是,该用户只能进行ftp访问。CentOS vsftpd的执行程序为 /etc/vsftpd,修改 /etc/vsftpd/vsftpd.conf文件中的listen要设置为YES.
CentOS vsftpd有两种开机自启动模式: inet模式和standalone模式,推荐使用standalone模式。在CentOS中已集成了CentOS vsftpd软件。CentOS vsftpd是一个安全高效的FTP服务软件,得到了广泛的应用。
一、CentOS vsftpd安装
在服务中查看是否已安装VSFTPD服务。如没有,下载并安装:rpm -ivh vsftpd-2.0.5-12.el5.i386.rpm
二、设置CentOS vsftpd自启动
chkconfig --level 35 vsftpd on
三、CentOS vsftpd配置
1 打开 /etc/vsftpd/vsftpd.conf文件。将anonymous_enable=YES,改为anonymous_enable=NO
2 打开 /etc/vsftpd/vsftpd.conf文件。添加user_config_dir=/etc/vsftpd/virtual,并建立 virtual目录。在此目录中建立以用户名为文件名的文件,并写入:local_root=[目录],这个目录即是FTP连接时的主目录。
3 限定用户只在自己目录:修改vsftpd.conf文件,取消注 释:chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list在/etc /vsftpd/目录下添加文件chroot_list,加入作为FTP用户的本地用户名。
4 解决用户无法进入目录问题:打开终端,输入:setsebool -P ftpd_disable_trans 1然后重启FTP服务:service vsftpd restart
四、问题:
vsftp登录报错”500 OOPS: cannot change directory:/home/*******”
ftp服务器连接失败,错误提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
当你看到以上提示时,试着在输入以下命令解决
(一、)[root@linux115 vsftpd]#setsebool -P ftpd_disable_trans 1
[root@linux115 vsftpd]#service vsftpd restart
第一行中的-P参数是为了以后不需要每次开机都输入这个命令
(二、)或使用以下解决:
[root@linux115 ~]#/usr/sbin/setsebool -P ftp_home_dir 1
#######################################################################################
2、如果使用setsebool -P ftpd_disable_trans 1
//加-P表示永久性
提示错误:
[root@linux115 vsftpd]# setsebool -P ftpd_disable_trans 1
libsemanage.dbase_llist_set: record not found in the database (No
such file or directory).
libsemanage.dbase_llist_set: could not set record value (No such
file or directory).
Could not change boolean ftpd_disable_trans
Could not change policy booleans
解决方法:
可能直接使用下面这个一条就可以解决了:
[root@linux115 ~]# /usr/sbin/setsebool -P ftp_home_dir 1
再试试,
如果还是不行的话再使用下面完全方式:
[root@linux115 vsftpd]# setsebool allow_ftpd_full_access 1
[root@linux115 vsftpd]# setsebool allow_ftpd_use_cifs 1
[root@linux115 vsftpd]# setsebool allow_ftpd_use_nfs 1
[root@linux115 vsftpd]# setsebool -P ftp_home_dir 1
[root@linux115 vsftpd]# setsebool httpd_enable_ftp_server 1
[root@linux115 vsftpd]# setsebool tftp_anon_write 1
[root@linux115 vsftpd]# service vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
[root@linux115 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,即可解决问题。