Manpages

이 름

ftpd − DARPA 인 터 넷 파 일 전 송 프 로 토 콜 서 버

개 요

ftpd [ −d ] [ −v ] [ −l ] [ −t timeout ] [ −T maxtimeout ] [ −a ] [ −A ] [ −L ] [ −i ] [ −o ] [ −p ctrlport ] [ −P dataport ] [ −q ] [ −Q ] [ −r rootdir ] [ −s ] [ −S ] [ −u umask ] [ −V ] [ −w ] [ −W ] [ −X ]

설 명

Ftpd 는 DARPA internet file 전 송 프 로 토 콜 server의 역 할 을 한 다 . server는 TCP protocol을 사 용 하 며 ’’ftp’’ service로 지 정 된 특 정 한 prot에 귀 를 기 울 인 다 .; 자 세 한 것 은 services(5) 을 참 조 하 라 .

−V 옵 션 은 저 작 권 과 버 젼 정 보 를 출 력 한 다 .

−d 또 는 −v options을 지 정 하 면 , syslog에 디 버 깅 정 보 가 기 록 된 다 .

−l option은 syslog에 각 ftp의 session을 기 록 한 다 .

ftp server는 15분 이 지 나 도 록 아 무 입 력 이 없 으 면 (inactive session이 발 생 하 면 ) timeout이 된 다 . −t option으 로 inactive timeout 시 간 을 지 정 할 수 있 다 . 설 정 은 단 위 로 하 며 options과 초 를 붙 여 서 쓴 다 . −t option을 지 정 하 지 않 았 을 때 의 기 본 값 은 900초 이 다 . 또 한 이 와 는 다 른 timeout period가 있 는 데 이 는 −T option을 이 용 하 여 최 대 로 열 어 놓 을 수 있 는 session timeout period를 지 정 할 수 있 다 . 이 것 은 inactive session과 무 관 하 다 . 설 정 은 −t 와 동 일 하 며 default는 2시 간 이 다 .

−a option은 ftpaccess(5) 설 정 file을 사 용 하 도 록 한 다 .

−A option은 ftpaccess(5) 설 정 file을 사 용 하 지 않 도 록 한 다 . 이 option은 기 본 option이 다 .

−L option은 syslog에 ftpd(8) server에 보 내 지 는 명 령 들 을 기 록 하 도 록 한 다 . −L option은 ftpaccess(5) file의 사 용 에 의 해 무 시 되 어 질 수 도 있 다 . −L flag가 사 용 되 어 진 다 면 , 기 본 적 으 로 ftp server가 요 청 될 때 마 다 명 령 이 logging 되 어 질 수 있 다 . 이 것 은 모 든 USER들 의 명 령 이 기 록 되 는 것 을 뜻 하 며 만 약 user가 우 연 히 username을 대 신 하 는 명 령 으 로 password를 보 냈 을 때 syslog를 통 해 서 password가 누 출 될 수 도 있 다 .

−i option을 지 정 하 면 ftpd(8) server에 의 해 받 아 들 였 던 file들 이 xferlog(5) 로 log되 어 진 다 . −i option은 ftpaccess(5) file을 사 용 하 면 무 시 되 어 진 다 .

−o option을 지 정 하 면 ftpd(8) server에 의 해 전 해 진 file들 이 xferlog(5) 로 log되 어 진 다 . −o option은 ftpaccess(5) file을 사 용 하 면 무 시 되 어 진 다 . 만 약 −X option을 지 정 하 면 , −i−o options에 의 해 생 성 된 output은 xferlog에 저 장 되 지 않 는 다 . 그 러 나 하 나 의 중 앙 loghost에 여 러 host들 로 부 터 의 output을 받 아 들 이 는 경 우 에 는 syslog를 통 해 저 장 이 된 다 .

−u option은 umask 를 기 본 umask로 setting을 한 다 .

−W option은 user login을 wtmp file에 기 록 하 지 않 게 한 다 . Default ( −w ) 로 는 모 든 login과 logout이 기 록 이 된 다 .

−s−S option들 은 standalone 작 동 모 드 로 daemon을 실 행 하 게 한 다 . −S option은 daemon을 background로 실 행 을 하 며 , system booting시 에 startup srcitps(ie., in rc.local)를 이 용 할 때 사 용 한 다 . −s option은 daemon을 foreground로 실 행 을 시 키 며 , init로 부 터 실 행 될 때 주 로 사 용 을 한 다 . (ie., /etc/inittab)

−p−P option들 은 daemon에 의 해 사 용 되 어 지 는 port number를 무 시 한 다 . 일 반 적 으 로 daemon은 "ftp"와 ftp-data"에 대 해 /etc/services 를 참 조 하 여 port number를 결 정 한 다 . 만 약 /etc/services에 "ftp-data"가 지 정 되 어 있 지 않 고 −P option이 지 정 되 어 있 지 않 다 면 daemon은 control connection port 보 다 앞 선 port를 사 용 한 다 . −p option은 standalone mode로 실 행 될 때 만 사 용 을 할 수 가 있 다 .

−q and −Q option들 은 daemon이 PID file들 의 사 용 여 부 를 결 정 한 다 . 이 file들 은 각 접 근 class마 다 현 재 user의 수 를 결 정 하 는 limit 지 시 자 에 의 해 요 구 되 어 진 다 . PID file들 의 사 용 을 안 하 면 user limit를 사 용 할 수 없 다 . Default ( −q ) 로 는 PID file들 을 사 용 을 한 다 . access permission이 PID file의 사 용 을 막 을 때 일 반 user로 서 server를 test할 때 −Q 를 지 정 한 다 . 좀 더 나 아 가 서 동 시 사 용 자 의 수 를 제 한 하 는 것 을 막 고 싶 은 busy site에 서 는 PID file의 사 용 을 불 가 능 하 게 하 는 것 을 고 려 해 볼 만 하 다 .

−r option은 이 미 loading시 에 rootdir로 지 정 되 어 진 거 을 chroot로 daemon을 지 정 한 다 . 이 것 은 daemon을 통 해 발 생 한 손 상 을 입 은 file들 을 제 한 함 으 로 서 system security를 증 진 시 킬 수 있 다 . Set is much like anonymous FTP, with additional files needed which vary from system to system.

ftp server는 현 재 아 래 에 나 열 된 ftp reuest들 을 지 원 을 한 다 .; case는 구 별 되 어 있 지 않 다 .

Request 설 명
ABOR 이 전 명 령 을 중 지
ACCT 지 정 한 account를 무 시
ALLO 비 어 있 는 저 장 공 간 을 할 당
APPE file에 첨 가
CDUP 현 재 작 업 directory를 부 모 directory로 이 동
CWD 작 업 directory를 이 동
DELE file 삭 제
HELP help 정 보 출 력
LIST directory의 file list 출 력 (’’ls -lgA’’)
MKD directory 생 성
MDTM file의 마 지 막 변 경 시 간 출 력
MODE data transfer mode 를 지 정
NLST directory의 file list name만 보 여 준 다 .
NOOP do nothing
PASS password를 지 정
PASV server와 server간 은 전 송 비 교
PORT data connection port를 지 정
PWD 현 재 작 업 중 인 directory를 출 력
QUIT session 마 침
REST 불 완 전 한 전 송 을 재 시 도
RETR file 정 정
RMD directory 제 거
RNFR filename으 로 부 터 rename 지 정
RNTO filename으 로 rename 지 정
SITE 일 반 적 이 지 않 은 commands (다 음 section 참 조 )
SIZE file size 출 력
STAT server 상 태 출 력
STOR file 저 장
STOU 특 정 한 이 름 으 로 file 저 장
STRU data transfer structure 지 정
SYST server system의 OS type 출 력
TYPE data transfer type 지 정
USER user name 지 정
XCUP 현 재 작 업 directory를 부 모 directory로 이 동 (deprecated)
XCWD change working directory (deprecated)
XMKD directory 생 성 (deprecated)
XPWD 현 재 작 업 directory 출 력 (deprecated)
XRMD directory 제 거 (deprecated)

아 래 에 나 열 된 것 은 일 반 적 인 명 령 이 아 니 거 나 UNIX 특 수 명 령 들 이 며 SITE 명 령 에 수 반 되 어 사 용 되 어 진 다 .

Request 설 명
UMASK umask를 변 경 . E.g. SITE UMASK 002
IDLE idle-timer를 지 정 . E.g. SITE IDLE 60
CHMOD file의 mode을 변 경 . E.g. SITE CHMOD 755 filename
HELP help 정 보 를 출 력 . E.g. SITE HELP
NEWER 특 정 날 짜 이 후 의 file을 출 력
MINFO SITE NEWER와 유 사 , 하 지 만 좀 더 자 세 한 정 보 를 출 력
GROUP 특 정 gourp 접 근 을 요 구 . E.g. SITE GROUP foo
GPASS 특 정 group 접 근 암 호 를 지 정 . E.g. SITE GPASS bar
EXEC program을 실 행 . E.g. SITE EXEC program params

여 기 서 생 략 된 Internet RFC 959에 지 정 된 몇 몇 의 ftp request들 은 인 식 은 되 지 만 그 리 쓸 모 있 지 는 않 다 . MDTM과 SIZE는 RFC 959에 지 정 되 어 있 지 는 않 지 만 다 음 FTP RFC에 update될 예 정 이 다 .

ftp server는 internet RFC 959에 기 술 되 어 진 것 처 럼 telnet "Interrupt Porcess" (IP) signal과 Telnet stream 명 령 의 Telnet "Synch" signal에 의 해 서 ABOR 명 령 이 진 행 될 때 active file 전 송 은 중 지 될 것 이 다 . 만 약 STST 명 령 이 data 전 송 중 에 받 아 진 다 면 , Telnet IP와 Synch에 의 해 진 행 된 transfer status는 되 돌 려 질 것 이 다 .

Ftpd interpret file name들 은 csh(1) 에 의 하 여 사 용 되 어 지 는 "golbbing" 규 약 에 따 른 다 . 이 것 은 user들 이 metacharacter "*?[]{}~"를 이 용 할 수 있 도 록 한 다 .

인 증 된 Ftpd user들 은 4가 지 규 칙 을 따 른 다 .

1)

username은 password data base, /etc/passwd, 또 는 OS를 통 새 접 근 할 수 있 는 무 엇 에 존 재 해 야 한 다 . 이 경 우 password는 어 떤 file 작 용 이 실 행 되 어 지 기 전 에 client에 의 해 서 준 비 되 어 야 한 다 .

2)

user name이 /etc/ftpusers 에 있 어 서 는 안 된 다 .

3)

user는 getusershell(3) 에 의 해 반 환 되 어 지 는 standard shell을 가 져 야 한 다 .

4)

username이 "anonymous" 또 는 "ftp" 일 때 , anonymous ftp 계 정 이 password file(user "ftp")에 존 재 해 야 만 한 다 . 이 경 우 client의 hostname이 나 e-mail address를 password로 하 여 login을 허 락 을 한 다 .

마 지 막 의 경 우 ftpd 는 client의 접 근 권 한 을 제 한 하 기 위 해 특 별 한 작 업 을 수 행 한 다 . server는 보 안 의 침 해 를 막 기 위 하 여 "ftp" user의 home directory로 chroot(2) 명 령 으 로 변 경 시 켜 버 린 다 . (anonymous의 를 file에 존 재 하 는 "ftp"라 는 user의 home directory-보 통 은 /home/ftp-로 바 꿔 버 린 다 는 의 미 이 다 .) 이 것 은 "ftp" subtree는 조 심 해 서 구 성 되 어 진 다 는 것 을 의 미 하 며 아 래 에 나 열 된 규 칙 을 따 른 다 .

~ftp)

home directory의 소 유 권 을 super-user와 쓰 기 권 한 이 없 는 다 른 user로 지 정 을 한 다 .

~ftp/bin)

home directory의 소 유 권 을 super-user와 쓰 기 권 한 이 없 는 다 른 user로 지 정 을 한 다 . ls(1) program은 list 명 령 을 지 원 하 기 위 하 여 반 드 시 존 재 해 야 한 다 . 이 program은 mode 111의 소 유 권 을 가 져 야 한 다 .

~ftp/etc)

home directory의 소 유 권 을 super-user와 쓰 기 권 한 이 없 는 다 른 user로 지 정 을 한 다 . passwd(5)group(5) file은 ls 명 령 을 실 행 했 을 때 숫 자 (UID, GID)가 아 닌 사 용 자 명 이 나 오 도 록 하 기 위 해 서 이 다 . OS에 의 존 하 며 , 다 른 요 구 되 는 file들 이 있 다 . libary rutine getpwent(3) 에 대 한 man page를 check하 도 록 한 다 . passwd의 password field는 사 용 되 지 않 으 며 실 제 의 암 호 화 된 password들 이 포 함 되 어 있 지 않 다 . 이 file들 은 mode 444의 permision을 가 지 며 super-user에 게 소 유 권 이 있 다 . ~ftp/etc directory안 의 group, passwd file들 을 system의 /etc/passwd와 /etc/group file로 복 사 를 하 여 사 용 하 면 안 된 다 .

~ftp/pub)

~ftp/pub에 서 일 반 user들 에 게 file upload를 허 락 하 려 면 적 당 히 mode 777 또 는 mode 733의 permision으 로 directory를 만 들 면 된 다 . 하 지 만 pub dirctory는 read permision만 을 주 는 것 을 권 장 하 며 upload는 ~ftp/incoming 이 라 는 directory를 만 들 어 사 용 하 기 를 권 장 하 며 upload directory의 소 유 권 은 super-user가 아 닌 ftp에 있 어 야 한 다 는 것 을 명 심 한 다 . 또 한 ftp user의 권 한 으 로 upload 한 file은 지 울 수 가 없 으 므 로 file만 올 리 는 것 보 다 는 설 명 서 도 같 이 올 리 도 록 message file을 이 용 하 여 권 고 하 도 록 한 다 .

BSD/OS SYSTEM만 의 인 증 MECHANISM

ftpd에 의 해 사 용 되 어 지 는 인 증 machanism은 /etc/login.conf 에 있 는 users class와 match되 는 "auth-ftp" entry에 의 해 결 정 된 다 . ( login.conf(5) 를 참 조 하 라 ) 만 약 class에 대 한 "auth-ftp" entry가 없 다 면 대 신 에 일 반 적 인 "auth" entry가 사 용 되 어 질 것 이 다 . 교 차 하 는 인 증 machanism은 "joe:skey" 처 럼 콜 론 (":")이 첨 가 되 어 지 정 이 된 다 .

일 반 적 인 FTP 확 장 자 들

FTP server에 는 아 래 와 같 이 특 정 한 file 확 장 자 로 서 몇 가 지 기 능 을 수 행 할 수 있 다 :

실 제 Filename 지 정 한 Filename 실 행
------------- ------------------ -----------------------------------
<filename>.Z <filename> 압 축 을 풀 고 나 서 전 송
<filename> <filename>.Z 전 송 전 file을 압 축
<filename> <filename>.tar 전 송 전 file을 Tar로 묶 음
<filename> <filename>.tar.Z 전 송 전 file을 Tar로 묶 고 압 축

또 한 FTP server는 확 실 한 e-mail 주 소 를 위 한 check를 시 도 하 며 , 이 test를 통 과 하 지 못 하 면 user에 게 경 고 message를 출 력 한 다 . FTP client가 "long replies" (i.e multiline responses)에 걸 려 있 는 user들 을 위 해 password의 첫 번 째 character를 dash를 사 용 하 는 것 은 server의 lreply() 함 수 를 불 가 능 하 게 한 다 .

FTP server는 또 한 모 든 file의 전 송 과 수 신 을 log 할 수 있 으 며 , 발 생 되 는 각 file의 전 송 에 대 한 정 보 에 따 라 서 관 리 를 한 다 .

Mon Dec 3 18:52:41 1990 1 wuarchive.wustl.edu 568881 /files.lst.Z
a _ o a chris [AT] wugate.edu ftp 0 *

%.24s %d %s %d %s %c %s %c %c %s %s %d %s
1 2 3 4 5 6 7 8 9 10 11 12 13

1 DDD MMM dd hh:mm:ss YYYY 형 식 의 현 재 시 간
2 초 단 위 의 전 송 시 간
3 remote host name
4 byte 단 위 의 file size
5 name of file
6 전 송 type (a>scii, b>inary)
7 특 수 action flags (필 요 에 따 라 연 계 ):
C file이 압 축 되 어 짐
U file이 압 축 되 어 지 지 않 음
T file이 tar로 묶 임
_ 아 무 것 도 발 생 하 지 않 음
8 file 이 user에 게 보 내 지 거 나 (o>utgoing), user로 부 터 받 음 (i>ncoming)
9 접 근 한 방 식 (r>eal, a>nonymous, g>uest) -- mostly for FTP
10 local username 또 는 "ftp" user의 경 우 login시 에 password로 입 력 한
e-amil address
11 service 명 (’ftp’, other)
12 인 증 방 식 (bitmask)
0 none
1 RFC931 인 증
13 인 증 되 어 진 user id (if available, ’*’ otherwise)

관 련 항 목

ftp(1), getusershell(3), syslogd(8), ftpaccess(5), xferlog(5), umask(2)

버 그

anonymous 계 정 은 안 전 하 지 가 못 하 며 가 능 한 막 는 것 이 좋 다 .

server는 지 정 된 port number로 서 socket들 을 만 들 기 위 하 여 super-user로 서 실 행 이 되 어 져 야 한 다 . 이 것 은 login 되 어 진 user의 영 향 력 있 는 user id를 지 속 하 며 socket에 address를 속 박 할 때 super-user의 권 한 을 얻 을 수 가 있 기 때 문 이 다 . 가 능 한 보 안 구 멍 에 대 해 서 세 밀 히 조 사 되 어 져 야 하 지 만 아 무 리 해 도 불 가 능 하 다 .

역 자

김 정 균 <admin [AT] oops.org> 2000년 8월 4일