TFTPD(8)

명칭
tftpd - 인터넷 TFTP (Trivial File Transfer Protocol) 서버

서식
/usr/libexec/tftpd [-cCln] [-s directory] [-u user] [directory ...]

해설
tftpd 유틸리티는, 인터넷 TFTP 프로토콜 (RFC 1350) (을)를 제공하는 서버입니다. TFTP 서버는, ‘tftp’ 서비스 정의로 지시받은 포트를 조작합니다. services(5) (을)를 참조해 주세요. 이 서버는 보통 inetd(8) 에 의해 기동됩니다.

tftp(1) 의 이용에는, 리모트 시스템의 어카운트나 패스워드를 필요로 하지 않습니다. 인증 정보가 없기 때문에, tftpd (은)는 공공적으로 읽어들여 가능한 파일밖에 액세스를 허가하지 않습니다. 캐릭터 라인 ``/. ./''를 포함한 파일, 혹은 ``. ./''로부터 시작되는 파일의 액세스는 허가되지 않습니다. 파일은, 이미 존재해 공공적으로 기입해 가능한 경우만 기입해집니다. “퍼블릭 (public)” 그렇다고 하는 개념은, 네트워크를 통해 도달 가능한 모든 호스트의 모든 유저 (을)를 포함하도록(듯이) 확장되고 있는 점에 주의해 주세요. 이것은 모든 시스템에 대해 적당하지 않을지도 모르고, 그것은 tftp 서비스를 유효하게 하기 전에 고려해야 합니다. 서버는, 가장 가능한 한 작은 권한을 가진 유저 ID 를 가지지 않으면 되지 않습니다.

파일에의 액세스 제한은, tftpd 기동시의 디렉토리 리스트를, /etc/inetd.conf 에 서버 프로그램에의 인수로서 20 까지의 패스명을 지정하는 것으로써 가능합니다. 이 경우, 액세스는, 파일명이 거기서 주어진 디렉토리를 머리에 붙인 것에 제한됩니다. 주어진 디렉토리는, 상대 파일 지정 요구에 대해서의 탐색 패스와 해도 이용됩니다.

-s 옵션은, tftpd 의 루트 디렉토리를 변경해, 지정했다 directory 밖에의 액세스를 금지하는 것으로써, 새로운 안전성을 제공합니다. chroot(2) (은)는 슈퍼 유저의 권한이 필요하기 때문에, tftpd (은)는 root 로 실행하는 것이 필요합니다. 그렇지만 chroot() (을)를 실행한 다음에는, tftpd (은)는 자기의 유저 ID 를, 지정되었다 user 인가, -u 옵션이 지정되지 않는 경우에는 “nobody” (으)로 설정합니다.

이하와 같은 옵션이 있습니다.

-c  접속 호스트의 디폴트의 루트 디렉토리를, 접속 IP 주소에 따라, chroot 를 이용해 바꿉니다. 이것에 의해, 복수의 클라이언트가 같은 파일에 동시에 기입하는 것을 막습니다. 디렉토리가 존재하지 않는 경우, 클라이언트의 접속은 거부됩니다. -c 에는, -s 옵션이 필수이며, 지정되었다 directory 하지만 기점으로서 사용됩니다.

-C  -c (와)과 같게 동작합니다만, 클라이언트의 IP 용의 디렉토리가 존재하지 않는 경우, -s 의 디렉토리를 사용하게 됩니다.

-l  모든 요구를, syslog(3) 의 퍼실리티 LOG_FTP (을)를 사용해, 로그 보존합니다. 주: syslog 설정 파일 syslog.conf(5) 냄새나도, LOG_FTP 메세지의 로그 기능을 유효로 할 필요가 있습니다.

-n  존재하지 않는 상대 파일명에 대한 요구의 부정 응답을 억제합니다.

-s directory
    directory (으)로, tftpd 의 루트 디렉토리를 변경시킵니다. 루트 디렉토리의 변경 후, 명령을 받아들이기 전에, tftpd (은)는 비특권 유저의 권한에 이행 합니다.

-u user
    -s 옵션 사용시에, 권한을 user (디폴트에서는 “nobody” 입니다)에 바꿉니다. user 는, 이름으로 지정하는 것이 필요하고, 수치의 UID 에서는 안됩니다.

관련 항목
tftp(1), chroot(2), inetd(8), syslogd(8) K. R. Sollins, The TFTP Protocol (Revision 2), July 1992, RFC 1350, STD 33.

역사
tftpd 유틸리티는, 4.2BSD (으)로부터 도입되었습니다. -s 옵션은 FreeBSD 2.2 (으)로부터 도입되어 -u 옵션은 FreeBSD 4.2 (으)로부터 도입되어 -c 옵션은 FreeBSD 4.3 (으)로부터 도입되었습니다.

버그
33488896 8중창 (65535 블록)을 넘는 파일은, 클라이언트와 서버가 블록 사이즈의 네고시에이션 (RFC1783)을 서포트하고 있지 않으면, 전송 불가능합니다.

많은 tftp 클라이언트가, 16744448 8중창 (32767 블록)을 넘어 전송 할 수 없습니다.