龙空技术网

Docker下搭建ftp软件及创建ftp虚拟用户,不污染主机环境

川北凡人安宁阅 102

前言:

如今兄弟们对“centosftp用户权限设置”大概比较珍视,兄弟们都想要了解一些“centosftp用户权限设置”的相关知识。那么小编也在网上搜集了一些有关“centosftp用户权限设置””的相关文章,希望你们能喜欢,各位老铁们快快来学习一下吧!

虽然现在大多数的程序员已经不使用ftp来传输数据了,但对于大多数对程序并不是很懂的人来说,ftp还是相当好的软件,至少直观且操作简单。另外如果单纯是文件的上传或下载的话,ftp也是不错的选择。当然,如果是代码的上传下载的话,还是建议用git啦。

ftp容器要求:

1、搭建的ftp尽量不污染主机环境,不需要在主机环境下创建用户。

2、ftp使用尽量少的端口。

按照要求的话:

1、如果不要在主机环境下创建用户,那就只能是在ftp中创建虚拟用户,因此要用到db_load软件。而该软件一般在centos下自带,在alpine下是没有的。因此大多数ftp的镜像都是基于centos系统创建的。

2、ftp有主动模式和被动模式之分。被动模式必须给ftp更多的端口用来传输数据,而主动模式则不用,故我们这里选用主动模式。

开始搭建ftp容器

1、创建容器

docker run -d --name ftp -p 21:21 -e FTP_USER=admin -e FTP_PASS=ppp123 -v /data/vsftpd:/etc/vsftpd -v /data/website:/website --restart=always fauria/vsftpd

# -p 21:21 这个必须,ftp需要

# -e FTP_USER=admin 设置一个ftp用户,默认也会设置此用户

# -e FTP_PASS=ppp123 给admin用户设置一个密码,不设置的话就随机密码

# -v xxx:zzz 分别映射配置信息和网站

# 这里我们只映射了21端口,20端口其实可以不用映射哦

# 喜欢被动模式的可以用 docker run -d --name ftp -p 21:21 -p 21100-21110:21100-21110 -e PASV_ADDRESS=xxx -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 -v /data/vsftpd:/etc/vsftpd:ro -v /data/website:/website --restart=always fauria/vsftpd

2、修改配置

vi /data/vsftpd/vsftpd.conf

设置 local_root=/website

3、给网站目录以写入权限,否则ftp无法上传成功

chmod a+rw /data/website

ftp容器如何添加虚拟用户

1、进入ftp容器

docker exec -it ftp bash

2、添加用户名和密码。单数行是用户名,双数行是密码。也就是一行用户名,一行密码的形式。

vi /etc/vsftpd/virtual_users.txt

3、将刚刚添加的用户,添加到ftp的虚拟用户数据库中

/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

4、退出容器

exit

5、重启容器,用刚刚添加的用户登录测试

docker restart ftp

如果提示没有db_load的话,就安装一下。

yum install -y libdb4安装 (或者yum install -y db4)

那这里就有个问题了,如果用的是alpine作为容器的基础环境,而alpine并没有db_load软甲,也没法安装的话,该如果添加虚拟用户呢?相信这个问题一定难不住你的。

标签: #centosftp用户权限设置