· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Ftp

FTP mini-HOWTO

FTP mini-HOWTO

Matthew Borowski ( mkb@yahoo.com)

v0.2, 9 January 2000 역자 : 이호연 < guru2k@kldp.org>
FTP 클라이언트와 서버를 사용하는 법

1. 서문

이 문서는 Matthew Borowski에 의해 리눅스 문서 프로젝트를 위해 쓰여졌다. 나는 내가 추가하기 원하는 것을 아직 모두 추가하지를 못했다. FTP 서버 운영에 관한 정보를 추가할 것이다.

1.1 나와 연락하기

이 문서의 어떤 첨가나 변경을 원하면 나와 연락하라. 기술적인 지원은 하지 말라 -- 회사, WorldServe, 혹은 당신이 comp.os.linux.*과 같은 도움을 요청할 수 있는 뉴스그룹을 통하여 유닉스 컴설팅과 지원을 받아라. 나는 영어와 Farsi만 이해할수 있는 것을 항상 기억하라.

1.2 합법과 배포판

이 문서의 저작권은 Matthew Borowski에게 있다. 저작권을 따르는 조건 하에서 이 문서를 자유롭게 배포할 수 있다. 상업용 제품에서 이 하우투를 배포하려면, 나는 복사본을 받고 싶다, 그러나 필요하지는 않다. 당신이 이 문서의 수정 혹은 번역을 원하면, 먼저 나한테 알려달라.

1.3 이 문서의 역사

991203: FTP HOWTO를 처음으로 썼다. 아직 작업 진행중이다.

2. FTP에 관하여

FTP (File Transfer Protocol)는 원격의 네트워크 사이트로 부터 허락된 사용자가 파일을 옮기는 클라이언트/서버 프로토콜이다. TCP와 작업하고 인터넷에서 가장 일반적으로 쓰이기는 하나, LAN에서도 또한 쓸 수 있다.

FTP 사이트는 FTP 서버 소프트웨어 (FTP 데몬, 혹은 ftpd로 알려진)를 운영하는 컴퓨터이다. 공공의 ftp 사이트는 보통 누구나 anonymous 혹은 ftp로 로그인해서 접근이 가능하다. 프리 유닉스 소프트웨어가 있는 우수한 ftp 사이트가 있다. ftp를 사용하는 법을 배우려면, 당신 자신이 자원에 접근해야 한다.

개인적인 FTP 사이트는 사용자 이름 혹은 패스워드를 필요로 한다. 당신이 ISP의 셸 어카운트를 가지고 있다면, FTP를 거쳐 당신의 파일에 접근할 수 있을 것이다(이 것을 확인하려면 당신의 시스템 관리자와 연락하라).

FTP 클라이언트는 FTP 서버에 접근하기 위해 제공하는 userland 애플리케이션이 있다. 이용가능한 많은 FTP 클라이언트 프로그램이 있다. 몇 개는 그래픽 기반이고, 몇 개는 텍스트 기반이다.

FTP는 California 대학에서 처음 개발되었고, Berkelry 4.2BSD (Berkeley 유닉스) 에 포함되었다. RFC (Request for Comments) 는 nic.merit.edu/documents/rfc/rfc0959.txt 에서 이용 가능하다.

3. 초보자를 위한 ftp 사용 가이드

ftp 사용 퀵 가이드.

표준 ftp 프로그램은 최초의 ftp 클라이언트이다. 대부분의 리눅스 배포판에 들어 있다. California, Berkeley 대학에 의해 개발되었고, 처음으로 4.2BSD에 나타났다.

3.1 ftp 프로그램 사용하기

ftp 사용하는 것은 쉽다. 최근의 리눅스 커널 소스를 받기 위해서 metalab.unc.edu의 ftp 사이트에 anonymous로 접속하길 원할 것이다. 명령 라인에서, 쳐라:

     $ ftp metalab.unc.edu

ftp 프로그램은 metalab.unc.edu에 접속하려고 시도할 것이다. 매개변수 없이 명령 라인에서 ftp를 실행하기 위한 다른 방법은 이렇게 하라, 그리고 사이트 이름과 함께 open 명령을 사용하라:

     $ ftp
       ftp> open metalab.unc.edu

3.2 FTP 서버로 로그인하기

FTP 사이트에 접속되었을때, 로그인을 위해서 당신에게 물을 것이다 (당신의 사용자 이름을 적어라, 이런 경우에는, foo: 우리는 공공의 아카이브를 얻기 위해서 anonymous 혹은 ftp로 로그인 한다.

     220 helios.oit.unc.edu FTP server (Version <B style="color:black;background-color:#ffff66">wu-2.6.0(2) Wed Nov 17 14:44:12
       EST 1999) ready.
       Name (metalab.unc.edu:foo):

지금, 패스워드 대신에 완전한 e-mail 주소를 입려하라 (대부분의 공공의 FTP 사이트에서는 이 것을 요구한다).

     331 Guest login ok, send your complete e-mail address as password.
       Password:

로그인을 성공한 다음에, 다음의 정보가 우리에게 주어진다:

Remote system type is UNIX. Using binary mode to transfer files. ftp>

3.3 파일 전송 유형

ftp 사이트에 로그인한 후에, ftp는 파일 전송 유형을 출력할 것이다. 지금은 바이너리 방식이다. 바이너리 방식의 파일을 전송하려면, 조금씩, FTP 서버에 있을 것이다. 그렇지만, 정확히 텍스트를 다운로드 하려면 아스키 방식을 하라. 방식 사이를 ascii 혹은 binary를 사용해서 바꿀수 있다.

커널 소스를 받기를 원한다면, 바이너리 전송 방식으로 바꿔라. 바이너리 방식은 그래픽 이미지, zip/gzip 아카이브, 실행가능한 프로그램, 기타 같은 텍스트 파일이 아닌 파일을 전송하기 위해서 쓰인다. 믿지 못하면, 바이너리 방식을 써봐라.

3.4 항해하기와 디렉토리 목록보기

파일의 목록을 보기 위해서 ls를 사용해라. ftp 서버에서 ls 명령은 원격의 서버에서 실행된다, 그래서 명령 라인 옵션을 서버에서 서버로 쓸 수 있다. 대부분의 보통의 옵션은 대체로 이용 가능하다, 자세한 ls의 manpage를 확인하라.


     ftp> ls
       200 PORT command successful.
       150 Opening ASCII mode data connection for /bin/ls.
       total 33590
       -r--r--r--   1 root     other    34348506 Dec 03 03:53 IAFA-LISTINGS
       lrwxrwxrwx   1 root     other           7 Jul 15  1997 README -> WELCOME
       -rw-r--r--   1 root     other         890 Nov 15 13:11 WELCOME
       dr-xr-xr-x   2 root     other         512 Jul 15  1997 bin
       dr-xr-xr-x   2 root     other         512 Jul 15  1997 dev
       dr-xr-xr-x   2 root     other         512 Jul 18  1997 etc
       drwxrwxrwx  11 ftp      20           4608 Nov 28 16:00 incoming
       lrwxrwxrwx   1 root     other          13 Jun 04  1998 ls-lR -> IAFA-LISTINGS
       dr-xr-xr-x  17 root     root          512 Jun 08 11:43 pub
       dr-xr-xr-x   3 root     other         512 Jul 15  1997 unc
       dr-xr-xr-x   5 root     other         512 Jul 15  1997 usr
       226 Transfer complete.

ls 명령이 너무 많은 파일을 리스트 하면 스크린의 탑의 스크롤을 끄라, 스크롤 업을 하기 위해서 Shift-Pageup을 사용할 수 있다. xterm 이나 rxvt 뿐만아니라 리눅스 콘솔 모드에서도 작동한다.

공공의 FTP 아카이브에서, 다운 가능한 자원은 항상 /pub 디렉토리에 있다. 예를 들어, 당신은 커널 소스에서 이미 /pub/Linux/kernel에 있다. 그래서 저 디렉토리에 얻기 위해서 가려면 다음 명령을 쳐라:


     ftp> cd pub/Linux/kernel
       250-README for kernel
       250-
       250-What you'll find here: kernel sources and patches
       250-
       250-
       250 CWD command successful.

"250"로 시작하는 메시지는 서버에 의해 보내지는 정보 메시지이다. 이 경우에, ftp 서버에서 자동으로 README 파일을 당신이 cd로 디렉토리에 들어갔을때 보내도록 설정했다.

3.5 파일 받기와 보내기

지금, ls외에 다른 것을 쓸 것이다, v2.2 디렉토리로 들어가기 위해서 cd를 써라. 아직 ls외에 쓰지 않았다, 그리고 다운로드 하기 원하는 파일을 찾아라. 그것은 linux-2.2.13.tar.gz이다. 이렇게 써라:


     ftp> get linux-2.2.13.tar.gz
       local: linux-2.2.13.tar.gz remote: linux-2.2.13.tar.gz
       200 PORT command successful.
       150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
       bytes).

ftp 프로그램은 linux-2.2.13.tar.gz 파일을 linux-2.2.13.tar.gz로 저장하기 시작한다.

foo.tar.gz로 저장하기 원하면, 이렇게 이름을 적어라:


     ftp> get linux-2.2.13.tar.gz foo.tar.gz
       local: foo.tar.gz remote: linux-2.2.13.tar.gz
       200 PORT command successful.
       150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
       bytes).

한번에 한 파일 이상을 받기 원하면, mget(multiple get)명령을 사용해라. mget와 다운로드 받기를 원하는 파일이름의 위치의 범위 혹은 와일드 카드를 써라. 예를 들면:

ftp> mget linux*

"linux"로 시작하는 모든 파일을 받으려면. 일반적으로, 그것을 다운로드 받기 전에 각각의 파일을 보여줄 것이다. 프롬프트 명령을 써서 고정시킬 수 있다.

지금 몇 소프트웨어를 보낼 것이다, 그리고 그것을 Metalab의 리눅스 소프트웨어 아카이브에 추가하기 위해서 올리기는 원한다면. 첫째로, 당신은 /incoming 디렉토리 (대부분의 공공의 FTP 서버는 가지고 있고, 언제나 파일 올리기가 가능한 incoming 혹은 uploads로 불리운다.) 로 간다, 그리고 put 명령을 사용한다:


 
    ftp> cd /incoming
       ftp> put foo.tar.gz
       local: foo.tar.gz remote: foo.tar.gz
       200 PORT command successful.
       150 Opening BINARY mode data connection for foo.tar.gz.
       226 Transfer complete.
       10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)

put 명령은 get 명령과 같이 동작한다, 그래서 많은 파일을 한번에 올리려면 mput를 사용할 수 있다. 원격의 파일 그리고/혹은 경로명을 명확히 적어서 서버의 다른 파일로 올릴 수 있다.

현재의 로컬 디렉토리에 foo.tar.gz가 있지 않다면 올릴때 어떻게 시도할 것인가? 당신은 lcd (local change directory) 명령을 사용해서 로컬 디렉토리를 바꿀 수 있다:


     ftp> lcd /home/foo/
       Local directory now /home/foo

3.6 셸 명령 사용하기

ftp 클라이언트는 로컬 명령을 사용하기 위해서 bang (!)을 사용하는 것을 지원한다. 예를 들면, 현재의 로컬 디렉토리의 파일의 목록을 보기 위해서는 이렇게 하라:

ftp> !ls

이 작업의 방법은 ftp가 셸($SHELL 환경변수에 있는)을 부른다, 그리고 ls를 실행한다. 이와 같이, "!" (대부분의 리눅스 배포판의 디폴트 셸은 bash, the Bourne Again SHell이다)를 앞에 넣어서 간단하게 셸로 어떤 명령 라인 작업이라도 할 수 있다. !cd는 작동하지 않는다는것을 기억하라, 그것은 lcd 명령이 존재하기 때문이다.

3.7 Hash mark와 tick

ftp로 파일을 다운로드 받는 동안 진행을 보기 원하는가? 다운로드 파일을 해시 마크로 보여주는 hash 명령을 써봐라:


     ftp> hash
       Hash mark printing on (1024 bytes/hash mark).

ftp는 해시 마크를 다운로드 받는 데이터의 1024 바이트 마다 보여줄 것이라고 말한다.

또한 tick 옵션이 있다.


     ftp> tick
       Tick counter printing on (10240 bytes/tick increment).
     This will print something to this effect as you download a file:
     Bytes transferred: 11680

3.8 그 외의 ftp 명령

다른 ftp 명령이 많이 있다. 퍼미션을 가지고 있다면 (개인적인 셸 어카운트에 접속하려면 필요한), mkdir 명령으로 원격의 서버에 디렉토리를 만들 수 있다. delete 명령으로 원격의 서버에 있는 파일을 지우거나 rmdir 명령으로 디렉토리를 지울 수 있다. chmod 명령으로 파일의 퍼미션을 바꿀 수 있다.

ftp를 사용하는데 복잡한 정보가 많이 있다, ftp 프로그램에서 온라인 도움말을 보라 (명령의 목록의 변수 없이 help 혹은 명령의 명확한 도움말을 help <commandname> 써서 볼 수 있다. 또한 ftp 명령 프롬프트에서 man을 써서 유닉스 맨 페이지를 볼 수 있다.

4. 콘솔 FTP 클라이언트

최초의 ftp 프로그램은 최조의 ftp 클라이언트이고, 그것을 배우는데에 투자하기가 좋다. ftp 클라이언트만 대부분의 시스템 (심지어 구식의 죽은 버전의 ftp 명령이라 할지라도 Win32에도 있다)에서 이용 가능하다고 확신한다.

이용 가능한 많은 다른 콘솔 모드(텍스트) ftp 클라이언트가 있다. 여기의 목록에는 많은 것이 있지 않다, 그러나 대부분 인기있는 것들은 있다. FreshMeat에서 더 많이 찾아보라.

4.1 NcFTP

NcFTP는 많은 유닉스 사용자가 최고로 좋아하는 ftp 클라이언트이다. 대부분의 리눅스 배포판에 들어있고, 그리고 많은 tab 완료 그리고 북마크 같은 고급 기능을 제공한다. NcFTP의 버전 2에서는 풀 스크린 모드기반이다. 버전 3에서 없어졌다(지금은 베타이다).

ftp 사용의 표준 명령이 100% 적절하지는 않다. 예를 들면, NcFTP에서 get과 put은 표준 ftp 에서 mget와 mput와 같이 동작한다. 그래서 로컬 파일이름과 다르게 원격에 파일을 저장하고 싶으면, -z 원격의 이름 로컬 이름 이라고 하면 된다. 고맙게도, NcFTP는 명령 배우기는 것을 도와주기 위한 온라인 도움말 시스템이 있다. NcFTP의 최신 버전은 www.ncftp.com에서 구할 수 있다.

4.2 lukemftp

다른 시스템을 위한 NetBSD FTP 클라이언트의 포팅된 것, 대부분의 특징을 저자가 이름을 lukemftp로 강화했다, 추가한 것: 명령 라인 에디팅, 명령 라인 FTP와 HTTP URL(가까운 곳)로 부터 가져 와라, 배경-민감한 단어를 완성했고, 다이나믹 진행 바, IPv6 지원, 시간 저장 수정, 로컬과 원격의 파일을 페이징, 수동적 모드 지원 (활동적인 모드를 위한 대체), SOCKS 지원, TIS FWTK 게이트 ftp 서버 지원, 그리고 진도 멈추게 하는것을 바꿨다.

나는 FTP 클라이언트의 표준을 지키면서 더 고급 기능을 원하는 사용자에게 lukemftp를 강력히 추천한다.

최신 버전의 lukemftp는 ftp.netbsd.org/pub/NetBSD/misc/lukemftp/ 에서 얻을 수 있다.

4.3 lftp

lftp는 세련된 명령 라인 기반의 FTP 클라이언트이다. bash 같은, 작업 제어기가 있다. 입력을 위해서 GNU 리드라인 라이브러리를 사용한다, 그래서 명령 라인 완료와 에디팅을 할 수 있다. lftp는 북마크, 미러링 지원, 그리고 몇몇의 파일을 패레럴로 옮길수 있다.

최신 버전의 lftp는 ftp.yars.free.net/projects/lftp/에서 얻을 수 있다.

데비안 패키지는 ftp.freshmeat.net/pub/debs/lftp/ 에서 얻을 수 있다.

4.4 cftp

편안한 FTP (cftp)는 풀 스크린 모드 클라이언트 이다. 특징이 모자라지만, 편안하게 사용하게 만든다. 방향키와 엔터를 사용해서 디렉토리를 완전히 쓸 수 있다.

최신 버전의 cftp는 ftp.giga.or.at/pub/nih/cftp/에서 얻을 수 있다.

4.5 yafc

Yafc는 매우 좋은 ftp 클라이언트이다, 특징적인 디렉토리 캐시 추가, 원격의 파일 완성기능, 앨리어스, 화려면 ls, 되풀이 사요되는 get/put/ ls/rm, nohup 모드 전송, 태깅 (큐), 다양한 접속, 프록시 서버 지원 그리고 기타. Kerberos4 증명하기 지원.

최신 버전의 yafc는 www.stacken.kth.se/~mhe/yafc/에서 얻을 수 있다.

데비안 패키지는 members.home.com/decklin/experimental/ 서 얻을 수 있다.

레드햇 패키지는 lz.freeservers.com/linux/yafc.html있다.

5. X 윈도우 FTP 클라이언트

몇몇의 그래픽의 X 원도우 시스템에서 작동하게 설계된 FTP 클라이언트가 있다. 이 클라이언트는 사용자가 쉽게 사용하기 위해서 그래픽의 환경과, 때로는 텍스트 기반 ftp 클라이언트의 도구의 다방면의 옵셕을 제공한다.

5.1 gFTP

gFTP는 Gtk를 사용해서 쓰인 X 윈도우용 FTP 클라이언트이다. 인터페이스는 일반적으로 불안정한 운영체제에서 쓰인다고 확신하는 인기있는 WS_FTP 소프트웨어의 비슷하다.

gFTP의 특징은 다운로드를 동시에 하고, 전송 중기한 파일을 다시 받고, 파일 전송 큐, 디렉토리 전체 받기, ftp 프록시 지원, 원격의 디렉토리 캐시, 수동적이고 수동적이지 않은 파일 전송, 드래그 앤 드롭 지원, 아주 좋은 접속 매니저 그외.

레드햇 리눅스를 사용하고 GNOME 데스크탑을 설치했으면, 아마 gFTP가 있을 것이다. 없으면 gFTP의 홈페이지인 gftp.seul.org/ 있다.

5.2 WXftp

WXftp는 대부분 리눅스 워크스테이션의 X 윈도우 시스템의 FTP 클라이언트로 쓰이도록 설계되었다. WXWindows 툴킷을 사용해서 만들었고, 그래서 Motif 혹은 GTK+중 하나를 사용해서 컴파일되었다.

직관적인 인터페이스 (WS_FTP와 아주 같은), 섹션 매니저, 온라인 도움말, 상황 바, 그리고 더 많이 추가하였다. WXftp의 홈페이지인 wxftp.seul.org 있다.

5.3 LLNL XDIR and XFTP

LLNL XFTP는 리눅스용 첫번째 그래픽 FTP 클라이언트중에 하나이다. FXP (file transger between two remote hosts)를 지원하고 Motif 기반 인터페이스이다.

더 많은 정보는 www.llnl.gov/ia/xdir_xftp/있다.

5.4 guiftp

Guiftp는 GTK+ 툴킷으로 만들어진 단순한 ftp 클라이언트이다. 많은 특징이 필요하지 않고 단순하고 깨끗하게 보이는 것이 필요하지 않다면 좋다.

Guiftp의 홈페이지는 www.altern.org/ldufresne/guiftp/이다.

6. FTP 서버

6.1 FTP 서버 운영하기

전통적인 FTP 서버는 inetd (the internet superserver daemon)로 부터 실행된다. 표준 FTP 보트는 21번 포트이다. 사용자가 로그인하려고 할때, FTP 서버는 시스템 패스워드 파일의 이름과 패스워드나 NIS를 사용하고 있다면 NIS 테이블을 확인한다. 로그인을 교정하면, 사용자가 시스템에 접근할 수 있다.

Anonymous FTP는 다르게 작동한다. anonymous 혹은 ftp 사용자이름(설정 파일에서 설정할 수 있다)중 하나를 써서 로그인한다. chroot()의 디렉토리 트리에 접근할 수 있다. 사용자가 인증되지 않은 디렉토리에 접근하지 않도록 보증한다. chrooted 보통 디렉토리 트리의 bin/, etc/, 그리고 lib/ 디렉토리같은 파일시스템을 가짜로 확신하도록한다. pub/ 디렉토리는 파일을 올리기 위해서 보통 쓰인다.

외부의 ls같은 명령을 요청하는 anonymous FTP 트리의 가짜의 파일시스템을 위한 것이 이유이다. bin 디렉토리에 프로그램을 항상 추가할 수 있고, 사용자는 ftp 클라이언트 SITE 명령을 사용해서 실행할 수 있다. 예를 들면, 레드햇의 FTP는 RPM 명령 (사이트의 RPM 패키지를 문의하기 위한) 을 추가했다.

몇몇 FTP 서버는 다르게 작업한다. 예를 들면, 어떤은 시스템 와이드 패스워드 파일 (오직 FTP 계정) 의 독립적인 설치를 위한 사용자 계정을 허락할 것이다. 어떤 서버 (ProFTPD 그리고 NcFTPd의 경우) chroot 구조 내부의 특별한 디렉토리 트리가 필요하기 않는 ls 명령을 추가했다. 다른 ftp 서버는 표준 ftp 개념을 부터 완전히 벗어났다. FTP4ALL, 예를 들면, 모두에게 시스템 패스워드를 쓰지 않는다. 자신의 사용자 그리고 그룹 파일, 그리고 올리기/받기의 비율 그리고 특징 변경 가능한 서버 메시지같은 것을 사용한다.

6.2 FTP 서버의 도움말

WU-FTPD

WU-FTPD는 많은 리눅스 배포판에 포함된 ftp 데몬이고, 레드햇 그리고 칼데라에 추가되었다. www.wu-ftpd.org에서 WU-FTPD에 관해서 더 많은 것을 배울 수 있다.

WU-FTPS FAQ는 www.cetis.hvu.nl/~koos/wu-ftpd-faq.html 에서 찾을 수 있다.

ProFTPD

ProFTPD는 아파치 스타일의 설정, 광대한 가상의 호스트 지원, 그리고 내부의 ls를 추가한 강력한 FTP 서버이다.

완전한 명령 레퍼펀스와 다운로드는 www.proftpd.org 에서 찾을 수 있다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-12-13 18:22:13
Processing time 0.0215 sec