在 Docker 中安装 pure-ftpd 并配置虚拟用户
本文介绍如何在 Docker 中安装 pure-ftpd,然后配置多个虚拟用户,实现对同一目录的读写权限控制。
容器启动
使用下面的 docker-compose 文件来启动容器:
1 | services: |
启动命令为:sudo docker compose up -d
添加不同权限的用户
与 Window 不同的是,Linux 中 ftp 用户的权限是通过文件的权限控制的。若我们要配置多个用户,且 A 用户具有上传下载权限,B 用户只有下载权限,具体的步骤如下:
进入容器
1
sudo docker exec -it pure-ftpd bash
创建两个用户
1
2
3
4# 管理(可读、可写)
useradd ftpadmin -g ftpgroup -d /dev/null -s /sbin/nologin
# 普通(只读)
useradd ftpuser -g ftpgroup -d /dev/null -s /sbin/nologin创建两个虚拟用户
创建两个虚拟用户,分别关联到实际的用户上
1
2
3
4
5
6
7
8# admin 关联到 ftpadmin 用户上,数据目录为 /data/share
pure-pw useradd admin -u ftpadmin -g ftpadmingroup -d /data/share
# user 关联到 ftpuser 用户上,数据目录为 /data/share
pure-pw useradd user -u ftpuser -g ftpadmingroup -d /data/share
# 保存到数据库
pure-pw mkdb创建数据目录并设置权限
1
2
3
4
5mkdir -p /data/share
# 将目录所有者改为 ftpadmin
chown ftpadmin:ftpgroup /data/share -R
# 将目录设置仅所有者可读, 这样,ftpuser 对于目录 /data/share 只有读和执行权限,从而保证虚拟用户 user 只读
chmod 755 /data/share
参考
本文参考以下文章,在此致以诚挚谢意!