|
- 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 까지 변경하신다면 당신의 서버에 치명적 문제가 오퍼로 인해 발생할 수 있습니다.
- 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.* 를 덮어씌울것
====================================================================== 출처 : 네이버 블로그
|