在之前的文章中Docker安装FTP服务器中我使用了Docker安装了FTP服务器,这两天遇到需要修改FTP用户密码的情况,这里和大家分享我的经验。
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c5add1443a41 fauria/vsftpd "/usr/sbin/run-vsftp…" 12 days ago Up 24 hours 0.0.0.0:20-21->20-21/tcp, :::20-21->20-21/tcp, 0.0.0.0:21100-21110->21100-21110/tcp, :::21100-21110->21100-21110/tcp ftp
直接修改文件
在容器中直接编辑/etc/vsftpd/virtual_users.txt
文件添加/修改FTP虚拟用户的用户名和密码,同时还需要将virtual_users.txt文件应用到数据库中,因为vsftpd 默认使用数据库进行身份验证:
[root@localhost ~]# docker exec -it c5add1443a41 /bin/sh
sh-4.2# vi /etc/vsftpd/virtual_users.txt
admin
Qwert@789
#使用以下命令将更改应用到数据库中:
[root@localhost ~]# docker exec -it c5add1443a41 /bin/sh -c "db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db"
[root@localhost ~]# ftp 192.168.0.180
Connected to 192.168.0.180 (192.168.0.180).
220 (vsFTPd 3.0.2)
Name (192.168.0.180:root): admin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,0,180,82,114).
150 Here comes the directory listing.
-rwxrwxrwx 1 ftp ftp 6 Feb 06 03:09 测试.txt
226 Directory send OK.
这种方法,只能在当前启动的容器中实现,但是重启容器之后还是变回原来密码。所以不建议使用这种方法。
新建并启动容器
解决方案:删掉已有容器,然后直接重新启动一个容器并修改ftp用户密码
[root@localhost ~]# docker run -d -p 21:21 -p 20:20 -p 21100-21110:21100-21110
> -v /keyuser/ftp:/home/vsftpd
> -e FTP_USER=daemon -e FTP_PASS=Qwert@7896
> -e PASV_MIN_PORT=21100
> -e PASV_MAX_PORT=21110
> -e PASV_ADDRESS=192.168.0.180
> -e PASV_ENABLE=YES
> --name ftp
> --restart=always
> --privileged=true
> fauria/vsftpd
7a3eb88d3957b2bea3494eebec86da2fc960eeb42f5219e4c0f8d2b0a7ea41e0
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7a3eb88d3957 fauria/vsftpd "/usr/sbin/run-vsftp…" 3 seconds ago Up 2 seconds 0.0.0.0:20-21->20-21/tcp, :::20-21->20-21/tcp, 0.0.0.0:21100-21110->21100-21110/tcp, :::21100-21110->21100-21110/tcp ftp
测试ftp
[root@localhost ~]# ftp 192.168.0.180
Connected to 192.168.0.180 (192.168.0.180).
220 (vsFTPd 3.0.2)
Name (192.168.0.180:root): daemon
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
原文始发于微信公众号(面试技术):修改Docker容器的FTP用户密码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/186850.html