UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

FTPを自動化するのに .netrcを使いましょう

FTPを自動化するのに .netrcを使いましょう


0.改訂履歴

  • 2002.08.28 新規作成

1.はじめに

 このドキュメントでは,RedHat Linux上で,FTPを自動実行するための手順を説明する.

 FTPコマンドでは,接続する際のユーザパスワードを,たとえば,

ftp -u USER -p password

 などという方法で接続する事が出来ない. よって,バッチ処理の中でFTPを実行できないが,ここで紹介する.netrcを使う事で,あらかじめ指定されたユーザ&パスワードを指定して実現できるようになる.

2..netrcを作成する

  • FTPを実行したいOSのユーザアカウントのホームディレクトリに,.netrcというファイルを作成する.
  • ファイルの中身を見ると,次の通りである.
bash$ cat .netrc
machine 172.1.2.3
login sybase
password sybasepassword
bash$ 
  • では,このファイルがある状態で,該当のFTPサーバに接続してみる.
bash-2.05$ ftp 172.1.2.3
Connected to 172.1.2.3 (172.1.2.3).
220 poweredge FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST
 2000) ready.
Error - .netrc file not correct permissions.
Remove password or correct mode (should be 600).
ftp> quit
  • 残念ながら,エラーが発生して自動ログインできなかった.
  • この原因は,メッセージにもあるとおり,.netrcのパーミッションがいい加減なので,セキュリティ的に問題があるという警告である.

3..netrcのパーミッションを設定する

  • では,.netrcのパーミッションを確認してみる.
bash-2.05$ ls -la .netrc
-rw-r--r--    1 sybase   ASE            51 Aug 27 15:10 .netrc
bash-2.05$
  • これでは,どのユーザでもリード出来るようになっている.
  • つまり,誰でもパスワードが分かっちゃう.
  • これではまずいので,ユーザ以外の参照権限を削除する.
bash-2.05$ chmod og-r .netrc
bash-2.05$ ls -la .netrc
-rw-------    1 sybase   ASE            51 Aug 27 15:10 .netrc
bash-2.05$
  • 普通の人は,chmod 600とするんだろうけど,ここでは(o)wner,(g)roupの権限からRead権限を削除(-)している.

4.再度接続

  • .netrcファイルの権限を変更後,再度接続してみる.
bash-2.05$ ftp 172.1.2.3
Connected to 172.1.2.3 (172.1.2.3).
220 poweredge FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST
 2000) ready.
331 Password required for sybase.
230-Please read the file README
230-  it was last modified on Wed Jan  5 04:37:44 2000 - 964 days ago
230 User sybase logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 340 bytes in 0 transfers.
221-Thank you for using the FTP service on i0-sybase.
221 Goodbye.
bash-2.05$ 
  • 今度はユーザパスワードを入力せずに,接続できた.

5.バッチ処理で使うために

  • このように設定した後,FTPをバッチで実行するには,次のような手順となる.
  • FTPコマンドを記述したファイルを作成する.
bash-2.05$ cat ftpcommand.txt
bin
get getfile.exe
quit
bash-2.05$  
  • 作成したファイルをリダイレクトして,FTPを実行する.
bash-2.05$ /usr/bin/ftp 172.1.2.3 < ftpcommand.txt
bash-2.05$ 


広告スペース
Google