好了,废话不多说。上头下来个需求,让我给别人开个ftp账户,只能访问项目的目录,不能访问项目外的目录,就算cd切换目录也不行。
开始:
第一步;安装ftp,我用的是centos7,只需敲入命令
yum install vsftpd
chkconfig vsftpd on #设置开机启动
第二步配置 vsftpd.conf
做这一步,先备份好配置 cp vsftpd.conf vsftpd.conf_bak,然后修改下面3行代码,将注释去掉
为了防止报错,在文末加一行
allow_writeable_chroot=YES
如果不加上面一行,会出现如下截图:
然后再新建chroot_list文件。
实现方法是有2种思路的;
第一种:
chroot_local_user=YES #设置是否锁定本地用户在自己的主目录中,(登录后无法cd到父目录或同级目录中)
chroot_list_enable=YES #设置是否将用户锁定在自己的主目录中
chroot_list_file=/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
chroot_list_file=/etc/vsftpd/chroot_list
解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。
配置好后
重启vsftp : service vsftpd restart #重启vsftpd
第三步:
useradd -d /home/www -m /home/www 用户 ##-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
passwd 用户 #修改用户名
最后:
chown -R ftp用户名:root 项目目录
我的是: chown -R test:root /home/ftptest/
我们来测试一下:
还可以这样测试
当然你也可以在浏览器输入ftp://XXXXXX
至此,大功搞成!