今天在配置公司服务器环境的时候遇到点问题来记录下
安装配置
安装 vsftpd
sudo apt-get install vsftpd
修改配置文件 /etc/vsftpd.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #是否允许匿名访问,NO为不允许 anonymous_enable=NO #是否允许本地用户访问,就是linux本机中存在的用户,YES允许 local_enable=YES #去掉下边这句的注释"#"。是否开启写模式,YES为开启 write_enable=YES #是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp,NO的话,白名单失效,和下面一个参数配合使用 userlist_enable=YES #是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能 userlist_deny=NO #指定哪个文件作为userlist文件,我们稍后编辑这个文件 userlist_file=/etc/vsftpd.user_list
#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,这个如果是自己用就直接注释掉chroot"开头的下边这三句吧(为了自己方便),有其他用户的话就打开。 chroot_local_user=YES #是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外 chroot_list_enable=YES #设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录 chroot_list_file=/etc/vsftpd.chroot_list
#设置ftp根目录的位置,这个文件我们稍后自己创建(注意:这个根目录这句话必须写!) local_root=/home/myftp
|
创建下用户
useradd ftp
修改下密码
passwd ftp
然后在 /etc/vsftpd.user_list
增加该用户名
遇到的问题
530 Permission denied

简单粗暴
删除 /etc/pam.d/
下面的vsftpd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 在网上看到这问题原因主要是说服务器系统是64位的。 这种情况只需要把 /etc/pam.d/下面的vsftpd里面的/lib 修改为/lib64
cd /etc/pam.d
vi vsftpd
然后保存退出
service vsftpd restart就ok
32 位的系统
只需要把/etc/pam.d/vsftpd文件中的
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
这一句注释掉就OK了。前面加一个#好
重启vsftpd服务。问题解决。
|
vsftpd: refusing to run with writable root
vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES