1.利用yum 安装httpd和vsftpd服务器
2.查看httpd服务器的配置文件。
打开 vim /etc/httpd/conf/httpd.conf 配置文件。图中显示的是httpd服务器默认访问的主目录。
3.查看并修改vsftpd服务器的配置文件
打开vim /etc/vsftpd/vsftpd.conf 配置文件。图中是新加入到配置文件中的内容,注意:我们可以把local_root的木设置成和httpd服务器访问的主目录一致,
这样我们利用ftp服务上传一张图片到主目录下,则可以利用http来访问该图片。
再在/var/www/html主目录下,新建一个myFolder目录。使用命令chmod -R 777 /var/www/html/myFolder命令修改咱们新建目录的权限,这样我们才可以使用ftp服务上传、删除、下载、创建文件。否则用vsftp上传时,会出现553 Could not create file错误。
4.以上配置好了后,还是不能上传等操作。尝试打开vim /etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled,然后重启系统。
5.解析vsftpd.conf文件中的chroot_local_user,chroot_list_enable,chroot_list_file这三个选项。
chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
chroot_list_enable #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值
例子:
假设有ftp1, ftp2两个ftp用户, 计划让ftp1用户锁定在主目录下,不允许切换到其他目录, 但是允许ftp2用户自由切换目录,则可以分如下两种方式实现:
方式一,令:
chroot_local_user=YES
chroot_list_enable=YES
/etc/vsftpd/chroot_list名单列表为:ftp2。用echo “ftp2” >>/etc/vsftpd/chroot_list文件即可。
解释:chroot_local_user=YES将所有用户限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=YES,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。
方式二,令:
chroot_local_user=NO
chroot_list_enable=YES
/etc/vsftpd/chroot_list名单列表为:ftp1
解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。
对于chroot_local_user和chroot_list_enable的组合还有这样两种情况:
chroot_local_user=YES
chroot_list_enable=NO
和
chroot_local_user=NO
chroot_list_enable=NO
当chroot_list_enable=NO时,就不再启用chroot_list_file,此时就是单纯的把全部用户限定或不限定在主目录下了!
补充:
关于chroot_local_user的设置,通常我们倾向于:全局禁止跳出主目录,使用chroot_list添加例外!即:使用Case 1的设置!
匿名用户默认的root是/var/ftp