ubuntu部署ftp服务器(转)

最近做毕业论文的实验,用了九台服务器,由于需要频繁改动代码并且实时更新到这九台服务器上,因此想找一种比较方便的方法,不用每次改动代码都需要手动上传一次。由于使用的是windows系统,无法用scp等工具,想到pycharm中支持ftp远程部署,于是在这九个节点上都搭建了ftp服务器,用它来进行代码同步。主要内容参考这篇博文,因为其它博文都没说清楚一个问题。

安装ftp

sudo apt-get install vsftpd

配置vsftpd.conf

sudo vim /etc/vsftpd.conf

#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能访问限制的目录
chroot_local_user=YES
#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp
# 其它配置不变

添加ftp用户

sudo useradd -d /home/ftp -M ftpuser

修改用户登录密码

sudo passwd ftpuser

调整文件夹权限,这个是避免“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”

sudo chmod a-w /home/ftp

sudo chown socialbot /home/ftp

sudo mkdir /home/ftp/data

改pam.d/vsftpd,因为这时候直接用useradd的帐号登录ftp会530 login incorrect。这里十分重要,我看了很多博文都没说这一点,导致我ftp一直无法登录

sudo vim /etc/pam.d/vsftpd

按照下面进行注释

#auth required pam_shells.so

重启vsftpd

sudo service vsftpd restart

这时就可以用刚才建的ftpuser这个用户登录ftp了,看到的是local_root设置的/home/ftp,并且限制在该目录。

可以在浏览器用ftp://xxx.xxx.xxx.xxx访问,也可以用ftp软件比如flashFXP,密码就是ftpuser的密码。

其它关于ftp的权限和主被动模式设置请查阅相关文章