博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu配置vsftpd记录
阅读量:6293 次
发布时间:2019-06-22

本文共 1480 字,大约阅读时间需要 4 分钟。

基本上,我是按照来做的,当然中间还参考了一些别的教程,最终虽然跑起来了,但不完全合我的意,这玩意在windows上玩serverU和filezilla简单爆了,到linux上肿么就这么复杂~~~

基本步骤:安装》配置》添加(系统用户)》添加组》设置目录权限

 

如果按照教程跑起来了,你的/etc目录下最终会有这几个配置文件:

1,vsftpd.conf 主配置文件

2,vsftpd.allowed_users 把userlist_enable开关打开后,引入的配置文件。配置允许该文件里的用户登录,【注:该教程用的是vsftpd.userlist,但配置文件中的是vsftpd.allowed_users,我就保持了配置文件的名字】;

3,sftd.chroot_list 把chroot_list_enable开关打开后,引入的配置文件。配置允许该文件里的用户登录成功后能跳到别的目录去(所以不能跳到别的目录,就叫jailed了);

 

要想跑起来注意几点:

1,vsftpd安装后默认的文件夹是/srv/ftp;

2,你在本地 ftp localhost 然后用用户名密码登录成功,却发现远程登录不成功,那么(防火墙的事你自己搞定)在ftp客户端上自己设置一下传输模式为“主动模式”(pasv);

3,/srv/ftp的目录默认是没有上传文件的权限的,暂时不要去chmod它,会出问题,只有建了一个有完全权限的子文件夹(文后已经解决了这个问题);

4,chroot的问题,即允许登录用户跳到根目录外的目录,下面单独来讲这个问题。

 

如果你的(ftp)用户的根目录(比如你没有指向默认目录)有写权限,那么该用户登录的时候会得到一个“500 OOPS: vsftpd: refusing to run with writable root inside chroot ()”错误。

1,这时你就需要把这个用户添加到上述提到的第二个配置文件vsftpd.chroot_list里面去,再测试登录,应该会成功,这不是chroot的目的,只是客观上解决了上面这个500错误,而一旦你这么做了,该用户就能访问这台电脑的所有目录了,这不是你要的吧。。。(图1)

(图1)/srv/ftp/upload是我设置的该用户的根目录,但是chroot后显然其它目录也对用户可见了

2,如果你把该用户的根目录指到ftp根目录去(因为对ftp根目录而言,该用户属于other组,不具有写权限),没问题。可这也不是你要的吧,我们就来测试下:

a. 新建一个/home/admin的文件夹(mkdir),

b. 把它定义成admin这个ftp用户的根目录(usermod),

c. 并且设为admin为其拥有者(chown),

d. 把admin用户从chroot_list文件中移除,

e. 然后登录ftp,500错误如愿出现 ,(图2)

f. 现在把home/admin目录的写权限去掉(555),成功了。(图3)

 

(图2)

(图3)

这个问题,我尝试失败了。。。

 

所以我才选了上面提到的别扭的解决方案是:

指向不可写的根目录,然后不允许chroot,在该目录里建一个可写的目录用来给用户上传~~~纠结

 

ps========

才写完这篇博客,我就把/srv/ftp这个根目录给chown给了一个用户,结果发现根目录居然“既有写权限,又不需要chroot,还能正常登录”了,也就是说可以往根目录上传文件了,奇怪,遂继续上面的测试以期能复现我刚才的结果:

原因我就不深究了,两次测试都成功了。

转载地址:http://bvdta.baihongyu.com/

你可能感兴趣的文章
Mysql-5.6.x多实例配置
查看>>
psutil
查看>>
在git@osc上托管自己的代码
查看>>
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
ClientScriptManager与ScriptManager向客户端注册脚本的区别
查看>>
js和php中几种生成验证码的方式
查看>>
android UI进阶之仿iphone的tab效果1
查看>>
这是我的第1个C#程序(向控制台输出一句话)
查看>>
html
查看>>
Xqk.Data数据框架开发指南:丰富的、灵活的查询方法(第三部分:SqlField)
查看>>
工作第十五周:上线前的惊悚
查看>>
Java获取EXE文件图标的方法
查看>>
深入解析Django Admin模块
查看>>
SQL Server死锁详解
查看>>