FTPD.CONF(5)

명칭
ftpd.conf - ftpd(8) 설정 파일

해설
ftpd.conf 파일에는, 유저가 각자의 connection를 인증했다 직후에 적용된다 ftpd(8) 에 대한 각종의 설정 옵션을 지정합니다.

ftpd.conf 하행의 줄로부터 되어, 각 행은 설정 지시문, 코멘트, 공행으로부터 됩니다. 파일 중(안)에서 보다 뒤로 출현하는 지시문은 그 전으로 정의된 지시문의 설정을 오바라이드 합니다. 이것에 의해 ‘wildcard’ 엔트리로 디폴트를 정의해, 그 후로 class 전용의 오바라이드를 정의할 수가 있습니다.

지시문행의 서식은 이하대로입니다.
    command class [arguments]

“\” (은)는 이스케이프 캐릭터입니다. 이 캐릭터는 코멘트 캐릭터의 기능을 이스케이프 하거나 행의 마지막 캐릭터인 경우에는 설정 지시문을 복수행에 걸쳐서 연장하는 것에 사용할 수 있습니다. “#” (은)는 코멘트 캐릭터이며, 이 캐릭터로부터 행의 끝까지의 모든 캐릭터가 무시됩니다 (다만 이스케이프 캐릭터로 이스케이프되어 있지 않은 경우에 한정합니다).

인증되는 개별의 유저는 class 의 멤버이며, ftpusers(5) 그리고 결정됩니다. class (은)는 그 유저에게 적용된다 ftpd.conf 의 엔트리를 결정할 때 사용됩니다. ftpd.conf 의 엔트리를 구문 분석 할 경우에는 이하와 같은 특별한 class 가 존재합니다.
all 임의의 class 에 매치 합니다.
none
    어느 class 에도 매치 하지 않습니다.

각 class 에는 type 가 있어, 이하 중 하나입니다.

GUEST
    “(anonymous” 인가 “ftp” (으)로서의 로그인에 의한다) 게스트. 로그인 후에 chroot(2) 하지만 실행됩니다.

CHROOT
    ((ftpchroot) 5 에 의한다) chroot(2) 유저. 로그인 후에 chroot(2) 하지만 실행됩니다.

REAL
    통상 유저.

ftpd(8) 의 STAT 명령은, 로그인하고 있는 유저의 class 에 대해 private 지시문이 설정되어 있지 않으면, ftpd.conf 그리고 정의되는 해당 유저의 class 설정을 되돌립니다.

설정행은 이하의 어느 쪽인가에 됩니다.

advertise class host

advertize class host
    host 의 주소 (host 명이나 IP 주소)를 PASV (와)과 LPSV 명령에의 응답에 통지하는 주소로서 설정합니다. 이것은 파이어 월(fire wall)가 설정되어 있는 경우에는 유용한 일이 있습니다. 다만, 통지되는 주소가 접속하고 있는 주소 (와)과 다르고 있는 경우에는, 많은 ftp 클라이언트는 기능하지 않습니다. class 하지만 “none” 이든가 또는 인수가 없는 경우에는, 무효가 됩니다.

checkportcmd class [off]
    PORT 명령의 정당성을 검증합니다. 지정된 IP 주소가 ftp 명령의 connection와 매치 하지 않는 경우나, 리모트의 TCP 포트 번호가 IPPORT_RESERVED 보다 작은 경우에는, PORT 명령은 처리에 실패합니다. 이 옵션을 사용하는 것을, ftp 바운스 공격에 대해 보안상 잠재적인 문제가 어느 사이트에 대해서는 특히, 추천 합니다. class 하지만 “none” 이든가 또는 off 하지만 지정되었을 경우에는, 이 기능은 무효가 됩니다. 그렇지 않은 경우에는, 유효하게 됩니다.

chroot class [pathformat]
    pathformat 하지만 지정되지 않는지, 또는 class 하지만 “none” 인 경우에는, 디폴트의 동작 (아래와 같이 참조)을 실시합니다. 그렇지 않은 경우에는, pathformat (은)는 구문 분석 되어, 로그인시에 chroot(2) 그리고 루트 디렉토리로 여겨지는 디렉토리를 생성합니다.

    pathformat (은)는 이하의 이스케이프 캐릭터 라인을 혼재할 수 있습니다.
    이스케이프 캐릭터
        해설
    %c  class 명.
    %d  유저의 홈 디렉토리.
    %u  유저명.
    %%  “%” 캐릭터.

    디폴트의 루트 디렉토리는 이하대로입니다.
    CHROOT
        유저의 홈 디렉토리.
    GUEST
        -a anondir 하지만 지정되었을 경우는 anondir, (을)를 사용합니다. 지정되지 않는 경우는, ‘ftp’ 유저의 홈 디렉토리를 사용합니다.
    REAL
        디폴트에서는 chroot(2) 명령은 실행하지 않습니다.

classtype class type
    class 의 class type 를 type (상기 참조)(으)로 설정합니다.

conversion class
    suffix [type disable command] 편성의 자동적인 파일 변환을 정의합니다. 취득되는 파일명의 말미가 suffix 그리고 끝나 있어, (suffix (이)가 없다) 진짜 파일이 존재하는 경우에는, 그 파일의 내용은 아니고 command 의 출력이 되돌려집니다.

    suffix
        변환을 개시시키는 사픽스입니다.

    type
        변환이 정당한 파일형의 줄입니다. 정당한 형태는 ‘f’ (파일) 및 ‘d’ (디렉토리)입니다.

    disable
        존재하는 경우에는 변환을 억제하는 파일명입니다. 파일명이 “~”. 인 경우에는 이 금지 동작을 억제합니다 (즉, 변환은 항상 허가됩니다).

    command
        변환을 실시하는 명령입니다. execv(3) (을)를 사용해 명령을 실행하므로, 최초의 단어는 명령의 완전한 패스명을 지정해 주세요. command 안에 출현하는 모든 단어 “%s” (은)는 요구된 파일 (다만 suffix (은)는 없다)와 치환됩니다.

    파일중의 후방에서 정의된 conversion 지시문은 같은 suffix 로 전방에 있는 conversion 지시문을 오바라이드 합니다.

denyquick class [off]
    PASS 명령을 접수한 다음에는 없고, USER 명령을 접수한 후에 ftpusers(5) 룰을 적용합니다. 이 기능을 유효하게 하면 이용 가능한 어카운트 (예를 들면, 일부의 유저는 REAL 또는 CHROOT 의 class 가 허가되지만, 다른 유저는 허가되지 않는 경우)에 붙어 정보 누설이 생기지만, ‘(root’ (와)과 같이) 금지된 유저가 안전하지 않은 connection를 경유해 패스워드를 입력하는 것을 예방하는 것에 도움이 됩니다. 이 옵션은 anonymous 만의 서비스를 실행하는 서버에 특히 추천 합니다. class 하지만 “none” 이든가 또는 off 하지만 지정되었을 경우에는 이 기능은 무효가 됩니다. 그렇지 않은 경우에는 유효하게 됩니다.

display class [file]
    file 하지만 지정되지 않는지, 또는 class 하지만 “none” 인 경우에는, 이것은 무효가 됩니다. 그렇지 않은 경우에는, 유저가 새로운 디렉토리에 들어갈 때에, file 하지만 존재할까 조사해 존재하면 그 내용을 유저에게 표시합니다. escape sequence가 서포트되고 있습니다. 보다 상세한 정보에 대해서는 ftpd(8) 의 Display file escape sequences (을)를 참조해 주세요.

homedir class [pathformat]
    pathformat (을)를 지정하지 않는가 또는 class 하지만 “none” 인 경우에는, 디폴트의 동작 (이하 참조)을 실시합니다. 그렇지 않은 경우에는, pathformat (은)는 구문 분석 되어 로그인시로 이행하는 디렉토리를 생성하거나 패스명의 티르다를 전개해 유저의 ‘홈’ 디렉토리로서 사용하는 등 됩니다. pathformat 하 chroot 지시문의 경우와 같게 구문 분석 됩니다.

    디폴트의 홈 디렉토리는 REAL 유저에 대해서는 유저의 홈 디렉토리이며, GUEST (이)나 CHROOT 유저에 대해서는 / 디렉토리가 됩니다.

limit class
    count [file] class 의 동시 실행하는 connection의 최대수를 count 에 제한합니다. ‘0’ 그리고 무제한한 수의 connection를 지정합니다. 제한이 초과하고 있어 file 하지만 지정되어 있으면, 그 내용을 유저에게 표시합니다. class 하지만 “none” 이든가 또는 count 하지만 지정되어 있지 않은 경우에는, 무효가 됩니다. file 하지만 상대 패스인 경우에는, /etc 디렉토리 (다만, 이것은 -c confdir 그리고 오바라이드 할 수 있습니다)로부터 탐색됩니다.

maxfilesize class size
    업 로드되는 파일의 최대장을 size (으)로 설정합니다. class 하지만 “none” 이든가 또는 인수가 지정되지 않는 경우에는, 무효가 됩니다.

maxtimeout class time
    클라이언트를 리퀘스트 할 수 있는 최대의 타임 아웃 시간을 설정합니다. 디폴트는 2 시간입니다. 이 시간은 30 초 이하에는 하지 못하고, 또 timeout 값이하에도 할 수 없습니다. class 하지만 “none” 이든가 또는 time 하지만 지정되지 않는 경우에는, 디폴트인 2 시간으로 설정됩니다.

modify class [off]
    class 하지만 “none” 이든가 또는 off 하지만 지정되었을 경우에는, 다음의 명령을 무효로 합니다 : CHMOD, DELE, MKD, RMD, RNFR, UMASK. 그렇지 않은 경우에는, 이러한 명령을 유효하게 합니다.

motd class [file]
    file 하지만 지정되지 않는가 또는 class 하지만 “none” 인 경우에는, 무효가 됩니다. 그렇지 않은 경우에는, file (을)를 로그인 후에 표시하는 「오늘의 연락 사항 (the message of the day)」 파일로서 사용합니다. escape sequence가 서포트됩니다. 보다 상세한 정보에 대해서는 ftpd(8) 의 Display file escape sequences (을)를 참조해 주세요. file 하지만 상대 패스인 경우에는, /etc 디렉토리 (다만, 이것은 -c confdir 그리고 오바라이드 할 수 있습니다)로부터 탐색됩니다.

notify class [fileglob]
    fileglob 하지만 지정되지 않는가 또는 class 하지만 “none” 인 경우에는, 무효가 됩니다. 그렇지 않은 경우에는, 유저가 새로운 디렉토리에 들어갈 때에 fileglob 에 매치 하는 임의의 파일을 유저에게 고지합니다.

passive class [off]
    class 하지만 “none” 이든가 또는 off 하지만 지정되었을 경우에는, 패시브 connection (PASV, LPSV, EPSV) (을)를 무효로 합니다. 그렇지 않은 경우에는, 유효하게 합니다.

portrange class min max
    수동적인 데이터포트에 사용되는 포트 번호의 범위를 설정합니다. max 하 min 보다 크지 않으면 안됩니다. 어느 쪽의 번호도 IPPORT_RESERVED (1024)(와)과 65535 의 사이가 아니면 안됩니다. class 하지만 “none” 이든가 또는 인수가 지정되지 않는 경우에는, 무효가 됩니다.

private class [off]
    class 하지만 “none” 이든가 또는 off 하지만 지정되었을 경우는, STAT 명령의 출력안에 class 정보를 표시하지 않습니다. 그렇지 않은 경우에는, class 정보를 표시합니다.

rateget class rate
    class 에 대한다 get (RETR) 최대 전송 속도의 스롯톨을 매초 rate 바이트로 설정합니다. rate 하지만 0 인 경우에는, 스롯톨은 무효가 됩니다. class 하지만 “none” 이든가 또는 인수가 지정되지 않는 경우에는, 무효가 됩니다.

    옵션의 사픽스를 부가해, rate 의 해석을 이하와 같이 변경할 수 있습니다.
    b   변경은 없습니다. (디폴트, 생략가능)
    k   킬로. 인수를 1024 배가 됩니다.
    m   메가. 인수를 1048576 배가 됩니다.
    g   기가. 인수를 1073741824 배가 됩니다.
    t   테라. 인수를 1099511627776 배가 됩니다.

rateput class rate
    class 에 대한 put (STOR) 최대 전송 속도의 스롯톨을 매초 rate 바이트로 설정합니다. rate 하 rateget rate 의 경우와 같게 구문 분석 됩니다. class 하지만 “none” 이든가 또는 인수가 지정되지 않는 경우에는, 무효가 됩니다.

sanenames class [off]
    class 하지만 “none” 이든가 또는 off 하지만 지정되는 경우에는, 업 로드되는 파일명에 파일명으로서 정당한 임의의 캐릭터를 포함할 수가 있습니다. 그렇지 않은 경우에는, ‘’. 그리고 시작되지 않고, 한편 집합 “[-+,. _A-Za-z0-9]” 의 요소인 캐릭터로부터만 구성되는 파일명을 허가합니다.

template class [refclass]
    refclass (을)를 class 의 ‘템플릿’ (으)로서 정의합니다. 이후의 지시문으로 행해진다 refclass 에의 어떠한 참조도 class 의 멤버에 적용됩니다. 공통의 속성을 공유해야 할 다른 클래스를 불필요한 중복없이 용이하게 정의할 수 있기 (위해)때문에, 이와 같이 해 템플릿 클래스를 정의하는 것은 유용합니다. 1 번에 다만 1 개의 템플릿을 정의하는 것이 가능합니다. refclass 하지만 지정되지 않는 경우에는, class 에 대한 템플릿은 무효가 됩니다.

timeout class time
    무활동의 타임 아웃 시간을 설정합니다. (디폴트는 15 분입니다. ) 이것은 30 초 이하에는 하지 못하고, 또 maxtimeout 값이상에도 할 수 없습니다. class 하지만 “none” 이든가 또는 time 하지만 지정되지 않는 경우에는, 디폴트인 15 분으로 설정됩니다.

umask class umaskval
    umask 에 umaskval (을)를 설정합니다. class 하지만 “none” 이든가 또는 umaskval 하지만 지정되지 않는 경우에는, 디폴트이다 027 (으)로 설정됩니다.

upload class [off]
    class 하지만 “none” 이든가 또는 off 하지만 지정되었을 경우에는, 수정 명령 CHMOD, DELE, MKD, RMD, RNFR, UMASK 에 가세해 다음의 명령이 무효가 됩니다 : APPE, STOR, STOU 그 외의 경우에는, 이러한 명령은 유효하게 됩니다.

디폴트
이하의 디폴트를 사용합니다.

    checkportcmd  all
    classtype     chroot CHROOT
    classtype     guest  GUEST
    classtype     real   REAL
    display       none
    limit         all    -1     # 무제한한 수의 connection
    maxtimeout    all    7200   # 2 시간
    modify        all
    motd          all    motd
    notify        none
    passive       all
    timeout       all    900    # 15 분
    umask         all    027
    upload        all
    modify        guest  off
    umask         guest  0707

관련 파일
/etc/ftpd.conf
    이 파일.
/usr/share/examples/ftpd/ftpd.conf
    ftpd.conf 의 샘플 파일.

관련 항목
ftpchroot(5), ftpusers(5), ftpd(8)

역사
ftpd.conf 의 기능은, Simon Burge 의 실적에 근거해, Luke Mewburn 가 NetBSD 1.3 및 이후의 릴리스에 실장했습니다.