Docker 로 pure-ftpd 를 개인적으로 운영하고 있습니다.
사용자가 적을 경우 문제가 없지만 보안상의 이유 및 특정 디렉토리 변경 되는 이슈 때문에 아주 간단한 방법으로
ftp user 권한을 변경할까 합니다.
docker-compose 내용은 일전에 올려 놓은 포스트를 참고해 주세요.
링크는 아래 있습니다. 🙂
- 디렉토리 권한 변경
#ftp Directory 는 /ftp-data 를 사용 하고 있습니다. /ftp-data 를 755 권한합니다. # chmod -R 755 /ftp-data
- pure-ftpd/Dockerfile 수정
[root@centos-docker ftp-service]# ll total 4 -rw-rw-r-- 1 test01 test01 647 Mar 3 2017 docker-compose.yml drwxrwxr-x 2 test01 test01 47 Apr 23 20:04 pure-ftpd drwxrwxr-x 2 test01 test01 24 Apr 22 20:00 ssh-server [root@centos-docker ftp-service]# [root@centos-docker ftp-service]# cat pure-ftpd/Dockerfile FROM ubuntu:14.04 MAINTAINER test@test.com RUN sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list RUN apt-get update && \ apt-get install pure-ftpd openssl libpam-dev libcap2-dev libldap2-dev libmysqlclient-dev libmysqlclient15-dev libpq-dev libssl-dev po-debconf dpkg-dev debhelper -y RUN mkdir /tmp/pure-ftpd/ && \ cd /tmp/pure-ftpd/ && \ apt-get source pure-ftpd && \ cd pure-ftpd-* && \ sed -i '/^optflags=/ s/$/ --without-capabilities/g' ./debian/rules && \ dpkg-buildpackage -b -uc RUN dpkg -i /tmp/pure-ftpd/pure-ftpd-common*.deb RUN apt-get -y install openbsd-inetd RUN dpkg -i /tmp/pure-ftpd/pure-ftpd_*.deb RUN apt-mark hold pure-ftpd pure-ftpd-common RUN cd /etc/pure-ftpd && \ adduser ftpd-data && \ adduser ftpd-users && \ <-- 라인추가
- docker-compose 실행
[root@centos-docker ftp-service]# docker-compose up -d --build
- pure-ftpd 유저 생성 및 password 생성
[root@centos-docker ftp-service]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 417c5aee93e3 ssh-server "/usr/sbin/sshd -D" 33 minutes ago Up 33 minutes 0.0.0.0:22222->22/tcp ssh-server 73ec4613358b private/pure-ftpd:14.04 "/bin/sh -c '/usr/sb…" 33 minutes ago Up 33 minutes 0.0.0.0:21->21/tcp, 0.0.0.0:20000-20099->20000-20099/tcp ftpd [root@centos-docker ftp-service]# docker [root@centos-docker ftp-service]# docker exec -it 73ec4613358b /bin/bash ftp user 작업 ftpd-users 구룹은 Read Only User group 이며, ftpd-data 구룹은 write User group 입니다. root@73ec4613358b:/# pure-pw useradd test01 -u ftpd-users -g ftpd-users -d /home/ftp Password: Enter it again: root@73ec4613358b:/# pure-pw useradd data01 -u ftpd-data -g ftpd-data -d /home/ftp Password: Enter it again: root@73ec4613358b:/# pure-pw mkdb root@73ec4613358b:/# cat /etc/pure-ftpd/pureftpd.passwd ~중략 test01:$1$VWoNttg0$MeF4ibc.JQCdlS3BFp3rT.:1001:1001::/home/ftp/./:::::::::::: data01:$1$iP7Popf0$htP3edje8B2BptmyEe7mG0:1000:1000::/home/ftp/./:::::::::::: pureftpd.passwd 파일에 생성한 유저를 추가 합니다. [root@centos-docker ftp-service]# vi pure-ftpd/pureftpd.passwd ftp 접속후 권한 테스트를 진행 합니다.