[FreeBSD 10.x] pure-ftpd 설치
ftp 사용.
ftp데몬은 많지만 요즘 뜨는 pure-ftpd를 설치 해보자.
# pkg install pure-ftpd
# echo 'pureftpd_enable="YES"' >> /etc/rc.conf
# cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf
# /usr/local/etc/rc.d/pure-ftpd start
pure-ftpd의 좋은 점은 가볍기도 하지만 손쉽게 DB 와 연동해서 사용이 가능하다는 점이다.
만약 DB와 연동해서 구동 하고자 한다면 아래와 같이 설치 하면 된다. 설치시 옵션에 반드시 mysql또는 PostgreSQL를 선택하기 바란다.
# portmaster -dwv /usr/ports/ftp/pure-ftpd
# echo 'pureftpd_enable="YES"' >> /etc/rc.conf
# cp /usr/local/etc/pure-ftpd.conf.sample /usr/local/etc/pure-ftpd.conf
# /usr/local/etc/rc.d/pure-ftpd start
DB와 연동하기 위해서는 몇가지 추가 작업이 필요하다.
다음과 같이 PostgreSQL용 Config파일을 만든다.
DB접속 유져와 패스워드 Database는 수정하도록 한다.
# vi /usr/local/etc/pureftpd-pgsql.conf
PGSQLServer localhost
PGSQLPort 5432
PGSQLUser root
PGSQLPassword rootpw
PGSQLDatabase pureftpd
PGSQLCrypt cleartext
PGSQLGetPW SELECT "Password" FROM "users" WHERE "User"='\L'
PGSQLGetUID SELECT "Uid" FROM "users" WHERE "User"='\L'
PGSQLGetGID SELECT "Gid" FROM "users" WHERE "User"='\L'
PGSQLGetDir SELECT "Dir" FROM "users" WHERE "User"='\L'
다음과 같이 config파일에 추가 한다.
# vi /usr/local/etc/pure-ftpd.conf
PGSQLConfigFile /usr/local/etc/pureftpd-pgsql.conf
PostgreSQL서버에 다음과 같은 테이블을 만든다.
CREATE TABLE "users" (
"User" varchar(16) NOT NULL default '',
"Password" varchar(64) NOT NULL default '',
"Uid" int NOT NULL default '-1',
"Gid" int NOT NULL default '-1',
"Dir" varchar(128) NOT NULL default '',
PRIMARY KEY ("User")
);
ftp를 재가동한다.
# /usr/local/etc/rc.d/pure-ftpd restart
table에 적당히 User를 넣은 다음 접속 테스트를 해보면 된다.
물론 Mysql도 비슷한 방법으로 작업이 가능하다.