pure-ftpd文件服务容器化使用

dokcer中运行Pure-ftpd服务

ftp工具平时很少使用,自己平时往服务器上传文件基本使用lrzsz工具就基本够用,有时候会遇到一些应用场景作为文件存储服务器,这时候就需要ftp服务了

有这样一个场景,某公司需要为员工每人分配一个ftp账号,员工使用ftp工具将自己的收集的视频等文件上传到服务器,各个员工只能在自己的账号所属目录里,也就是说各用户是相互隔离的,但是需要有一位管理员的账号,可以到每一为员工的目录里去查看文件。

使用docker实现

这里使用另一种ftp服务端工具,pure-ftpd,这个之前也没有听过。。网上找的资料,使用这个工具是因为使用容器部署很方便,最关键的是原来使用vsftpd没有搞成功。。。

在docker中下载并运行pure-ftpd

  • 下载运行
[root@node1 ~]# docker run -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" -v /ftpdir:/ftpdir stilliard/pure-ftpd:hardened
  • 查看进程
[root@node1 ~]# docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
f982a8caf2a2        stilliard/pure-ftpd:hardened   "/bin/sh -c '/run.sh…"   5 minutes ago       Up 5 minutes        0.0.0.0:21->21/tcp, 0.0.0.0:30000-30009->30000-30009/tcp   ftpd_server
  • 进入容器
docker exec -it ftpd_server /bin/bash
  • 创建虚拟用户
root@f982a8caf2a2:/# pure-pw useradd user01 -u ftpuser -d /ftpdir/user01
Password: 为虚拟用户设置密码
Enter it again: 
  • 将/ftpdir目录的属主属组该为ftpuser和ftpgroup(在启动容器后,系统已经创建了ftpuser的用户,其属组为ftpgroup)
root@f982a8caf2a2:/# chown -R ftpuser:ftpgroup /ftpdir/
  • 提交添加用户操作(这一部很关键,前面用户添加了,但并没有提交到服务的数据库中)
root@f982a8caf2a2:/# pure-pw mkdb
  • 此后创建的用户后只要执行pure-pw mkdb即可
root@f982a8caf2a2:/# pure-pw useradd user02 -u ftpuser -d /ftpdir/user02
Password: 
Enter it again: 
  • 用户添加完成后,docker主机上添加防火墙策略
[root@node1 ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent
success
[root@node1 ~]# firewall-cmd --zone=public --add-port=30000-30009/tcp --permanent
success
[root@node1 ~]# firewall-cmd --reload
success

  • 草稿箱里翻出来的
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注