프로그래밍/예전글

라즈베리파이에서 PURE_FTPD기반의 FTP 세팅

Cat체셔 2016. 4. 25. 22:45

저는 라즈베리파이 Documentation에 있는 자료를 참고하여 구축했기 때문에 PURE-FTPD를 기반으로 설명해드리겠습니다.

https://www.raspberrypi.org/documentation/remote-access/ftp.md


PURE_FTPD 설치

다음 문장을 터미널에 입력해 apt-get을 설치합니다.

sudo apt-get install pure-ftpd


기본 설정

기본적으로 리눅스에서 ftp를 위한 그룹을 만들고 ftp에서 사용할 유저를 추가해주어야합니다.

groupadd ftpgroup
useradd ftpuser -g ftpgroup -s /sbin/nologin -d /dev/null

groupadd [groupname]

[groupname]라는 사용자 그룹을 추가하는 리눅스 명령어입니다.

useradd [username]

[username]라는 사용자를 추가하는 리눅스 명령어입니다.

-g [groupname] [groupname]그룹에 유저를 추가합니다.

-s [authorization] [authorization]권한을 유저에게 부여합니다.

/sbin/nologin

쉘 권한이 없어서 SSH접속을 하지 못하도록 하는 명령

-d [home_directory] [home_directory]위치에 사용자 계정의 홈 디렉토리를 생성합니다.

/dev/null

홈디렉토리를 생성하지 않습니다.


FTP 홈 디렉토리, 가상유저와 유저 그룹

FTP용 디렉토리를 추가합니다.

sudo mkdir /home/pi/FTP

ftpuser에게 FTP용 디렉토리 접근 권한을 부여합니다.

sudo chown -R ftpuser:ftpgroup /home/pi/FTP

ftp에 upload라는 가상 유저를 만들어 ftpgroup에 있는 ftpuser를 매핑합니다.

pure-pw useradd 명령이 실행되고 나면 곧바로 password를 입력할 수 있게됩니다.

sudo pure-pw useradd upload -u ftpuser -g ftpgroup -d /home/pi/FTP -m

pure-pw useradd [username]

[username]이라는 ftp 가상 유저를 추가합니다.

-u [system_username]

시스템에 있는 유저이름을 넣어줍니다.(해당 유저의 권한과 같은 설정을 매핑하는데 사용됩니다.)

-g [system_usergroup]

시스템에 있는 유저그룹을 넣어줍니다.(해당 유저의 권한과 같은 설정을 매핑하는데 사용됩니다.)

-d [directory]

해당 유저의 ftp 루트 디렉토리

-m

??? 아시는분 있으면 댓글 좀ㅠㅠ


이제 다음으로는 user database를 생성해줍니다.(신규유저 추가 및 비밀번호 변경등의 행동을 하면 db갱신을 위해 반드시 호출해줘야합니다.)

sudo pure-pw mkdb

이제 생성된 db를 인증을 위해 /etc/pure-ftpd/auth/폴더에 소프트 링크해줍니다.

ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb


pure-ftpd를 재시작합니다.

sudo service pure-ftpd restart


세팅 끝


https://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users

다른 명령어는 위의 페이지를 참조해주세요.