2017-03-14 03:46:01 +02:00
|
|
|
pure-ftpd
|
|
|
|
=========
|
|
|
|
|
|
|
|
![](https://www.pureftpd.org/images/pure-ftpd.png)
|
|
|
|
|
|
|
|
[Pure-FTPd][1] is a free (BSD), secure, production-quality and standard-conformant
|
2015-06-09 17:18:00 +02:00
|
|
|
FTP server. It doesn't provide useless bells and whistles, but focuses on
|
|
|
|
efficiency and ease of use. It provides simple answers to common needs, plus
|
|
|
|
unique useful features for personal users as well as hosting providers.
|
|
|
|
|
|
|
|
|
2015-06-09 17:42:50 +02:00
|
|
|
## ~/fig/pureftpd/docker-compose.yml
|
2015-06-09 17:18:00 +02:00
|
|
|
|
2017-03-14 03:46:01 +02:00
|
|
|
```yaml
|
2015-06-09 17:18:00 +02:00
|
|
|
pureftpd:
|
|
|
|
image: vimagick/pure-ftpd
|
|
|
|
ports:
|
|
|
|
- "21:21"
|
|
|
|
volumes:
|
2017-03-14 03:46:01 +02:00
|
|
|
- ./data/ftpuser:/home/ftpuser
|
|
|
|
- ./data/pure-ftpd:/etc/pure-ftpd
|
2015-06-09 17:18:00 +02:00
|
|
|
privileged: true
|
|
|
|
restart: always
|
|
|
|
```
|
2015-06-09 17:42:50 +02:00
|
|
|
|
2017-03-14 03:46:01 +02:00
|
|
|
> We only need to expose port `21` to accept client ftp connection.
|
2015-06-09 19:12:43 +02:00
|
|
|
> Pure-FTPd will open random port to accept client ftp-data connection.
|
|
|
|
> At this time, host machine is a router for DNAT.
|
|
|
|
|
2015-06-09 17:42:50 +02:00
|
|
|
## server
|
|
|
|
|
2017-03-14 03:46:01 +02:00
|
|
|
```bash
|
2015-06-09 17:42:50 +02:00
|
|
|
$ cd ~/fig/pureftpd/
|
2017-03-14 03:46:01 +02:00
|
|
|
$ docker-compose up -d
|
|
|
|
$ docker-compose exec pureftpd bash
|
2015-06-09 18:59:28 +02:00
|
|
|
>>> pure-pw useradd kev -u ftpuser -d /home/ftpuser/kev -t 1024 -T 1024 -y 1 -m
|
2015-06-09 17:42:50 +02:00
|
|
|
>>> pure-pw list
|
|
|
|
>>> pure-pw show kev
|
|
|
|
>>> pure-pw passwd kev -m
|
|
|
|
>>> pure-pw userdel kev -m
|
2015-06-09 18:59:28 +02:00
|
|
|
>>> pure-ftpwho -n
|
2015-06-09 19:12:43 +02:00
|
|
|
>>> exit
|
|
|
|
$ tree -F
|
|
|
|
.
|
|
|
|
├── docker-compose.yml
|
2017-03-14 03:46:01 +02:00
|
|
|
└── data/
|
|
|
|
├── ftpuser/
|
|
|
|
│ └── kev/
|
|
|
|
│ └── file.txt
|
|
|
|
└── pure-ftpd/
|
|
|
|
├── pureftpd.passwd
|
|
|
|
└── pureftpd.pdb
|
2015-06-09 17:42:50 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
## client
|
|
|
|
|
2017-03-14 03:46:01 +02:00
|
|
|
```bash
|
2015-06-09 17:42:50 +02:00
|
|
|
$ ftp remote-server
|
|
|
|
Name: kev
|
|
|
|
Password: ******
|
2015-06-09 17:47:42 +02:00
|
|
|
ftp> !touch file.txt
|
2015-06-09 17:42:50 +02:00
|
|
|
ftp> !ls
|
|
|
|
ftp> put file.txt
|
|
|
|
ftp> !rm file.txt
|
|
|
|
ftp> get file.txt
|
|
|
|
ftp> del file.txt
|
|
|
|
ftp> ls
|
|
|
|
ftp> bye
|
|
|
|
```
|
2017-03-14 03:46:01 +02:00
|
|
|
|
|
|
|
[1]: https://www.pureftpd.org/project/pure-ftpd
|