1、以管理员(root)身份执行以下命令
2、设置开机启动vsftpd ftp服务
3、启动vsftpd服务
管理vsftpd相关命令:
停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart
配置防火墙打开/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
在REJECT行之前添加如下代码
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存和关闭文件,重启防火墙
配置vsftpd服务器默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。
vi /etc/vsftpd/vsftpd.conf
添加ftp用户下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
1、修改/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、增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
4、设置用户口令
5、编辑文件chroot_list:
vi /etc/vsftpd/chroot_list
内容为ftp用户名,每个用户占一行,如:
peter
john
6、重新启动vsftpd
另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
出现的错误
1、500 OOPS: cannot change directory
解决方法:
在终端输入命令:
setsebool -P ftpd_disable_trans 1
service vsftpd restart
就OK了!
原因:这是因为服务器开启了selinux,这限制了FTP的登录。
vsftpd相关配置文件介绍:
/etc/vsftpd/vsftpd.conf #vsftpd的主配置文件
vsftpd.conf文件设置值的说明:
anonymous_enable=YES #允许匿名用户登陆
local_enable=YES #允许本地用户登陆
write_enable=YES #允许用户上传
local_umask=022
#默认情况下上传的文件夹权限为777,文件的权限为666,022这个值的意思就是在默认权限的基础上减去022,即把文件可写的权限给去除掉,这样别人就只能读取文件,而不能修改文件
anno_upload_enable=YES #允许匿名用户上传,默认被注释掉
anno_mkdir_write_enable=YES
#允许匿名用户创建文件夹,默认被注释掉
dirmessage_enable=YES
#当用户进入某个目录时,会显示该目录需要注意的内容,默认文件为.message
xferlog_enable=YES #开启客户端上传和下载的日志记录
connect_from_port_20=YES #FTP数据通道端口号
xferlog_std_enable=YES #日志采用标准格式
pam_service_name=vsftpd
#用户的认证文件为vsftpd
userlist_enable=YES
#可以用于检测userlist_file文件中的用户是否可以访问服务器
listen=YES #工作在独立模式下
tcp_wrappers=YES #linux自带的安全保护程序