glftpd Howto

# ITC/# Tips of How to 2007. 12. 18. 14:27
Linux glFTPD Docs v1.20 & v1.21
   Original docs composed by icetrain
   FAQ composed by Archimede
   Maintained by Archimede #glftpd

한글 Howto 작성: 오명오(LeCieL) xiopadm@dgtalx.net
2000년 7월 1일

한글 Howto 수정 V2 : 오명오(LeCieL) d-tech@slrclub.com
2006년 10월 3일


주의: 이 문서는 glFTPD 의 docs의 내용을 따랐으며 후반부 부터는 몇몇 운영 방식
에 대해 필자의 몇가지 팁을 기술하였습니다. 번역본과 GUIDE를 포함한 형식의
HOWTO 입니다. 또한 중간중간 몇개의 설정치의 값이 두개가 존재합니다. 이 부분
은 잘 읽어보시면 아시겠
지만 이 문서는 1.20 과 1.21 두 버전의 설정치를 둘다 기술한 부분이 있습니다. (정
확히는 변경된 내용입니다. 1.21 사용자는 해당 설정치를 사용해야합니다)

**현재의 GLFTPD는 이 문서의 작성일로부터 많은 변화가 있었으나 외형적인 큰 변화가 없으며,
크게 눈에 띈 점은 SSL 지원이나 트래픽 바운서의 정식지원, JAIL 을 이용한 virtual 서빙디렉토리기능을 제공한다.
하지만 아직도 이 문서는 바이블로써 GLFTPD의 최초 설정 및 이해하기 위한 사용자에게 많은 요청이 있어
내렸던 사이트의 게시물을 다시 복원하여 일부 수정하게되었다.
FYI : 6년전 문서를 지금와서 다시.. 손대니 새삼 흠칫하군요 **


1.  설치 (LINUX)
2.  glFTPD site 명령어 목록
3.  glFTPD 의 flags (정책) 목록
4.  glftpd.conf 파일 설정법
5.  컬러 쿠키값
6.  기타 쿠키값
7.  glFTPD 를 이용한 FTP 운영
8.  잦은 문의와 질문
9. 1.20 -> 1.21 로 바뀐점
10. 2006년, 문서의 작성일로부터 6년이 지난 지금의 상황과 정리

- 1. 설치하기
자료 위치 : www.glftpd.com
압축형식 : tar.gzip

포인트: 해당 자료위치에서 glftpd 최신 버전을 다운 받은 후 압축을 해제한 뒤에
glinstall1.10.sh 를 실행시킨다.

1. su 나 root 계정으로 로그인을 한 후 glftpd 를 받은 위치로 이동한다.

2. 해당 압축파일에서 루트디렉토리 아래에 압축을 해제한다.
  ( tar xzvf glftpd-LNX_1.20.tgz -C / )

3. 위와 같이 압축을 해제하였을 경우 /root/glftpd??? 디렉토리가 생성되었을 것이
다. 확인을 한 후 디렉토리 내로 진입한다.
  ( cd ~/glftpd-LNX_1.20 )

4. 이후 glinstall 을 실행하여 설정을 잡는다.
  ( ./glinstall1.10.sh )


주의사항 : 이미 존재하는 디렉토리를 ftp 운영디렉토리 (초기 디폴트값을
/glftpd/site 로 지정하고 물어볼 것이다. 이것을 변경하는것은 별 문제가
없으나, 이미 존재하는 디렉토리를 지정하면 그 디렉토리 전체를 삭제하고
설치를 하는 경우가 발생하니 이점을 각별히 유의할것

- Section 1. 수동 설치 (스크립 에러) -----------------------------

이 부분은 glinstall 스크립트를 이용하지 않고 (원인 모를 에러나, 쉘이 지원되지 않
을경우만) 수동으로 설치를 하는 방법을 기술하고 있다.
인스톨 스크립트를 이용하여 설치한 사용자는 이 부분을 건너뛰어도 되며, 혹시라도
명령어를 따라 칠 경우 잘못된 설정으로 glftpd를 정상적으로 이용하지 못할 사태
가  발생 할 수 있음을 경고한다.

1. 압축 해제
  ( tar xzvf glftpd-LNX_1.20.tgz -C / )

2. 사용하는 라이브러리와 컨피그 파일을 복사함
  ( cp /usr/lib/* /glftpd/lib; cp /sbin/ldconfig /glftpd/bin )

  (os에 마다 틀리며 library 가 든 디렉토리가 각자 틀릴 수 있음을 명시한다
   자신의 설정과 맞게 cp /usr/lib 등을 수정해야 한다 )

3. mknod 로 특수 형태 파일을 지정한다.
  cd /glftpd/dev
  mknod -m666 null c 1 3
  mknod -m666 zero c 1 5

4. ftp 구조체에 ld.so.cache 파일을 생성한다.
  명령을 친 후 해당하는 파일이 존재하는지 확인해야 하며.
  ls /glftpd/etc 에 ld.so.cache 파일이 존재할 경우 설치가 성공적으로 끝났을
  가능성이 있다. 만약 파일이 존재하지 않을 경우 라이브러리 확인을 다시하며
  과정 2번부터 다시 재작업을 하며 확인을 해야한다.
  설치 과정중에 에러 메시지가 날 수 있으며 이것은 무시해도 된다
  파일이 존재할 경우에만 해당함.

  ( chroot /glftpd /bin/ldconfig )

5. 아래의 명령어를 사용하여 glftpd의 bin 디렉토리에 해당 파일을 복사한다.
  cp /bin/sh /glftpd/bin; cp /bin/kill /glftpd/bin;
  cp /bin/cat /glftpd/bin; cp /bin/echo /glftpd/bin;
  cp /bin/grep /glftpd/bin; cp /bin/unzip /glftpd/bin

6. 복사가 끝났을 경우 퍼미션 설정을 한다.

  ( chmod -R 755 /glftpd/bin )
  ( chmod -R 755 /glftpd/lib )

--------------------------- End Of Section ---------------------------
--

( glinstall.sh 의 설치는 너무도 간단하기에 설명하지 않았다 )


5. FTP 의 Incoming 디렉토리 (누구나 올릴 수 있는 공간) 의 설정
  만약 Incoming 을 통한 운영법을 선택할 경우 아래와 같이 퍼미션을 조정한다
  ( chmod 777 /glftpd/site/incoming )

  더 자세한 ftp 운영에 관한것은 6~7 장을 통하여 서술할 것이다.

6. glftpd.conf 파일의 설정을 마치고 /etc 디렉토리로 복사하여야 한다.
  ( cp /glftpd/glftpd.conf /etc/. )

  파일이 존재할 경우 덮어쓰기 한다.

** 경고 : glftpd.conf 파일은 glftpd 데몬에 관련된 설정파일임으로
          절대적으로 수정을 하여야 한다. 샘플로 config 를 대체하는 행위는
      절대 권장하지 않는다. 본인이 직접 수정하길 바란다.


7. inetd 에 데몬을 추가한다. (이 부분은 glinstall 을 이용하여 설치한 사용자는
  수정하지 않아도 될 부분이나 혹시나 다른 옵션을 쓰실경우 수정시 참고할것)

  vi 나 pico 에디터를 이용하여 /etc/inetd.conf 파일을 수정하도록 한다.
  가급적 맨 마지막줄에 넣어두는것이 좋다.

  vi /etc/inetd.conf

  (내용 수정)

glftpd  stream  tcp     nowait  root  /usr/sbin/tcpd  /glftpd/bin/glftpd -l -o -i -
r /etc/glftpd.conf

(위의 내용을 줄 끝에 추가한다)

아래는 옵션에 대한 설명이다.

  -B       port bouncer 를 통하여만 접속을 허용하도록 한다.
  -b           port bouncer 혹은 직접 연결을 허용한다.
  -e       이 명령어는 유럽의 주단위에 stats를 수정하게 한다
               (잘 안쓰는 명령임)
  -l           업로드/누크/언누크/접속/접속해제 등의 정보를 log (기록) 에
               남겨두는 옵션임. (기록은 /glftpd/ftp-data/logs/glftpd.log
       파일에 저장됨.)
       ( 실시간으로 로그를 확인하려면 tailf glftpd.log (해당디렉토리
       안에서) 를 이용하여 볼 수 있음 tail -f glftpd.log 등.. )
  -i           업로드 기록을 /glftpd/ftp-data/logs/xferlog 에 저장함
  -I       계정 인증 확인을 하지 않음
               ( ip 추가시 타 리눅스 서버나 ident 서버를 통해 들어오는
        사용자의 ident를 검사하지 않는 옵션임.
        만약 윈도우 계열의 사용자가 많다면 이 옵션을 사용해도 좋음)
  -o       다운로드 기록을 logs의 xferlog 파일에 남김
  -d       접속 시도에 관한것을 시스템 로그로 남김
  -r <file>    지정한 glftpd.conf 파일을 사용함
  -t <seconds> idle 로 인해 타임아웃 처리기간의 최소치를 설정함.
  -T <seconds> idle 로 인해 타임아웃 처리기간의 최대치를 설정함.
  -n <#>       dns 재시도 회수 설정 (수치), 0 은 dns resolving 사용안함


8. /etc/services 탭에 glftpd 가 서비스될 포트를 지정한다.
   이는 수동 설치자만이 해야하는 부분임으로 glinstall 을 이용한 사용자는
   손댈 필요 없는 부분이다.

   vi /etc/services 의 아래와 같은 항목을 추가한다.

   glftpd  포트번호/tcp

   (예 : glftpd        21/tcp  )

   포트번호는 본인이 구동할 포트번호를 입력할것

9. 설치가 완료되었으면 glftpd 의 구동을 위해 inetd 를 재시작해야한다.

   killall -HUP inetd 명령을 이용하여 재시작 할것.

10. glftpd 서버 접속 테스트.
   초기 계정의 설정은  Login/Pass = glftpd/glftpd 이다.
   본인이 접속하여 site passwd 명령으로 패스워드를 필히 변경하라.

   ( 주의 : 접속은 꼭 아래와 같이 하여야만 한다. ip를 치지말것
   Glftpd 는 ip mask 영역을 인식하도록 제작되어있다.
   glftpd 계정의 경우 초기 매스크가 *@127.0.0.1 임으로 로컬호스트가 아닌
   원격지에서의 접근은 불가능하다. )

   ftp localhost (본인의 포트)

   (예제 : # ftp localhost 21 )

  만약. "421 Service not available" 메시지나 이와 유사한 메시지가 출력될 경우
  glftpd 의 설치가 잘못되었을 수 있다. 이때는 /var/logs 의 시스템 로그와
  glftpd 디렉토리의 (/glftpd/ftp-data/log) 로그를 자세히 살펴보고 원인을
  파악하여 해결하라

- 2. glftpd site 명령어 목록

안내: glftpd 의 site 명령은 glftpd 의 flags 정책을 통하여 제어를 한다
      이 정책은 glftpd.conf 파일의 맨 마지막에 존재한다.
      이 정책은 변경할 필요가 없을정도로 잘 설정이 되어있다.
      정책 변경을 함부로 하거나 보안을 생각하지 않은채 할 경우
      당신의 ftp 운영에 큰 지장을 초래하거나 역으로 시스템에 문제가 발생할
      소지가 생긴다.
      
      아래부터 설명할 것은 glftpd 자체 데몬 명령어들이다.
      당신은 앞으로 이 명령어들을 통하여 ftp를 관리해야만 하므로
      대략적인 사용법을 익히고 있는것이 좋다.

      site help 로 나오는 명령과 아래에 서술하는 명령은 조금 틀리다.
      site help 에는 나오지 않는 비밀기능? 같은 것인데 운영자는 필독해야할
      몇가지 명령이 있음으로 한번 인내심을 가지고 읽어보는것이 바람직하다


      <> 에 쌓여진것은 필드이며 입력을 하지 않으면 기능이 정상작동하지 않는다.
      [] 에 쌓여진것은 옵션항목이며 입력을 하지 않아도 기능이 정상작동한다.


site help      도움말. ftp 에 접속하여 ftp> 가 떳을때 site help 엔터
               등으로 site 명령어는 입력을 한다. site help 를 치면
       명령어 목록과 간략한 설명이 출력되며 site help 명령어로
       특정 명령어의 자세한 도움말을 볼 수 있다
       이하 site 를 생략한채 명령어만 설명한다.


adduser <계정명> <비밀번호> [<인증@ip주소>... (ip 5개까지 추가가능)]

        adduser 는 새로운 사용자를 추가하는 명령어며 site op 의 flag를
    달고있는 사이트 오퍼, 그룹 관리자, 유저 에디터만이 가능한 명령어다.
    아래와 같이 3가지 플래그를 설명하였는데 플래그에 관한 정의는
    아래쪽에서 자세히 할 것이다.

        <인증@ip주소> 는 ident서버를 통해 들어오는 값을 넘기는것으로
    위의 inetd.conf 에서 ident를 쓸지 안쓸지 제어할 수 있다.
    위의 [ ] 안의 인증@ip 주는 쳐도 되며 안쳐도 된다.
    만일 당신이 site 오퍼이고, 리눅스를 통해서 로긴만 하며,
    리눅스의 계정이름이 xnetwork 인 경우에..?  새로운 오퍼 id를 만들 시에는 2번째 예제처럼 보안적 요소를 구성할
    수 있다.?
        예제 1: site adduser bluefeel 12345 *@211.37.78.*

        login 명 bluefeel 에 패스워드 12345, 211.37.78 로 시작하는 ip를
    모두 받도록 계정을 만든다.

    예제 2: site adduser bluefeel 12345 xnetwork@211.37.78.37

        login 명이 bluefeel 이며 패스워드 12345, 211.37.78.37 이라는
    ip에서만 접속되며 해당 ip에서도 xnetwork라는 계정을 쓰는 사람만이
    접속이 가능하다. 타인은 접속이 불가능하다.


addip <계정명> <인증@ip주소> (10개까지 ip주소 추가 가능)

    해당하는 계정사용자에게 ip 대역을 추가하는 명령어

    예제 : addip xnet *@211.203.232.* xnetwork@24.48.* xnetwork@dgtalx.net
    (위와 같이 입력할 경우 xnet 이란 ftp 계정에 3개의 ip 와 dns 를
    동시에 추가하게 된다 mask 는 211.108.*.* 등으로 할 필요 없이
    211.108.* 만 해도 된다 )


aldn [<섹션>]  전체 사용자별 다운로드 순위를 표시한다.
               섹션은 옵션이며 섹션 이름 혹은 0-9 사이의 섹션넘버를 사용한다

alup [<섹션>]  전체 사용자별 업로드 순위를 표시한다.

alias          현재 지정된 alias 를 보여준다.

cdpath     현재 지정된 cd 의 경로를 보여준다.

chpass <계정명> <새패스워드>

       이 명령은 다른 사용자의 패스워드를 변경하는 명령이다.
       말안해도 알겠지만 사용자한텐 권한이 없다. 오퍼들에게만 해당됨
       여기에 몇가지 옵션을 설명한다.
   
   예제: site chpass xnet *
           xnet 계정에게 어떠한 글자를 입력받더라도 패스워드로
       인정하고 로그온을 허용한다
   예제: site chpass xnet @
       anonymous 에나 쓰는것이다. 어떤 email주소든지 입력하기만하면
       로그온을 허용하게 한다.
   
change <계정> <필드명> <값>  <- 사용자의 특정 필드의 값을 변경함
change <그룹> <필드명> <값>  <- 그룹의 특정 필드의 값을 변경함
change { <계정1> <계정2> .. } <필드명> <값>  <- 지정계정들의 필드 값 변경
change * <필드명> <값> <- 전체 사용자의 필드 값 변경

- change 도움말 보는법 : site change user help

    사용 가능한 필드 리스트

    필드                 설명
    ------------------------------------------------------------------
    ratio           Up/Down 의 비율을 조절하는 필드, 0=제한안함
    wkly_allotment  매주 크론탭을 통하여 리셋, 혹은 받을 수 있는 파일의
                    크기를 설정해 주는것. 시간당 한 섹션만 제공함
    homedir         해당 사용자의 홈디렉토리를 변경 (액세스 최상위지역)
    credits         사용자가 받아갈 수 있는 용량
    flags           사용자 관리 정책. site flags 명령어로 리스트 조회가능
                    또한 자신의 플래그 상태를 쉽게 볼 수 있으며
            이 명령어는 + 혹은 - 플래그 수치를 입력해야 한다.
    num_logins      몇개의 로긴수 까지 허용하는지를 설정
    timeframe       # # : 단위로 입력받으며 이 사용자가 로긴할 수 있는
                    시간대를 설정하는것 시간을 초과하면 강제 접속종료함
            이 단위는 24시간 단위로 입력해야함
    time_limit      접속한 세션단위로 접속할 수 있는 시간을 제한함
    tagline         User 의 정보를 입력하는 것 (site who 에 나옴)
    group_slots     해당 그룹의 그룹관리자가 사용자를 받을 수 있는
                    최대 사용자의 슬롯 개수를 제한한다.
    comment         사용자의 부가설명은 추가합니다 (한글25글자 영문 50글자)
    max_dlspeed     최대 다운로드 할 수 있는 속도에 제한을 겁니다
    max_ulspeed     최대 업로드 할 수 있는 속도에 제한을 겁니다
    sratio      세션당 레이티오 제한을 겁니다.
                    <섹션명> <값> 형식

       예제: site change xnet
       "xnet" 계정 사용자의 정보를 출력합니다.

       예제: site change xnet ratio 5
           (업/다운 비율을 1:5 로 조정합니다)

       예제: site change xnet flags +12
       사용자의 플래그를 1, 2 를 작동시킵니다. (site 오퍼와 그룹어드민)


chgrp <계정> <그룹> [<변경될그룹>]
            사용자를 그룹에 추가/삭제 합니다.
        
        예제: site chgrp xnet ftp
        사용자의 그룹을 ftp 그룹으로 변경합니다.

        예제2: site chgrp xnet ftp     (위에 한번 실행후 재실행시)
        사용자를 ftp 그룹에서 제명합니다.

        예제: site chgrp xnet ftp sysop
        사용자를 ft p그룹에서 sysop 그룹으로 이전시킵니다


chmod <퍼미션 매스크> <패스/파일명>
            퍼미션을 조정하는 명령어

        예제: site chmod 777 /site/incoming

color       메세지의 컬러 사용 여부를 결정합니다.
        이 기능은 flag 를 조정해주어야만 하며, 컬러가 지원되는
        ftp 프로그램이어야 합니다.


delip <계정명> <인증@ip주소>
        지정하는 ip를 계정에서 삭제합니다. 10개까지 동시 입력됩니다.

        예제: site delip xnet xnet@dgtalx.net

        예제2: site delip xnet 1
        xnet 사용자의 계정의 1번째 ip 슬롯의 데이터를 삭제함
        ( site user xnet 으로 슬롯 확인 가능 )

deluser <계정명>
            해당 계정을 삭제합니다. 하지만 완벽한 삭제는 하지 않고
        데이터는 그대로 보존되어있습니다. 플래그만 기록하는것입니다.
        (삭제 플래그는 6번)
        나중에 완전히 삭제 하려면 site purge 명령어를 사용해야 합니다.

dupe [<수치>] <글월> [<글월2>... ]
        동일한 데이터가 있는지를 ftp-data/logs/dupelog 에서 찾아냅니다
        검색은 대형 db를 찾기때문에 상당한 시간이 소요됩니다.
        여유를 갖고 조금 기다리세요. 또한 글월에는 와일드매치가
        되지 않습니다. * 등의 와일드 카드를 사용하지 마세요

        기본적으로 glftpd는 20개의 대조 결과를 출력합니다.
        만약 당신이 첫번째의 [<수치>] 에 숫자를 입력한다면
        그 갯수만큼의 결과를 출력할것입니다.
        최하단에 출력되는 결과물이 최근 데이터입니다.

        예제: site dupe quoake
        quake 에 관련된 dupe 기록을 서치합니다.

        예제: site dupe quake arena
        "Quoake_Arena" 를 찾습니다 일반 "Quake"는 나오지 않습니다.

        예제: site dupe 50 linux glftpd 1.
        50개의 엔트리를 출력하며, "glftpd" 와 "linux" 그리고 "1."을
        검색합니다. 결과물은 이런것이 됩니다.
        "Glftpd.for.linux.v1.20" 혹은 "glftpd.v1.19_for_linux".

dayup [<섹션>]   오늘의 최고 업로드 사용자를 출력합니다.

daydn [<섹션>]   오늘의 최고 다운로드 사용자를 출력합니다.

flags [<계정명>] 해당 사용자의 플래그를 표시합니다. (기본은 자신)

gadduser <그룹> <계정명> <비밀번호> [<인증@IP주소>.. (5개)]

           gadduser는 새로이 추가된 기능으로 지정한 그룹에
           사용자를 개설과 동시에 추가시키게 됩니다.
           매번 번거로이 이 작업을 해야 하신다면
           /ftp-data/user/default.user 에서 group 을 추가하여
           자동으로 지정하시면 이후 개설을 adduser만으로도
           하실 수 있습니다.


group [<그룹명>]   자기의 그룹 정보를 보거나, 지정한 그룹으로 들어가거나
           그룹에서 탈퇴하는 기능입니다.

groups         현재 존재하는 그룹의 리스트를 출력합니다.

ginfo <그룹명>     해당하는 그룹의 세부 정보를 봅니다.
           만약 그 그룹의 사용자가 삭제된었다면 tagline 에는
           "***DELETED***" 로 출력될 것입니다.


give <계정명> <Kbytes> [<메시지>]
           자신의 크레딧을 남에게 주는 기능입니다.
           이 기능을 사용하려면 사용자들의 FLAG를 조정해야 합니다.
           주의하세요 Byte가 아닌 Kbyte 입니다.

   예제: site give xnet 100000 유용한 자료를 받는데 쓰세요


gpal [<섹션명>]    그룹별 전체 업로드 순위를 봅니다.

gpwk [<섹션명>]    그룹별 주간 업로드 순위를 봅니다.

gpwd [<섹션명>]    그룹별 주간 다운로드 순위를 봅니다.

gpad [<섹션명>]    그룹별 전체 다운로드 순위를 봅니다.

grpadd <그룹명> [<설명>]  새로운 그룹을 생성한다.

      예제: site grpadd sysop 사이트운영팀
        sysop이란 그룹이 생기며 사이트운영팀이라는 설명을 달게된다


grpdel <그룹명>    해당 그룹을 삭제한다

        예제: site grpdel ftp
              ftp 라는 그룹을 삭제한다


grpnfo <그룹명> <설명>
           그룹의 설명을 변경한다

        예제: site grpnfo xnet 관리팀


idle [<아이들시간>]
           최대 접속 유지 가능한 시간을 설정합니다. 이 설정은
           세션마다 별도로 동작합니다. (최대 7200 초)

         예제: site idle
           현재 접속 유지 시간을 확인합니다.

         예제: site idle 7200
               idle 설정을 7200 초로 설정합니다.

         예제: site idle 0
           flag 설정이 된 사용자만이 사용합니다. 무한 idle 설정


kick <계정명>      해당 사용자를 사이트에서 쫓아냅니다.
           전체 연결을 끊기때문에 모든 세션이 종료됩니다.


kill <pid>     특정 pid 를 kill 합니다.
        
          예제: site kill 345
           pid# 345 번 (glftpd 유저에 속한..) 을 kill 합니다.


logins [<수치>] [<검색어>]
           로그인이 실패한 데이터를 출력해줍니다.
           이것은 /glftpd/ftp-data/logs/login.log 를 tail합니다.
           site uchanges 의 syntax를 참조할것


laston         마지막 사용자들의 접속 기록을 보여줍니다.


msg <옵션>     일종의 ftp 상의 메시지이며 편지함 개념을 사용하는
           신개념 메시지 전송기입니다.
           site msg read를 한 상태에서 접속을 끊으시면 메시지가
           사라질 수 있습니다. (purge 현상)
           ?      옵션 : read - 새로온 메시지를 읽습니다
              save - 메시지를 휴지통에서부터 inbox로 저장합니다
              purge - 휴지통에 들어간 메시지를 완전 삭제합니다
              tread - 휴지통에 잇는 메시지를 읽습니다.
              <계정명> <메시지> - 해당사용자에게 메시지를 전송합니다

              { <계정1> <계정2> } <메시지> - 다중 사용자에게
              동시에 메시지를 보내는 기능이며 30명까지 동시에
              전송할 수 있습니다.

              =<그룹명> <메시지> - 그룹에게 메시지를 보냅니다.
              * <message> - 접속된 전 사용자에게 메세지를 보냅니다


         예제: site msg read
           메시지를 읽습니다.

     예제: site msg xnet 안녕?
           안녕? 이라는 메시지를 xnet 사용자에게 보냅니다.

     예제: site msg =sysop 안녕하세요?
           안녕하세요? 라는 메시지를 sysop 그룹의 사용자에게 보냅니다.

         예제: site msg save
           메시지를 저장합니다.

     예제: site msg purge
           메시지를 모두 삭제합니다.


monthup [<섹션>]       월 업로드 순위를 출력합니다.

monthdn [<섹션>]       월 다운로드 순위를 출력합니다.

nfo <파일명> [<nfo파일명>] .zip 압축 안의 .nfo 파일을 보여줍니다.

       예제: site nfo test.zip

       예제: site nfo test.zip classes.nfo

nuke <디렉토리> <배율> <메시지>
               디렉토리를 누크 (삭제) 합니다.

       예제: site nuke mp3 0 하드_용량이_부족합니다
             mp3라는 디렉토리를 하드 용량이 부족하다는 메시지와 함께
             삭제하되 사용자의 크레디트는 감점하지 않는다

       예제: site nuke lesbien 5 난_이런거_싫어해요-_-
             싫다는 메시지와 함께 올린 사람에게 5배의 크레딧을
             감점시킵니다.


nukes      누크가 된 디렉토리들을 조회합니다.


nuketop [<섹션>]       전체 누크 탑 순위를 출력합니다.


new [.] [<#>]          새로 생겨진 디렉토리를 출력합니다.

       예제: site new
             기본 설정값인 10개의 새로운 디렉토리를 출력합니다

       예제: site new .
             현재 디렉토리를 중심으로 새로생성된 하위디렉토리를 출력

       예제: site new . 20
             하위디렉의 새 디렉토리 20개를 검색합니다


onel [<글월>]          접속자 끼리의 온라인 메시지를 표시합니다
               글월을 입력할 경우 메시지를 추가하게 됩니다

       예제: site onel
             ( 온라이너 메시지를 출력함 )

       예제: site onel 안녕하세요? 자료 많이 올려주세요
             위의 글월을 온라이너 공지에 새로이 추가함


passwd <비밀번호>      본인의 비밀번호를 변경하는 기능

       예제: site passwd 12345
             12345 로 새로이 패스워드를 변경함.


purge [<계정명>]       삭제된 사용자를 완전히 지워버림.
               이 경우 site readd 명령어로 추가 불가능해짐


renuser <계정명> <바꿀계정명>  사용자의 계정이름을 변경한다.


request [<글월>]       자료 요청 목록을 표시하거나 추가 한다


reqfilled <#>          자료 요청을 접수함.
       예제: site reqfilled 3
             요청목록 3번을 삭제하고, 해당 사용자에게 메일을 보내준다.


reqlog [<숫자>] [<검색어>]     자료 요청 접수 기록을 확인한다.


readd [<계정명>]       삭제되었던 사용자를 다시 추가시킨다

       예제: site readd
             (삭제된 사용자 목록 출력, 살릴수 있는 사람만)

       예제: site readd xnet
             (xnet 계정을 삭제상태에서 다시 사용자를 추가시킴)


stat               자신의 현재 상태를 출력한다. (크레딧등)


search <글월>          전체 사이트를 검색하여 해당하는 디렉토리
               명이 존재하는지 검색한다
               대소문자 구별을 하지 않는다.


seen <계정명>          해당 유저가 언제 마지막으로 접속한지 확인한다


stats [<계정명>]       사용자의 업/다운로드 상황을 출력한다.
               만약 멀티 세션을 사용중이면 전 세션을 출력한다


show <계정명>          ftp-data/user 의 사용자 파일을 raw 포맷으로
               출력해준다


swho               세부적인 사용자들의 접속정보를 출력한다

tagline [<tagline>]        자신의 태그라인을 보거나 설정한다

       예제: site tagline    
             (tagline 보기)

       예제: site tagline X-network Jjang
             (tagline 설정)



take <계정명> <킬로바이트> [<메시지>]
               사용자에게서 지정한 크레딧만큼 빼앗아온다

       예제: site take bluefeel 10000 바이러스 올리지마



time               현재 사이트의 여러 시간을 보여준다


user [<계정명>]        사용자들의 목록을 출력하거나 사용자의 상세한
               정보를 볼때 사용합니다


users [<키워드>]       그룹에 속해있는 전체 사용자를 봅니다.
               이 기능은 user flag 를 단 사용자만이 가능합니다
               만약, site users c* 를 할 경우
               계정이름이 c로 시작하는 사람들을 그룹에서
               찾아줍니다


update <글월>          지정한 글월과 매치되는 모든 글월의 디렉토리
               정보를 업데이트합니다 (site new 기능으로 확인)
               글월에는 일반적으로 * 를 사용합니다.


uchanges [<번호>] [<검색어>]   사용자의 변경상황 기록을 조회합니다.

       예제: site uchanges 10 deleted
             삭제된 기록 10개를 출력
       예제: site uchanges added
             추가 기록 전체 출력


unnuke <디렉토리명> <메시지>   누크된 디렉토리를 취소 (언눅) 합니다.
                               디렉토리 이름이 길 경우 {디렉토리명} 을 쓰세요


undupe <글월>          해당하는 파일명을 ftp-data/logs/dupefile 목록에
               서 삭제합니다.
       예제: site undupe cls*
             cls로 시작하는 중복 데이터 베이스를 모두 삭제함


vers               glFTPD의 버전정보를 출력

who                접속된 사용자들의 목록을 출력함.

wkup [<섹션명>]        주간 업로드 순위를 출력

wkdn [<섹션명>]        주간 다운로드 순위를 출력

welcome            초기 환영 메시지를 출력함

traffic            사용자들의 up/down 상황을 전 섹션을 합쳐 출력함

ziplist <파일명>       .zip 압축파일 안의 파일들의 이름을 출력함

zipchk <파일명>        .zip 압축파일의 CRC를 체크함

- 3.  glftpd 의 Flags (정책) 목록

site flags 로 자신의 플래그를 볼 수 있으며 현재 상태 또한 볼 수 있다.

   SITEOP  -1- 사이트의 운영자이다.
   GADMIN  -2- 그룹의 관리자
   GLOCK   -3- 그룹을 이동할 수 없도록 설정
   EXEMPT  -4- 사이트의 사용자가 한계치라도 접속을 허용하는 대상
   COLOR   -5- SITE color 명령으로 컬러를 키고 끌 수 있는 사용자
   DELETED -6- 이 플래그가 붙은 사용자는 사용자 삭제가 된 사용자임
   USEREDIT-7- 부 사이트 운영자로써 유저를 에디트할 권한이 있다
   ANON    -8- 이 플래그가 켜진 유저는 ANONYMOUS 로 처리된다
   
       anonymous 에 대한 데몬의 기본 설정. (변경불가)
       1. '!' 로긴을 이용해 기존 이용자의 접속을 끊을 수 없다.
       2. 유저는 DELETE, RMDIR, RENAME 명령어를 사용할 수 없음
       3. 이 유저에게는 상태(stats)를 사용하지 않으며 업데이트
       하지않는다. 만약 외부 스크립트를 사용한다면
       그들의 전송 데이터를 기록하여 보존할 수 있다.

   NUKE    -A- site NUKE 명령을 쓰도록 허용된 사람
   UNNUKE  -B- site UNNUKE 명령을 쓰도록 허용된 사람
   KICK    -C- site kick 명령을 쓰도록 허용된사람
   KILL    -D- site KILL과 swho(pid) 를 .....
   TAKE    -F- TAKE (크레딧 뺏어오기) 가 허용된....
   GIVE    -G-     남에게 크레딧을 줄 수 있는 사람
   USERS   -H- site users와 site user 를 볼 수 있는 일반 유저.
   IDLER   -I- 무한 idle 을 설정할 수 있는 사람.


- 4.  glftpd.conf 파일 설정법

주의사항: conf 파일에 명령어나 값을 기재하실때는 모두 "소문자" 를 사용하십시오.
         대문자를 사용할 경우 glftpd가 인식을 못합니다.

shutdown #
   # 의 수치가 0 일경우 서버는 동작중이며.
   1 일 경우 사이트 오퍼만이 로그인이 가능하며
   2 일 경우 누구도 로그인을 할 수 없다.
   /ftp-data/text/shutdown 을 접속하려는 사용자에게 보여주게 된다

free_space xxx
   이 기능은 사용자의 업로드를 제어하는 설정치 중에 하나이다.
   만약, 이 기능을 사용하지 않는다면 당신의 하드가 10메가도 남지
   않은 상태에서 사용자가 업로드를 하여 하드를 끝까지 채운다면
   당신의 리눅스가 다운되었을때 정상적으로 부팅하지 못할수가 있다.
       약 200메가 대로 이것을 설정하였다면 200메가 이하로 줄어드는것을
   glftpd는 막아줄 것이다.

use_dir_size k|b|m
   glftp가 list명령어로 디렉토리를 보여줄때의 디렉토리들의 사이즈를
   나타낼 표시 단위이다.


timezone +-#
   이 명령은 타임존의 시간대를 늘리거나 줄인다.
   예로 timezone -4 를 할 경우 기본 시간보다 약 4시간전으로 돌아간다
   사용을 권장하는 명령어는 아니다.


sitename_long <이름>[:space:]<이름>
   사이트 이름을 정의한다. 공백은 [:space:] 로 입력해야만 한다.


sitename_short <abb>
   사이트 이름의 약자를 입력한다.


login_prompt <글월>
   글월을 기본 로그인 프롬프트와 대체한다. ([:space:] 를 사용가능)
       로그인 프롬프트는 login 하기 전에 나오는 설명이다.


rootpath <path>
   이 패스는 bin, etc, lib 등이 지정되어있는 시스템디렉토리여야 한다.
   glftpd는 chroot를 직접하고있다.
   기본적으로는 /glftpd가 설정값이 된다.

master <user>
   마스터 오퍼를 지정한다. 이 마스터는 ftp 최고의 권한을 가지고 있으며
   그는 다른이들의 플래그와 다른 사이트 오퍼들을 제어할 권한이 있다

ipc_key #
   glftpd는 shared memory 를 사용한다. 그래서 ipc_key 를 필요로 한다
   기본값으로 gfltpd는 "0x0000DEAD"를 사용한다. 만일 당신이 다른
   glftpd 서버를 클론하여 또 동작시키고 싶을 경우 다른 키를 지정한다
   키값은 hex 디시멀로 입력되며 8자리수를 가지고 있다
   예를들어 "0xBEFEAFDE" 등이 될 수 있다.

   만약 당신이 ftpwho.c 를 사용한다면 ftpwho.c를 수정하거나
   같은 ipc_key 를 구동하여야 두 데몬을 동시에 볼 수 있다

secure_ip <최저대역필드> <nnhostname?> <flags/=groups/-username>
   Glftp는 secure ip라는 정책을 통하여 어떤 유저에게도 addip가 되지않은
   ip대역에서는 데몬이 동작하는지 확인을 할 수 없다.
   정확히는 접속이 불가능해진다.

   secure_ip 2 1 =STAFF 1
   staff들과 사이트 오퍼에게 ip의 2단위 자리까지 설정을 하게한다
   
   secure_ip 1 1 *
       주로 많이 쓰는것이다. 이 경우 *@211.*.*.* 가 허용된다.

   <nnhostname> 은 ip주소가 아닌 domain 을 ip주소로 사용할 수 있게하는
   옵션이다. reverse 되었다면 이 기능과 위의 설치시 inetd 컨피그의
   설정을 변경하여 같이 사용하면 된다.
   nnhostname 이 1일 경우 domain을 사용하는것이고 0 이면 ip만 사용한다는것

secure_pass <mask> <flags/=groups/-usernames>
   glftpd는 <mask>가 포함한 패스워드를 사용하지 못하게 하거나
   패스워드의 최저 길이나 몇가지 설정등을 할 수 있다.
   '.' 은 패스워드의 길이를 제어할 수 있다.
   예를들어 Ab1... 를 mask에 입력할 경우 패스워드는 6 바이트 이상이어야
   하며 적어도 하나의 대문자와 하나의 소문자, 하나의 숫자를 포함하여
   패스워드를 작성해야만 site passwd 가 작동할 수 있도록 된다.
   위에 Ab1... 를 할 경우 사용자가 지정할때의 passwd 동작은 아래와 같아
   Abcde1 등으로 대문자1, 소문자1개이상, 숫자 1개이상만 변경되며
   6자리를 넘겨야만 site passwd가 허용된다.
   abcdef 등으로 패스워드를 변경할 경우 위의 규칙과는 어긋나기에
   패스워드 변경이 거부된다.

   또한 플래그나 그룹네임의 ! 로 부정문을 선언할 수 있다.

   secure_pass zzf3$. !1 !=STAFF *
   를 선언할 경우의 정의는 아래와 같다.
   이 선언은 모두에게 적용되나, Siteops (플래그 1번) 과 STAFF 에게는
   적용되지 않는다 (그룹). 적어도 2개의 대문자와 1개의 소문자와
   1개의 숫자, 그리고 다른 특수 캐릭터 (!나 # 등) 으로 구성되어야 한다.


datapath <path>
   glftp가 불러들어 사용하는 데이터들의 패스파일이다.
   기본값은 ftp-data 이며 root path 가 /glftpd일 경우
   이 패스는 datapath /ftp-data 로 입력하면된다.
   만약 rootpath / 로 설정이 되어있을 경우
   datapath 는 /glftpd/ftp-data 로 입력해야 한다.


pwd_path <path/file>
   glftpd의 passwd 파일이 있는곳을 설정한다.
   기본값은 /etc/passwd 이며, 만일 rootpath가 / 라면
   pwd_path는 /glftpd/etc/passwd 로 지정해야한다


grp_path <path/file>
   glftpd의 그룹파일이 저장된 경로를 지정함
   (기본값은 /etc/group)


botscript_path <path>
   bot script의 디렉토리를 지정함.
   botscript는 디렉토리가 만들어지거나 누크당했을때 동작한다.
   봇에 'announce'를 신호로 지정하여 새 디렉토리를 처리할 수 있다.


bouncer_ip x.x.x.x [ x.x.x.x ... ]
   당신이 ftp 바운서를 사용할 경우 당신은 바운서의 ip를 지정하여
   glftpd의 접속 바운서 설정을 하여 user가 들어올 수 있도록 한다


speed_limit PATH  DL_LIMIT  UP_LIMIT
       특정 디렉토리나 전역에 업로드 속도 다운로드 속도의 제한을
   설정할 수 있다.
   
   speed_limit /site/Incoming* 150000 0
   speed_limit /* 20000 0
   등으로 설정이 가능하다 (0=무제한)


calc_crc [<filemask>|<path>] ...
   특정 압축파일을 올릴때 즉시 압축의 crc 체크를 하는 옵션이다.
   
   calc_crc *.rar /site/* 등으로 설정이 가능하다.


nmap <#>
   다운로드의 속도를 조금이나마 향상하기 위해 1~50 메가 사이로 지정하여
   메모리에 올려놓고 다운로드 대기를 하며 속도를 향상시킨다.
   기본값은 16이며 16메가 이하의 파일을 대기 시킨다.

   만약 당신의 메모리가 64메가 일 경우 이 옵션의 수치를 16 이하로 잡는것이
   운영에 도움이 될 것이다.


min_homedir <path>
   사이트 오퍼들이 사용자에게 지정할 수 있는 최상위 홈디렉토리이다.
   만약에 사용자의 계정별로 ftp를 운영할 경우
   min_homedir 을 /site/users/home 이라면 site oper는
   site/users/ 에 홈디렉토리를 지정할 수 없다.
   site/users/home 이하의 디렉토리에서 지정할 권한을 준다  
   주의할것은 필요한 경우가 아니면 절대 루트path 를 지정해서는 안된다.
       이것은 사용자가 액세스 하는 부분이 아닌 오퍼가 사용자의 디렉토리를
       지정하는것에 대한 문제임으로 민감하다.


valid_ip <ip>
   만약 멀티 ip를 시스템이 사용하고있고 glftpd가 인식할 ip를 지정하려면
   이 명령어를 사용한다. 이 명령을 사용하면 이 ip를 통해서만 접속이된다
   만약 valid_ip 127.0.0.1 로 지정했다면 ftp localhost 나 ftp 127.0.0.1
   로 접속이 되겠지만 자신의 ip인 211.58.58.58 등으로는 접속을 인식하지
   못한다


pasv_addr <ip>
   passive 모드에 사용될 IP/host 를 검색한다


welcome_msg <path/filename> <flags/grp/user>
   로그인 할 경우 출력될 메시지 파일을 지정한다.
   이것은 패스워드를 입력하고 난 후에 출력하는 메시지이다.

   welcome_msg를 여러줄로 선언하여 그룹별, 플래그별, 유저네임별로
   설정이 가능하다.
   첫번째 매치되는 파일에서 찾을 경우 서치를 중단하게된다.


goodbye_msg <path/filename> <flag/grp/usr>
   로그 오프시에 나올 메시지 설정
   welcome_msg와 사용법 동일


newsfile <path/filename? <flag/grp/usr>
   처음 cd 명령어를 이용할때 나오는 이슈 (뉴스) 파일을 설정한다.
   (cd는 change dir의 cd임)
   위의 명령어와 사용법은 같으며 다른점은 첫 newsfile 이 끝나도
   다음 newsfile 까지 계속 이어진다 (중단되지 않는다)


banner <path/filename>
   username 을 묻기전에 나오는 출력 메시지이다.


alias <alias> <directory>
   디렉토리의 aliasing 을 정의한다 (앨리어싱)

       예제: alias util    /incoming/utils

   이 경우 어디에서나 cd util 할 경우 해당하는 디렉토리로 이동한다


cdpath <cdpath>
   디렉토리를 이동할때 검색할 패스를 정의한다

   예제: cdpath /incoming/utils
         cdpath /incoming/games

   위와같이 지정한 상태에서 유저가 cd foo 를 할 경우 해당 디렉토리 아래
   경로가 있다면 위의 경로들을 아래와 같이 출력한다

   ./foo
   an alias called 'foo'
   /incoming/utils/foo
   /incoming/games/foo


ignore_type <filemask> [<filemask> ...]
   디렉토리 레이스 인포등에 무시할 파일명을 지정한다.

   예제:
   ignore_type *.[tT][xX][tT] *.[nN][fF][oO] [rR][eE][aA][dD][mM][eE] .message
   ignore_type *.[sS][fF][vV] *.[cC][rR][cC] *.[dD][iI][zZ]



*RIGHTS Section*

이 항목은 right section 이 시작되는 begin 지점의 셋팅입니다.
기본값은 no이며 굳이 !* 를 하지 않으셔도 됩니다.


   Function        Path            Flags/Groups/Users
   ------------------------------------------------------------------

   delete          /site/GRP_PRE/*     =GRP

   deleteown       /site*          !8 *

   overwrite       /site/GRP*      =GRP

   rename          /site/GRP_PRE/*     =GRP 1 = STAFF

       makedir         /site*                          *
       
       upload          /site/incoming/????/*/*         *

   upload          /site/request/*                 *   

       download        /site/*                         !-viewer *
       
       nuke            /site/incoming/????/*           *

       dirlog          /site/incoming/????/*/          *

   hideinwho       /private/pre/directory*         !1 !=STAFF *

       freedl          /site/freesufff/*               *

       freefile        *.[Nn][Ff][Oo]                  *

       nostats         /site/requests/*                *

더 자세한 도움에 대해서는 glftpd.conf-EXAMPLES 를 참조하길 권장합니다만
그 파일을 그냥 덮어쓰는 일이 없길 바랍니다.


stat_section <키워드> <디렉토리> <크레딧분리>

   stat_section DEFAULT    *   yes
   등으로 입력합니다. 이것은 크레딧을 적용하느냐에 대한것입니다.
   이 섹션은 언제나 conf 파일에 존재해야하는 부분이며 원치 않을 경우는

   stat_section    DEFAULT     *       yes

   를 적용하시면 전체적으로 적용됩니다.
   아래는 적용예제입니다.

   stat_section    GAMES   /incoming/games*    yes
   stat_section    UTILS   /incoming/utils*    no

   이렇게 설정하실 경우 games 라는 섹션이 생겨지며
   game에서 다운받을때는 up/down/credit 이 변경됩니다만
   util에서 다운을 받을때는 credit 제도를 사용하지 않게됩니다.


path-filter <group> <path/filename> [<필터> ...]
   파일에대한 캐릭터값의 규칙을 정의하는 것입니다.
   이를 제대로 수정하지 않을경우 한국어로된 디렉토리 생성에 문제가 생깁니다

   기본값은 아래와 같습니다.
           group  message-file       filters
       -----  ---------------------- -------
path-filter    *   /ftp-data/misc/pathmsg ^[-A-Za-z0-9_.()[:space:]]*$ ^\. ^-

   해당라인을 추석 처리 (#path-filter) 하여 사용하지 않도록
   하면 한글입력이 별 무리 없이 잘 되었습니다.

   혹시나 한글 디렉토리를 포기하는 무례한(?) 분이 계실지 몰라
   필터링 방법에 대해 설명합니다.

       필터링은 A-Z, a-z, 0-9, "._-()" 그리고 스페이스 등으로 됩니다.
   또한 . 이나 - 로 패스가 시작할순 없습니다.

   또한 [와 ] 캐릭터를 사용하길 원하시면 필터에 ^[][A-Za-z 등으로 앞에
   [] 를 하나 추가해주시면 됩니다.


max_users <#> <#>
   최대로 서버에 물릴 수 있는 사용자를 정하는 것입니다.
   첫번째 값은 최대로 유저가 물릴 수 있는 사용자의 수치이며
   두번재 값은 이 사이트가 풀 상태일때 몇명까지 더 받을 수 있는지
   지정하는 것입니다.
      
       경고: 사용자가 한명이라도 ftp에 접속해있을때 이 옵션을 바꾸지 마십시오
         문제가 발생할 수 있음으로 아무도 ftp에 접속하지 않았을때 변경할것


show_diz <파일명>
   지정한 diz파일이 존재할 경우 디렉토리에 진입할때 자동으로 보여주는
   설정입니다.

   예제: show_diz  FILE_ID.DIZ
         show_diz  .message


show_totals <path>
   사용자가 지정한 디렉토리에 진입할 경우 stats의 정보나 디렉토리의
   레이스 정보가 출력되게 합니다.

   예제: show_totals   /site/incoming/?????/*/

dl_incomplete <1/0>
   다운로드를 하기전에 업로드가 완벽히 끝났는지를 확인한다
   (기본 1로 설정하는것을 권장하고있다. 자세한것은 glftpd.docs참조)



dupe_check <#>
   일단위 듀프 (유사데이터) 체크를 하는 설정. 0 은 사용안함.


3 built-in scripts:
   이 스크립트 들의 패스는 glftpd의 셋팅을 기준으로 한 절대경로여야 한다
   만약 당신이 설정한 rootpath 가 / 일 경우에는 이 설정들의 패스는
   /glftpd/bin/scriptname 등으로 해야한다.
   만일 rootpath가 /glftpd 일 경우 /bin/스크립트네임 을 지정한다


pre_check /bin/dupescript
   업로드 전에 dupe 스크립트를 구동하여 유사한지를 체크한다.
   dupe 체크를 할 경우 동일 자료로 판명되면
   크레딧을 올리지 않는다. 이어 올리기도 같다.


pre_dir_check /bin/dirscript
   이 dir_check 는 디렉토리가 생성되기 전에 체크해준다.


post_check /bin/zipscript   
   이것은 업로드가 끝난 후에 zipscript 를 통해 rar같은 파일의 경우
   sfv 체크나 몇가지 체킹을 한다.

   post_check 스크립트는 3가지 파라미터값 (parameters) 를 사용한다
   $1 - 업로드될 파일명
   $2 - 파일이 올라간 디렉토리명
   $3 - 만일 calc_crc 가 동작중일때 체크할 crc 코드 파일
   더 자세한것은 glftpd.docs 를 참조할것 (이 기본값 외의 조금의 부가설명
   이 존재함)


ignore_noop <1/0>
   이 셋팅이 1일 경우 NOOP 커맨드를 무시한다.
   NOOP 이란 윈도우나 다른 ftp 클라이언트에서 idle 을 늘리기 위해
   틱을 올리는 (접속유지의 일종) 커맨드이다.
   가급적 ignore NOOP 을 해놓는것이 좋다.


total_users <#>
   glftpd 에 등록시킬 수 있는 사용자의 한계치이다.
   적당히 잡는다 (glinstall 은 300명을 디폴트값으로 지정한다)


lslong <path/file options>
   이 설정은 디폴트한 ls 의 커맨드 패리미터를 설정한다

   예제. lslong -a
   이것은 모든 히든 파일을 보여주는것으로 기본 설정이 된다


noretrieve <파일명> [<파일명>.....]
   지정한 파일명은 다운로드 받을 수 없도록 설정한다.
   패스워드 파일이나 민감한 파일에 대해 미리 설정할 수 있다.


default_homedir <path>
   홈디렉토리는 유저의 passwd 의 파일들이 유저 홈디렉토리다.
   로그인을 할 경우 자동으로 이 디렉토리로 이동한다.
   min_homedir 명령어로 다른 오퍼들의 최종 홈디렉토리 변경 위치를
   지정할 수 있으며 자세한것은 윗부분의 설명을 참고하라
   만약 버츄어 디렉토리를 사용하여 /glftpd/site 이외의 외부적인
   /mp3등의 디렉을 심볼릭 링크할것이려면 이는 /로 설정해야한다


dir_names <1/0> <1/0> <lower/upper>
   디렉토리 네임의 룰이다.
   아래의 예제를 참조하라

           캡  변형여부    디렉명의 대/소문자
           ----    ---------   ------------------
   dir_names   1   1       lower

   이 경우 스페이스 (ascii 값 20) 가 들어있는 디렉토리를 _ 로 변경하며
   모든 디렉토리의 첫번째 문자를 대문자로 변경해버린 후 나머지를 소문자로
   사용하게 한다. 그러나 강제적으로 mkdir III 할 경우 디렉토리는
   III로 생성된다.


   디렉명의 대 소문자 컨버팅의 설정은 lower 나 upper 혹은 공백으로
   두어도 좋다.

   위의 캡 부분은 첫번째 문자를 대문자로 할것인지에 대한 것이고
   변형여부란 스페이스바를 _ 로 변형할것인지에 대한 설정이다.

   변형여부는 1 로 해놓는것이 노멀한 ftp 사용자의 접속에 도움이 된다.
   만약 디렉토리명이 my document files 라고 할 경우
   ncftp나 윈도우용 클라이언트로 접속한 사용자는 별 지장이 없겠지만

   특정한 클라이언트나 기본적인 ftp 사용자들은 곤욕을 치룰것이다.
   왜냐하면 "my document files" 라고 지정을 해야하기 때문이다.
   물론 이 경우는 아주 희박하다.
   glftpd 에는 오토 매치 디렉토리 무빙 기능이 있기때문에
   cd my 만 해도 이동이 된다.

   그러나! 모르는 사람을 위해서는 켜놓는것이 안전하다

ver 1.21 -------------------

dir_names <1/0> [<lower/upper>] [XY] [XY]
       디렉토리 네임의 룰이다. 이 설정 방식은 v 1.21에서만 동작하니
   유의하여 사용해야 하며 file_names 역시 이와 같이 설정된다.
   그러니 이 룰을 따라서 사용하라
       아래의 예제를 참조하라

                       캡      대/소문자?     변형할 캐릭터값
                       ----    ---------       ------------------
       dir_names       1       lower           [:space:]_ ,. [( ])

       1.20 을 써본 사람이라면 아마 알것이다.
       이것이 어떠한 패턴으로 변형되었는지.
       캡의 경우는 디렉토리 생성시 첫 디렉토리를 대문자로 할것인지 그냥
       지정한대로 할것인지에 대한 값을 1/0 으로 설정/해제를 한다.

       대/소문자는 lower로 지정하였기 때문에 후에 지정되는 디렉토리명을 전부
       소문자로 변형한다.

       변형할 캐릭터값은 [:space:] 를 _ 로 ,를 . 으로 [를 ( 로 등으로
       X와 Y값을 대입한다. X는 타겟이고 Y는 변경될값이다.

----------------------------


file_names <1/0> <1/0> <lower/upper>
   파일 네임의 대한 규칙을 설정한다.

   위의 dir_names 룰과 동일하게 적용된다. 위의 설정을 잘 읽어볼것


v 1.21 ---------------------
file_names <1/0> [<lower/upper>] [XY] [XY]

   위의 v 1.21 의 dir_names 설정의 룰을 참고하라 위에 사용법이
   설명되어있다.
----------------------------


tagline <글월>
   여기에 지정한 tagline 과 동일할 경우 사용자는 그 태그라인을
   변경하기 전까지는 다운을 받을 수 없도록 한다.
   설정을 잘 활용하여 사용자의 태그라인에 e-mail 주소를 적도록 유도한다



email <user@host>
   운영자의 e-mail 주소다. 이 설정은 e-mail 쿠키에 같이 쓰인다


multiplier_max <#>
   최대 누크 배율을 설정할 수 있다. 이는 누크시의 크레딧 삭감 배율을
   설정하는데에 사용된다.


lastonline <경로/파일명> <#>
oneliners <경로/파일명> <#>
requests <경로/파일명> <#>
   예제 :

           파일 경로           보여질 최대 줄수
           ---------           ----------------
   lastonline  /ftp-data/misc/lastonline   10
   oneliners   /ftp-data/misc/oneliners    10
   requests    /ftp-data/misc/requests     10

   위의 설정은 glftpd에게 해당하는 명령의 저장된 파일 경로가 어디인지와
   얼마나 많은 줄을 출력할것인지에 대한 설정이다.


empty_nuke <#>
   이 해석은 정확하지 않을 수 있습니다.
   이것은 glftpd.docs 를 읽어 자세히 보시기 바랍니다.

   "대략적인 해석으로는 유저가 자신의 빈 디렉토리를 누킹할 경우
   지정한 킬로바이트와 같을경우 삭제해버린다"


dividerline <글월>
   site groups 명령과 site gorup 명령의 출력물중 두 라인을 분리하는
   줄의 글월을 입력합니다.


nodupecheck <경로>
   지정하는 디렉토리는 dupe-checker 를 동작시키지 않습니다.
   와일드 카드를 사용할 수 있습니다.


creditcheck <path> <ratio>
   디폴트값과는 다르게 해당하는 디렉토리만의 업로드 크레딧 설정을 개별적으로 합니다.


no_ident <flags|=GROUPs|-usernames>
   ident 기능을 해당하는 부분에 적용하지 않습니다.
   flag, 그룹, 유저 네임에 대한 설정은 위에 보시면 많이 나와있습니다.


nukedir_style <format> <0/1/2> <byte>
   site nuke 명령어의 셋팅입니다.

   세컨드 옵션 : 0 = 누크당한 디렉토리를 모두 삭제
             1 = 누크당한 디렉토리의 파일만 모두 삭제하고 디렉토리 남김
             2 = 파일과 디렉토리를 모두 살려둠

   nukedir_style  NUKED-%N     2      50000

   이 설정의 경우 nuke 시 파일/디렉토리를 모두 살려둡니다.
   그리고 NUKED-디렉토리명 으로 dir 이 출력됩니다.
   또한 서드 옵션을 사용하였습니다. (바이트)
   파일의 총 합 (디렉토리포함) 이 50000 바이트 이하일 경우
   완전히 삭제하도록 설정합니다.


hideuser <계정명>
   site who, site users 명령어에서 보이지 않게할 유저를 지정합니다.


v 1.21 ---------------

hideuser <flag> <name>
   기존의 설정처럼 glftpd 등으로 입력 하는 방식에서 플래그를 포함한
   입력식으로 변경되었다.
   
   예를들면 -glftpd (계정명) =oper (그룹명입력시)

   예제: hideuser -xnet -glftpd =STAFF
----------------------


privgroup <그룹명> <설명>
   당신만의 개인 그룹을 설정할 수 있습니다.

   예제: privgroup STAFF Siteops[:space:]And[:space:]Such


msgpath <경로> <파일명> <flag/grp/usr>
   특정 디렉토리에 진입할경우 보여줄 메시지 파일의 설정입니다.

   예제:   msgpath /incoming/  /ftp-data/misc/incoming.txt *
   등등..


privpath <경로> <flags/users/groups>
   당신만의 개인 패스를 설정하는 것이다.
   이 경로를 지정해놓을 경우 flag/user/group 중에 매치가 안되는 사람에게는
   이 경로가 보여지지 않는다.

   주의: 이 경로에는 와일드카드 (*,? 등) 을 설정할 수 없다.
   와일드 카드는 디렉토리 리스트 디스플레이 속도를 현저하게 느리게 하기에
   설정을 제어했다.


site_cmd <cmd name> <exec/text> <filename>
   이 설정으로 당신은 외부적인 site 명령어를 지정할 수 있다.

   예제:   site_cmd    RULES   TEXT    /ftp-data/misc/site.rules
       site_cmd    UPURGE  EXEC    /bin/upurge.sh


   주의: 여기서 지정한 모든 외부 명령은 명령어 접근 권한 (glftpd.conf
       최하단에..) 지정을 해주어야 한다.
       예제: custom-rules *
             custom-UPURGE =STAFF -Usurper 1 7


cscript <cmd name> <when to run> <path/filename>
   custom 스크립트에 대한 설정이다. (혹은 binary 실행파일)
   
   <cmd name> - 스크립트를 실행할 커맨드명이다.
   <when to run> - pre 혹은 post 등을 사용할 수 있다.
           pre 는 파일을 올리기 전, post는 올린후 등으로
           실행 전/후의 설정을 할 수 있다.
           
   이 명령어의 설정에는 스페이스 (공백값)을 지정할 수 있다.
   [:space:] 를 글자 사이에 집어넣을 수 있다. 예제: site[:space:]WHO

   여기에 대해 더 자세한 설명은 glftpd.docs 를 참고하라


-- 별책부록(?)  glftpd.conf 의 명령어 접근권한 설정 --

명령어 옆의 수치는 flags 와 group, user 의 조합으로 이 명령어 들을
제한하게 됩니다.
기본값은 바꾸지 않아도 될 정도로 밸런싱이 훌륭히 되어있으나
혹시 바꾸고 싶으신 명령어가 있으면 잘 수정하시기 바랍니다.


-addip           1 2 7
-adduser         1 2 7
-change          1 7
-changeflags     1
-changeratio     1 2 7
-changesratio    1 7
-changehomedir   1
-chmod           1
-chgrp           1 7
-chgrp-priv      1              (chgrp for private groups)
-chpass          1 2 7
-delip           1 2 7
-deluser         1 2 7
-flags           1 2
-gadduser        1 7
-ginfo           2 H
-give            G
-group           !3 *
-groups          *
-grpadd          1
-grpdel          1
-grplog          1
-grpnfo          1 2
-grpren          1
-kick            D
-kill            E
-logins          1
-msg             *
-msg*            1              (msg to everyone, msg * blah)
-msg=            1              (msg to a group (members of group are
exempted), msg =STAFF blah)
-msg{            *              (msg to several users, msg { a b c } blah)
-nuke            A
-passwd          *
-purge           1
-readd           1 2 7
-renuser         1 7
-reqlog          1 A B 7
-show            1
-swho            =STAFF 1 E
-take            F
-traffic         *
-uchanges        1 =STAFF
-undupe          C
-unnuke          B
-update          1
-users           H
-usercomment     1 7            (who should see user.comment when doing
site use
r)
-userextra       1 2 7          (who should see user's IPs when doing site
user)
-who             *

-misc           !8 *            (vers time color idle)
-help           !8 *            (help)
-ziputils       !8 *            (zipchk ziplist nfo)
-request        !8 *            (request reqfilled)
-dirs           !8 *            (search dupe new nukes unnukes cdpath
alias)
-info           !8 *            (laston welcome onel)
-user           !8 *            (user seen unfo tagline)
-stats          !8 *            (wkup wkdn alup aldn monthup monthdn dayup
daydn stats nuketop traffic gpal gpwk gpwd gpad)

만약 당신의 ftp에는 "You do not have access to this command"라는 메시지를 자신만의 메시지로 교체하기 원하신다면 아래의 줄을 추가하시면 됩니다.

-noaccess   /ftp-data/text/noaccess.txt
(이후 noaccess.txt 파일 변경)


사용자 정의 명령에 대한 설정도 해야합니다.
명령어 앞에 custom- 를 입력하시면 됩니다. 아래는 예제입니다.

custom-rules    *


외부 스크립트에서는 아래와 같은 환경변수를 받아올 수 있다.

   $USER       유저명
   $FLAGS      유저의 플래그
   $TAGLINE    유저의 태그라인
   $GROUP      유저의 그룹
   $RATIO      유저의 레이티오 (업/전송 비율)
   $GADMIN     이 그룹의 어드민
   $PGROUP     첫번째 개인 그룹
   $SPEED      Kb/s 로 표현되는 속도  (매 업/다운 후에 속도를 체크함)



- 5. color cookies (컬러 쿠키값)

이 아래부터는 사용가능한 색상들의 값들을 알립니다.
:는 따라치는게 아닌건 여러분도 아시리라 믿습니다.


!Z: 글자 굵게 (bold)


일반 색상
---------
!a: 검정        !A: 어두운 회색
!b: 빨간색 (적색)   !B: 밝은 빨강
!c: 초록색      !C: 밝은 초록
!d: 갈색        !D: 노란색
!e: 파란색      !E: 밝은 파랑
!f: 진홍색      !F: 밝은 홍색
!g: 하늘색      !G: 밝은 하늘색
!h: 옅은 회색       !H: 하얀색


반짝이는 글자 색상
------------------

!k: 검정                !K: 어두운 회색
!l: 빨간색 (적색)       !L: 밝은 빨강
!m: 초록색              !M: 밝은 초록
!n: 갈색                !N: 노란색
!o: 파란색              !O: 밝은 파랑
!p: 진홍색              !P: 밝은 홍색
!r: 하늘색              !R: 밝은 하늘색
!s: 옅은 회색           !S: 하얀색



배경 색상 (반전색)
------------------

!1: 검정    !2: 빨강 (적색)     !3: 초록    !4: 노랑
!5: 파랑    !6: 진홍        !7: 하늘    !8: 하양


특수 쿠키값
-----------

!0: 전 속성 (굵게하기 배경색 등의 모든 쿠키들의 설정)을 해제한다
   이 코드는 컬러를 쓴 줄의 끝에 붙이도록 한다


- 6. 기타 쿠키값

모든 쿠키값이 아래부터 정의됩니다. : 는 입력하지 마시기 바랍니다.

쿠키의 출력인자는 C와 비슷하다. 특히 스트링의 경우에는 아주 흡사하다.

아래의 몇가지 예제를 참조하라

주의: 아래의 = 이하는 결과값입니다.

   쿠키값      %d - 정수. 수치,  %f - 소수, %s - 글월

   예제. 남은 용량     %[%.1f]FMB  =   180.5MB
         호스트명      %[%-13.13s]E    =   localhost@127
         카운터        %[%02d]c    =   01
         전용률        %[%.2f]AK/s = 150.23K/s




%[%f]A: 최근 기록된 실시간 평균치. 전송률을 초당 Kilo 로
%[%f]F: 현재의 디렉토리에서의 남은 공간을 메가 단위로 표현
%[%s]E: 이메일 주소
%[%d]M: 최대로 접속가능자 (maxuser) 수의 사용자
%[%d]B: 현재까지 로그인 했었던 사용자의 수
%[%s]T: 현재 날짜와 시간
%[%s]D: 해당 파일의 마지막 변경 시간과 날짜
%[%s]R: 원격 접속지 (RemoteHost)
%[%s]H: 호스트명 Hostname
%[%s]S: 긴 사이트명 (sitename Long)
%[%s]s: 짧은 사이트명 (sitename Short)
%[%d]c: 카운터
%[%s]d: 현재 디렉토리
%[%s]b: 현재 세션의 이름
%%: 문자 그대로 % 를 출력함 이 쿠키의 시작값이 %기 때문에 %가 출력되지 못하는데
   이 쿠키를 이용하여 버닝이 가능하다


%[%s]Iu: 유저네임
%[%s]I$: 유저의 커맨트 (주의해서 사용할것)
%[%s]Iy: Groups: 긴 글자는 스페이스(공백)으로 구분
%[%s]IY: Private Groups: 긴 글자는 스페이스(공백)으로 구분
%[%s]IZ: 사용자의 플래그
%[%s]Ir: Ratio:  "1:x" 혹은 "leech" (만약 레이티오가 0일때)
%[%s]Id: 유저가 메시지를 기다리고 있을때에는 Y를 출력해주고 아니면 N을 출력
%[%s]IE: 타임프레임 (timeframe) 을 출력함
%[%d]If: 총 업로드 된 %d개의 파일수
%[%d]IF: 이번 접속에 올라온 파일들수
%[%d]Ig: 이번 주에 올라온 파일들수
%[%d]Ia: 이번 달에 ........
%[%d]IA: 오늘 올라온 파일들수
%[%f]IG: 총 업로드 된 파일들의 용량 (MB단위)
%[%f]Ih: 이번 주 업로드 용량
%[%f]IH: 이번 접속의 업로드 용량
%[%f]Ib: 이번달 업로드 용량
%[%f]IB: 오늘 업로드 용량 (위의 전부 MB단위임)
%[%d]Ii: 다운로드 파일 총계
%[%d]II: 주간 다운로드 파일수
%[%d]Ij: 이번 접속에 다운로드된 파일수
%[%d]In: 이번달 다운로드 파일수
%[%d]IN: 오늘 다운로드 파일수
%[%f]IJ: 총 다운로드 된 파일의 용량 (이하 MB단위)
%[%f]Ik: 주간 다운로드된 파일 용량
%[%f]IK: 이번 접속에 다운로드 된 용량
%[%f]Ip: 이번달 다운로드된 용량
%[%f]IP: 오늘 다운로드된 용량
%[%f]IU: 업로드 율의 평균치 (Kb/초 이하)
%[%f]ID: 다운로드율의 평균치
%[%f]IS: 오늘 다운로드율 평균치
%[%f]IV: 이번주 다운로드율 평균치
%[%f]Iv: 이번달 다운로드율 평균치
%[%f]Iq: 이번주 업로드율 평균치
%[%f]IQ: 이번달 업로드율 평균치
%[%f]Is: 오늘의 업로드율 평균치
%[%f]IR: 전반적인 전송률 평균
%[%s]It: 유저의 태그라인
%[%s]IX: 그룹 어드민을 위한 adduser가 가능한 남은 슬롯 수  
%[%s]IT: 유저의 마지막 접속 시간/날짜
%[%d]Iw: 제한된 시간 (분단위)
%[%f]Ic: 크레딧의 총계 (MB단위)
%[%d]IL: 총 유저들의 로그인 한 횟수
%[%s]IM: 사용자의 총 다중 접속수치 혹은 unlimited
%[%d]Im: 현재 유저의 로그인한 횟수
%[%s]Io: 이번에 접속한 시간
%[%s]Ie: 오늘 접속한 시간
%[%s]IC: 사용자가 시스템에 추가되었을때..
%[%f]IW: 주간 할당량
%[%s]Il: 마지막 누크된것
%[%d]IO: 누크횟수
%[%f]Ix: 누크된 용량
%[%s]I0: 사용자에 할당된 Ip #1
%[%s]I1: Ip #2
%[%s]I2: Ip #3
%[%s]I3: Ip #4
%[%s]I4: Ip #5
%[%s]I5: Ip #6
%[%s]I6: Ip #7
%[%s]I7: Ip #8
%[%s]I8: Ip #9
%[%s]I9: Ip #10
%[%f]Iz: 사용자에게 허용된 다운로드 속도
%[%f]I&: 사용자에게 허용된 업로드 속도


Show_total 의 쿠키들
-------------------

%[%s]Zu: 업로더
%[%s]Zg: 그룹
%[%s]Zb: 업로더의 총 용량
%[%s]Zf: 업로더의 총 파일 수
%[%f]Zp: 업로더의 총 업로드 용량의 퍼센테이지
%[%f]ZP: 총 퍼센트
%[%s]ZB: 디렉토리 안의 총 용량
%[%s]ZF: 디렉토리 안의 총 파일수


who is online 의 쿠키들
--------------------

%[%s]Wa: 유저 액션
%[%s]Wo: 접속 시간
%[%s]Wi: 아이들 시간
%[%s]Wu: 유저네임
%[%s]Wg: 그룹
%[%s]Wp: PiD
%[%s]Wd: 현재 디렉토리
%[%s]Wh: 원격 접속 호스트명
%[%s]Wt: 유저의 태그라인
%[%s]Wx: 총 업로드 속도 (전체 유저)
%[%s]Wy: 총 다운로드 속도


New Directorie의 쿠키값
-----------------------

%[%s]ND: 새로운 디렉토리 (full path)
%[%s]Nd: 새로운 디렉토리
%[%s]Na: 기간
%[%s]Nm: 오너 (owner)
%[%s]Ns: 사이즈


Nuke/Unnuke 쿠키값
-------------------

%[%s]KD: Nuked/UnNuked 디렉토리 (full path)
%[%s]Kd: Nuked/UnNuked dir
%[%s]Ka: 기간
%[%s]Kr: 이유/붙이는말
%[%s]Kn: Nukee/Old Nukee
%[%s]KN: 누커/언누커
%[%s]Ks: 증폭 배율 + 용량      


다목적 STAT 의 쿠키값
-------------------------

해석할 값이 별로 없어서 그냥 두었습니다.

%[%s]Gb: Bytes - 전 stats에 유효한 값.
%[%s]GN: Times nuked - Nuketop cookie only.
%[%s]Gs: Speed in K/sec - Used in all but nuketop and grouptops.
%[%s]Gn: Bytes nuked - Nuketop cookie only.
%[%s]Gt: User's tagline.  Used in all but grouptops.
%[%s]Gu: Username.  Used in all but grouptops.
%[%s]Gg: Group - Available for all stats.
%[%s]Gf: Number of files.  Used in all but nuketop.
%[%s]Gd: Group description.  Used in grouptops only.
%[%s]Gm: # of Group members.  Used in grouptops only.


Special Cookies
---------------

%=COOKIE/path/file      유저의 COOKIE 가 enable 되었을때만 출력한다.

       ex. %=123/ftp-data/text/site.help.nuke

       이 파일을 출력하기 위해서는 'site.help.nuke' 유저가 해당하는 플래그를
       가지고 있어야만 보인다. 1,2,3 세개의 플래그


"Super" Cookies
---------------
이 쿠키는 그들 자신의 첫 줄의 시작에 작성해야만 동작한다
#를 당신이 특정한 수치로 변경하여야 한다. 대체적으로 이것은 몇줄이 출력되느냐를
설정하게 된다

고정적인 쿠키를 위한 설정이며 섹션은 부가적으로 사용된다.
만약 (섹션이) 없을 경우 stats는 현재의 섹션을 기준으로 계산하게 된다.
당신은 다른 섹션의 이름이나 번호를 지정할 수 있다.
(기본 섹션은 0 이며 섹션 10일경우 9가 된다 시작섹션이 0이기 때문이다)


%!/dir/file             파일출력
%=123/dir/file          플래그 1,2,3 에 해당하는 유저에게만 출력
%@GROUP /dir/fil        해당하는 그룹의 유저에게만 출력
%EXEC/dir/file          실행과 동시에 파일을 출력한다
%NEW# <dir>             새로운 업로드를 보여준다
%ONEL                   현재의 oneliner 를 보여준다  (site onel)
%WHO                    site who의 who's online을 출력
%REQS                   request 를 출력

(아래 일부 해석하지 않음. 이 문서의 윗 부분을 읽은 사람은 즉해 가능함)

%NUKES#                 Display nukes
%UNNUKES#               Display unnukes
%LASTON                 Display Last # of users online                         
   
%WEEKUP# [<sec>]        Display WEEKTOP uploaders
%WEEKDN# [<sec>]        Display WEEKTOP downloaders
%DAYUP# [<sec>]         Display Today's top uploaders
%DAYDN# [<sec>]         Display Today's top downloaders
%MONTHUP# [<sec>]       Display the Top Uploaders for the Month
%MONTHDN# [<sec>]       Display the Top Leechers for the Month
%ALLUP# [<sec>]         Display ALLTIME top uploaders
%ALLDN# [<sec>]         Display ALLTIME top downloaders
%GALLTOP# [<sec>]       Display the ALLTIME top groups
%GWKTOP# [<sec>]        Display the TOP groups for the week.
%GALLDOWN# [<sec>]      Display the ALLTIME top group downloaders.
%GWKDOWN# [<sec>]       Display the WEEK top group downloaders.
%NUKETOP# [<sec>]       Display nuketop



- 7. glftpd 를 이용한 FTP 운영

이 부분은 필자의 몇가지 운영 방식을 큰 형식으로 설명한다.

대부분의 ftp 운영은 ratio 의 제한을 하게 될 것이다.
이에 있어 기본적으로 credit 을 주는것은 상당히 중요한 부분을 차지한다
여기서 설정하는 방법에 대해서는 언급하지 않는다.
다만 위의 설정 방법을 읽어보고 대략적인 유형에 맞추어 설정하기를 유도한다.


1) 보안을 유지/ 외부로 드러나지 않는 ftp 운영

추가할 수 있는 ip의 대역을 2~3단위로 입력이 가능하게 변경한다.
conf 파일을 설정하면 해결된다.
이것은 다른 site oper 가 211.12.34.56 의 ip를 211.*.*.* 등으로 입력하여
ftp의 서비스가 공개되는것을 알리는 현상을 제어한다.

지정받지 못한 ip로는 이 ftp의 로그인 화면조차 볼 수 없다


2) 기본적인 사용자에 대한 설정

내부 보안을 굳이 유지해야 한다면 site who의 명령을 제어한다.
그렇지 않다면 사용자에게 H에 대한 플래그를 부여하여 site users 와
site user 등의 명령어가 먹히도록 하는것도 바람직하다고 생각한다.
이것은 보내는 사람들에 대한 정보를 공유하게 된다.
이는 ftp-data/user 의 default user 설정에서 제어할 수 있다.

또한 ratio 를 사용할 사이트라면 기본적으로 적당한 크레딧을 주어
초기 접속한 사용자가 떠나지 않도록 적당한 300~1기가 가량의 크레딧을 부여하는것도
운영에 있어서 그리 타격이 없는 부분에서 부여한다.

운영의 타격에 대한것은 자료의 대체적인 용량으로 제어한다.
만약 mp3만 제공할 경우 10~20메가 선에서 크레디트를 허용하는것이 좋다고 본다.

또한 특정한 사용자 단체에서만 운영할 경우 site give 명령이 돌 수 있도록
flag 를 허용하는것도 좋은 방법중에 하나이다. flag 설정표를 참조하라


3) 고속 회선 사용자, 혹은 glftpd의 동작 서버에 사용자 계정이 있을경우
glftpd 서버 내에 사용자의 계정이 있다는것은 상당히 보안적으로 치명적인 부분이
드러나게 된다. 이는 퍼미션과 몇가지 설정에 주의해야 하나 그렇다고
nobody등의 퍼미션을 막게된다면 glftpd동작에 치명적인 에러를 낼수있다.
퍼미션 설정에 유의하자 -_-;;

문제는 glftpd 가 동작하는 서버에 사용자가 있을 경우 전체 사용자의 업로드
속도제한을 거는것이 좋다. 만약 당신이 ide하드를 사용하고 있다면이다.
로컬에서 올리게 되는 경우 시스템에 엄청난 부하를 일으키는 수가 있다
1.5메가~3메가 정도로 사용자의 업로드를 설정한다.


4) 혹시나 모를 리눅스/터미널 사용자를 위한 배려.
color 플래그를 부여하거나 특정 사용자에게만 준다.
사용자는 site color 명령어로 화려한 ftp를 경험하게 될것이다.


5) glftpd 의 logging 방법과 버그 몇가지..
glftpd가 gmt로 동작하는 경우가 없지않아 있을것이다.
이는 필자가 테스트해보지 못한 부분인데 gmt로 hardware가 잡혀있을지 알수없다 --
만약에 gmt를 기반으로 로깅이 된다면 이는 엄청난 문제를 일으킬 수 있다.
오퍼가 로그를 확인할 길이 없어진다.
이는 conf파일에 timezone +9 를 설정하여 해결할 수 있다.
gl_spy 같은 기능에서의 online timer 의 동작 이상이 발견되었다.


6) 쉘 사용자가 glftpd의 관리를 편하게 하려면?
심볼릭 링크를 /bin 에 만든다. /glftpd/bin 에 보면 ftpwho 와 gl_spy등이 있다
이것은 쉽게 관리를 위한 도구이며 별도의 바이너리로 site who등의 명령어로는
알 수 없는 정보들을 제공하는 유용한 툴이다.
이 툴을 잘 사용하면 체계적인 ftp관리에 도움을 준다

glwho, glspy 등의 명령어로 symlink 를 /bin 에 걸어 편하게 사용하도록 하라
useredit 프로그램은 일반 계정으로도 구동/변경이 되나 root만이 적용이 가능하다


7) 용량 부족등으로 사용자가 올린 디렉을 누크해야만 할 경우의 자세
이것은 사용자에게 상당히 민감하게 반응하며 특정 정신적으로 민감한 사용자에게
nuke를 잘못 사용하였다가 그에게 네트웍 어택으로 서버나 ftp가 망하게 되는수가있다
대체적으로 필자가 그러한 유형이며 크레디트가 용량 부족으로 지워지는것때문에 날라간다면 아주 화가나게 될것이다.

이 경우 nuke 는 0x로 사용자의 크레딧을 삭제하지 않는 하에서 삭제하라.
또한 del 명령어로 남의 파일을 지울경우 크레딧이 날라가기 때문에 주의를 기울여야한다.

또한 기분나쁠수도 있으니 사유는 꼭 제대로 적는 오퍼의 자세를 갖추도록 한다.


- 8. 잦은 문의와 질문 (FAQ)

질) 저는 /incoming 에 심볼릭 링크를 생성하여 다른 파티션에 있는 (일종의 버츄어디렉토리) 를 만들어 사용하려고 합니다. 그런데 사용자가 그 디렉토리로 진입이 안됩니다

답) glftpd 는 여타 ftp 데몬처럼 버츄어 디렉토리를 지원합니다
   glftpd.conf 의 homedir 의 셋팅이 glftpd의 루트 디렉토리입니다.
   사용자가 access할 수 있는 최상위 디렉토리가 homedir 입니다.
   그래서 min_homedir 등으로 다른 사이트 오퍼의 침범권한을 설정할 수 있도록
   권한 체계가 구축되어있습니다. 주의하세요 default homedir을 / 로 바꾸시면
   해결이 됩니다만.. 만약 min_homedir 까지 변경하신다면 당신의 서버에 치명적
   문제가 오퍼로 인해 발생할 수 있습니다.
** 주: 최근 2.0 버전에서는 Jail을 이용하여 해당 폴더로 가두기 설정을 할 수 있습니다.

- 9. 1.20 에서 1.21 로 바뀐점

그리 많은 부분이 변경된것은 아니다. 대체적으로 바뀐부분은 conf 파일에있다
약 4가지의 항목이 바뀌었으며 그중 conf에 바뀐부분은 v 1.21이라 이 문서의
일부분에 요약되어있다.

바뀐점은 아래와 같다.

1. 만약 1.20에서 1.21로 업데이트를 할 경우 압축을 풀어 bin파일 몇개를 복사해야 한다.
  해당하는 파일은 glftpd, useredit, reset, nuker binaries 등이다.

2. 변경된 컨피그들은 아래와 같다.
  hideuser 의 명령어가 특정 지정에서 그룹의 지정까지 될 수 있도록 변경
  기존: hideuser xnetwork       현재: hideuser -xnetwork =STAFF
   
  dir_names 의 명령어가 변경되었다. 이 문서의 dir_names 를 검색하여 설정할것

3. ftp-data/text/nukes.* 를 덮어씌울것

- 10. 6년이 지난 지금의 상황과 정리
아직까지도 GLFTPD로 수많은 서버들이 운영중에 있고, 몇군데 서버를 관리하고 유지보수하고 있다.
하지만 아직도 이 문서가 유효하다고 생각하며, 또한 이 문서는 GLFTPD 를 설정하게 하는것에 있어 기본적인 모든것을 제공한다고 생각한다.

그렇지만 바뀐부분이 존재하므로, 최근 버전을 사용하기 위해 알아두어야 할 몇가지 포인트를 설명한다.

문서의 업데이트 : 절망적이다. 6년간 업데이트 되지 않았다.
                              그러나 아직도 유효하다. 따라서 업데이트 될 가능성은 전무하나 2010년경에 다시한번 시간날때
                             손볼생각이다.

설치를 위한 팁 : 퀵리퍼런스란 존재하지 않는다. 대부분 이 데몬의 운영자는 합법적이지 못한 요소의 사이트를 운영할것이고, 그러한 사이트는 일관적이지 않은 설정들을 요구하게된다. 집스크립트 삽질이 더 남아있다는것을 잊어서는 안된다. GLFTPD의 설정은 시작에 불과할 뿐이다.

추가된 명령어 : 1.22 버전을 통해 다음의 명령어가 추가되었으며 상당히 많이 사용한다.
실질적인 GLFTPD의 토대는 1.22버전에서 굳어진 상태다.

> 커스텀 플래그에  J, K, L, M, N. 항목 5개가 더 신설되었다. 설정시 site flags를 통해 볼 수 있다.
> 오래된 자료를 지우기 귀찮아하는 인간들을 위해 wipe 커맨드를 만들었다. (DELE 명령/DELETE 는 크레딧과 업로더의 스탯을 감소시킨다) site wipe 폴더/파일  명령을 사용하면 깔끔하게 지워진다. -r 옵션을 주어 서브디렉토리를 삭제할 수 있다.  그러나 이 명령어의 권한을 주는것에 대해 매우 신중하게 검토하여야 한다.
> bouncer_ip 항목에 FQDN 호스트네임 (도메인명)을 사용할 수 있게 되었다.

1.23 을 통해 추가된 기능
> dupe_check 셋팅이 yes/no 항목을 가진채 config 에 삽입되었다. 이 명령은 듀프첵을 하는데 있어 파일 대소문자 구분을 무시한다. 따라서 대소문자가 구분되는 같은 이름의 파일은 등록되지 않는다 (yes시)
> %LOGOUT 과 관련한 슈퍼쿠키기능을 config 를 통하여 설정할 수 있다.
> sim_xfers 설정이 컨피그에 추가되었다. 2개의 옵션항이 있으며, 다운로드 업로드 순으로 옵션을 사용할 수 있다
-1 설정은 제한이 없음을 의미한다.  sim_xfers 10 -1 의 경우 총 10개의 다운로드와 무한의 업로드를 걸 수 있다.

1.24 를 통해 추가된 기능
> glftpd/bin 에 killghost 라는 c로된 프로그램이 추가되었다. cc 를 통하여 컴파일해 설정할 수 있고 5분 혹은 그 이상으로 크론탭에 등록할 경우 유령접속을 접속해제시킬수 있다.
>site change user max_dlspeed 명령에 사용되는 인자가 byte 에서 kbyte로 단위가 변경되었다.
>xdupe 명령이 신설되었다.
>glftpd 로 다운로드중 중단할 경우 크레딧이 차감되지 않던 버그가 수정되었다. 중단하여도 받은만큼은 차감된다.
>ignore_noop config가 삭제되었다. idle_command 라는 설정으로 변경되었다.
>site errlog 라는 명령어가 추가되었다. error.log 파일을 보여준다 이를 위해 config에서 -errlog 1 권한을 설정하여야 한다.

1.25를 통해 추가된 기능
>-noaccess 라는 컨피그가 쓸모없어졌다.
>-requestadd config 가 생성되었다. 이제 사용자는 리퀘스트와 리퀘필에 대해 명령어를 이용할 수 있다.
>site emulate (사용자명) 명령어가 추가되었고 config의 -emulate 를 통해 권한을 설정할 수 있다. setuid (su)와 유사한 기능이다.
>allow_fxp (yes/no) 명령어를 통해 사용자의 fxp 이용을 컨트롤 할 수 있다. 이 퍼미션은 사용자 그룹으로 이용할 경우 특정 그룹의 fxp 이용을 금지시킬 수 있다.

1.26을 통해 추가된 기능
> 리눅스의 IP어드민 소프트웨어처럼 ip의 끝자리에 더이상 *를 붙이지 않아도 된다.  192.168.0.1의 경우 192.168. 만으로도 추가할 수 있다.
> custom command의 출력줄수를 조절할수있다. max_sitecmd_lines (수치)
> config의 설정이 조금 더 비밀스럽게 바뀔수있게 되었다. ifip elseip 등의 명령이다. 이는 프로그래밍의 if else문을 그대로 이용한것으로 종료시 endifip 로 마무리를 해야하며 외부와 다른 설정으로 운영할 수 있게 된다.
예:
       ifip 192.168.* 10.*
         pasv_addr 10.10.10.1
         sitename_long 내부전용사이트
       elseip
         ifip 127.0.0.1
           include /glftpd/etc/myspeciallocalsettings.conf
         elseip
           pasv_addr 128.1.2.3 1
           sitename_long 외부 노출사이트
         endifip
       endifip

>site wipe -r 이 명령어가 되어 site wipe-r 로 붙여 쓸수있게되었다.

1.27버전을 통해 추가된 기능
>active_addr 옵션이 추가되었다. 여러개의 인터넷 커넥션으로 운영되는 사이트들을 위한 옵션으로 round-robin 스타일로 데이터를 해당 ip들로 교차전송시킨다.
>site predupe 명령어가 추가되었다.
>pasv_ports 가 여러줄로 그리고 다양한 영역을 사용할 수 있도록 변경되었다 1-10 100-1000 등으로
>filemove 관련 config 가 설정되었다. (리네임 권한이 없으면 이동할 수 없다) 이와 관련한 권한을 설정할 수 있다.
> ascii_downloads 와 관련한 config가 추가되었다.

1.29 버전을 통해 추가된 기능
> SSL FXP 기능 추가
> active_addr, pasv_addr 이 랜덤IP로 시작되도록 변경

1.30 버전을 통해 추가된 기능
> -seen, -laston, -traffic, -userothers 기능을 통해 site 명령어 제어가능

1.31 버전을 통해 추가된 기능
> dupecheck 루틴이 전면 재작성됨.
> FEAT 커멘드가 지원됨
> active_ports 셋팅이 config에 추가됨. 액티브 커넥션을 위한 포트이며 max_user 가 30일 경우 포트는 300개 이상을 확보해야한다. (방화벽내 설정시 유용)
> glftpd의 인스톨러가 설치시 ssl인증파일을 생성함.

1.32 버전을 통해 추가된 기능
> pre_del_script 추가
> non-bouncer 기록이 -b혹은 -B 옵션을 통해 구동중이며, 접속이 제한된 경우에만 로그에 기록되도록 변경됨.

2.0 RC1 버전을 통해 추가된 기능
> group leech_slots/allot_slots 의 설정이 -1 은 무제한 -2 가 사용안함으로 변경
> hidden_files 설정의 첫번째 인자로 경로를 인식하도록됨.

2.0 RC3버전을 통해 추가된 기능
> site passwd 명령이 8자리에서 20자리까지 향상됨

2.0 RC5버전을 통해 추가된 기능
> 봇스크립이 system() 대신에 botscript_exec() 명령을 이용하게됨


Posted by ilus


,