一。检查Linux中vsftpd的安装情况。
rpm -qa|grep vsftp
二。将系统中的SELinux关闭,然后重新启动电脑
关闭SELinux的方法:
修改/etc/selinux/config文件中的SELINUX=”” 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
注:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
setsebool ftpd_disable_trans 1
三。建立用户和指定目录
#useradd -d /var/www/html/ls syq
#passwd syq
建立用户syq,并指定其ftp目录为ls
修改目录权限:
chown –R syq /var/www/html/ls
chgrp –R syq /var/www/html/ls
四。修改vsftpd.conf配置文件
将anonymous_enable改为NO,阻止匿名上传
将chroot_list_enable和chroot_list_file的注释去掉,阻止用户访问上级目录
五。在/etc/vsftpd下建立chroot_list文件
建立完成后,在其中添加用户syq只允许访问指定目录。
六。启动或是重启ftp服务。
#service vsftpd restart(start)
启动成功后,就可以访问ftp服务了。
注:配置文件中的解释
anonymous_enable=YES 开启匿名用户登录
local_enable=YES 开启本地用户登录
write_enable=YES 开启写权限以便上传
local_umask=022设置上传后文件为user=rwx, group=, other=
这样,用户上传文件后,是不能删除和修改了。因为用户属于group组。
解决方法是,设置local_umask=002。
最终文件权限是777-文件夹掩码-local_umask掩码
anon_upload_enable=YES 开启匿名用户上传权限
统一匿名上传用户上传的文件的属性
chown_uploads=YES
chown_username=ftp
设定chroot配置,禁止特定用户访问上一级目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES这个选项如果是YES,那/etc/vsftpd/user_list中的用户将被禁止访问ftp。如果是NO,则只有user_list里面的用户才能访问ftp