가상 호스팅 · 3 min read · Jan 07, 2026
PureFTPd 및 MySQL을 이용한 가상 호스팅 (쿼터 및 대역폭 관리 포함) - Mandriva 2008 Spring - 2페이지
6 데이터베이스 채우기 및 테스트
데이터베이스를 채우기 위해 MySQL 셸을 사용할 수 있습니다:
mysql -u root -pUSE pureftpd;이제 상태 1(즉, FTP 계정이 활성화됨)인 사용자 exampleuser를 생성하고, 비밀번호 secret(이는 MySQL의 MD5 함수로 암호화되어 저장됨), UID 및 GID 2001(2단계 끝에서 생성한 사용자/그룹의 userid 및 groupid를 사용하세요!), 홈 디렉토리 /home/www.example.com, 업로드 및 다운로드 대역폭 100 KB/sec(초당 킬로바이트), 쿼터 50 MB를 설정합니다:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('exampleuser', '1', MD5('secret'), '2001', '2001', '/home/www.example.com', '100', '100', '', '*', '50', '0');quit;이제 작업 스테이션에서 FTP 클라이언트 프로그램(Windows 시스템의 경우 WS_FTP, SmartFTP 또는 FileZilla, Linux 데스크탑의 경우 gFTP 또는 FileZilla)을 열고 연결을 시도합니다. 호스트 이름으로 server1.example.com(또는 시스템의 IP 주소)을 사용하고, 사용자 이름은 exampleuser, 비밀번호는 secret입니다.
연결할 수 있다면 축하합니다! 그렇지 않다면 뭔가 잘못되었습니다.
이제 다음을 실행하면
ls -l /home/home/www.example.com(예제 사용자의 홈 디렉토리) 디렉토리가 자동으로 생성되었고, ftpuser 및 ftpgroup(2단계 끝에서 생성한 사용자/그룹)이 소유하고 있음을 확인할 수 있습니다:
[root@server1 ~]# ls -l /home
total 8
drwxr-xr-x 3 administrator administrator 4096 2008-04-09 14:58 administrator/
drwxr-xr-x 2 ftpuser ftpgroup 4096 2008-04-11 14:40 www.example.com/
[root@server1 ~]#7 데이터베이스 관리
대부분의 사람들에게는 MySQL의 그래픽 프론트 엔드가 더 쉽습니다. 따라서 pureftpd 데이터베이스를 관리하기 위해 phpMyAdmin(http://server1.example.com/phpmyadmin/에서)도 사용할 수 있습니다.

새 사용자를 생성하려면 항상 ftpd 테이블에 항목을 생성해야 하므로 이 테이블의 열을 설명하겠습니다:
ftpd 테이블:
- User: 가상 PureFTPd 사용자 이름(예: exampleuser).
- status: 0 또는 1. 0은 계정이 비활성화되었음을 의미하며, 사용자는 로그인할 수 없습니다.
- Password: 가상 사용자의 비밀번호. 비밀번호를 MD5 문자열로 암호화하여 저장하기 위해 MySQL의 MD5 함수를 사용해야 합니다:

- UID: 2단계 끝에서 생성한 FTP 사용자의 userid(예: 2001).
- GID: 2단계 끝에서 생성한 FTP 그룹의 groupid(예: 2001).
- Dir: 가상 PureFTPd 사용자의 홈 디렉토리(예: /home/www.example.com). 존재하지 않으면 새 사용자가 FTP를 통해 처음 로그인할 때 생성됩니다. 가상 사용자는 이 홈 디렉토리에 감금되며, 즉, 자신의 홈 디렉토리 외부의 다른 디렉토리에 접근할 수 없습니다.
- ULBandwidth: 가상 사용자의 업로드 대역폭(KB/sec, 초당 킬로바이트). 0은 무제한을 의미합니다.
- DLBandwidth: 가상 사용자의 다운로드 대역폭(KB/sec, 초당 킬로바이트). 0은 무제한을 의미합니다.
- comment: 여기에는 내부 관리용으로 어떤 주석도 입력할 수 있습니다(예: 내부 관리용). 일반적으로 이 필드는 비워 둡니다.
- ipaccess: 이 FTP 계정에 연결할 수 있는 IP 주소를 입력합니다. *는 모든 IP 주소가 연결할 수 있음을 의미합니다.
- QuotaSize: FTP 서버에서 가상 사용자가 사용할 수 있는 저장 공간(MB, ULBandwidth 및 DLBandwidth와는 다르게 KB가 아님). 0은 무제한을 의미합니다.
- QuotaFiles: FTP 서버에서 가상 사용자가 저장할 수 있는 파일 수. 0은 무제한을 의미합니다.
8 익명 FTP
비밀번호 없이 누구나 로그인할 수 있는 익명 FTP 계정을 생성하려면 ftp라는 사용자와 그룹이 필요합니다. 두 개 모두 pure-ftpd 패키지를 설치할 때 자동으로 생성되므로 수동으로 생성할 필요가 없습니다. 그러나 ftp의 홈 디렉토리는 기본적으로 /var/ftp입니다. 하지만 익명 FTP 디렉토리를 /home/ftp에 생성하고 싶습니다(일반 사용자의 FTP 디렉토리도 /home에 있습니다, 예: /home/www.example.com). 물론 원하신다면 /var/ftp 디렉토리를 익명 FTP에 사용할 수 있습니다.
/home/ftp를 사용하려면 /etc/passwd를 열고 ftp 사용자의 홈 디렉토리를 /var/ftp에서 /home/ftp로 변경합니다(원하신다면 /var/ftp를 사용하려면 이 작업을 하지 마세요):
vi /etc/passwd| [...] #ftp:x:80:423:system user for pure-ftpd:/var/ftp:/bin/false ftp:x:80:423:system user for pure-ftpd:/home/ftp:/bin/false [...] |
그런 다음 /var/ftp를 /home으로 이동합니다(원하신다면 /var/ftp를 사용하려면 이 작업을 하지 마세요):
mv /var/ftp /home우리는 /home/ftp/incoming(익명 사용자가 파일을 업로드할 수 있도록 허용) 및 /home/ftp/pub(익명 사용자가 다운로드할 수 있는 위치) 디렉토리를 사용합니다. 두 디렉토리는 이미 존재합니다. /home/ftp/incoming 디렉토리에 311 권한을 부여하여 사용자가 파일을 업로드할 수 있지만 해당 디렉토리의 파일을 보거나 다운로드할 수 없도록 합니다. /home/ftp/pub 디렉토리는 파일을 보고 다운로드할 수 있도록 555 권한을 가집니다:
chown -R ftp:nogroup /home/ftp
cd /home/ftp
chmod 311 incoming/
chmod 555 pub/
cd ../
chmod 555 ftp/(대신 /var/ftp를 사용하려면 위 명령에서 /home/ftp를 /var/ftp로 바꾸세요.)
익명 사용자는 로그인할 수 있으며, /home/ftp/pub에서 파일을 다운로드할 수 있지만, 업로드는 /home/ftp/incoming으로 제한됩니다(그리고 /home/ftp/incoming에 파일이 업로드되면 해당 파일은 읽거나 다운로드할 수 없습니다; 서버 관리자가 이를 /home/ftp/pub으로 이동해야 다른 사용자가 사용할 수 있습니다).
이제 익명 FTP를 위해 PureFTPd를 구성해야 합니다. /etc/pure-ftpd/pure-ftpd.conf를 열고 다음 설정이 포함되어 있는지 확인합니다:
vi /etc/pure-ftpd/pure-ftpd.conf| [...] NoAnonymous no [...] AntiWarez no [...] AnonymousBandwidth 8 [...] AnonymousCantUpload no [...] |
(AnonymousBandwidth 설정은 선택 사항입니다 - 익명 사용자의 업로드 및 다운로드 대역폭을 제한할 수 있습니다. 8은 8 KB/sec를 의미합니다. 원하는 값을 사용하거나 대역폭을 제한하고 싶지 않다면 해당 줄을 주석 처리하세요.)
마지막으로 PureFTPd를 재시작합니다:
/etc/init.d/pure-ftpd restart9 링크
- PureFTPd: http://www.pureftpd.org
- MySQL: http://www.mysql.com
- phpMyAdmin: http://www.phpmyadmin.net
- Mandriva: http://www.mandriva.com
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.