日常茶飯事

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도 비슷한 방법으로 작업이 가능하다.

Comment +0