プロが教えるわが家の防犯対策術!

ftpがbashで認識しない?(xinetd)
Linux:debian lennyをインストールし、自宅サーバを作ろうとしている初心者です。
こまっているのは、#ftp とキーを入力しても
# ftp
-bash: ftp: command not found
#
となり、bashがftpを認識してくれません。
動作は、xinetdで動くように設定してあります。
ftpはPROFTPDです。

psコマンドで確認したら
735 ? Ss 0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -inetd
と表示され、xinetdは起動しています。
どうすれば、ftpが認識されるようになるのでしょうか。

ご存知の方 お教えねがいます。

A 回答 (4件)

ftpというコマンドはあるけど…


ftpサーバーとかftpデーモンという言葉を使わず
"ftpはPROFTPD"とか書く時点で、勘違いがあることが見て取れます。

どこで勘違いしているのかがわからないほどのレベルの話ですが
たとえば、ウェブブラウザーとしてfirefoxをインストールして
webbrowserとタイプして起動するという話はありませんし
ftpというコマンドを導入していないのに、それが通るわけがありません。

また、サーバーマシンは通常ログインして
サーバープログラムを手動起動するようなものではありません。
サーバー管理の基本として、サーバープログラムの起動方法が広く知られています。


ようするに、まず基本から学ぶこと無く、突然サーバーを建てるのが無謀。
debianでftpサーバーを運用するための手順を
具体的に紹介している書籍なりウェブサイトは多々あります。


一般的には、OSを問わず、その知識と能力のレベルでは
インターネットに公開されたサーバーを運用することは
インターネットに対する公害だと言われています。
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。
ご指摘通り、サーバーは初めての試みでわからないことだらけです。
サーバの本は数冊買っていますが、まだ熟読できておりません。

インターネットに対する公害だと言われています

全くその通りとおもいます。
サーバーを公開するときは、もっと理解を深め、絶対安全を確認してから
おこないます。

お忙しい中、ご教示して頂き、誠にありがとうございました。
今後ともよろしくお願い致します。

お礼日時:2009/12/30 10:42

なんというか…


No.2さんの意見に全面的に同意です。

>の確認でbashがcommand not found

ftpってコマンド指定されたけど、そんなコマンドどこにも見つかりませんぜ?
とbashが言ってます。

>/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
>になっておりまして、どこにもFTPはありませんでした。

pathはディレクトリを指定するモノで、コマンドのファイルを指定するモノではありません。
よって、ftpコマンドの使用できる私の環境でも「FTP」はありません。

>実際にftpは存在しなくて、xinetdがftpをproftpdに変換してくれると思っておりました。

xinetdは設定されたポートで待ち受けして、接続があった場合に設定されているプログラム(通常はサーバプログラム)を起動し、接続されたソケットを受け渡します。
また、/etc/xinetd/の下にあるのは設定ファイルであり、ftpというファイル名とサーバプログラムはまったく無関係です。
# ftpのサービスの内容に関して記述したファイルをwebattackとしようが関係ありません。
「service ftp」と書かれているのは待ち受けするポート番号を指定しているだけです。
man xinetd.confを参照して下さい。

その上で…サーバとクライアントの区別付いていますか?
    • good
    • 0
この回答へのお礼

ご指導ありがとう御座います。
私の勉強不足での不可思議な質問をしていまい、申し訳ありませんでした。

初心者の私にご丁寧なご指導していただき、感謝しております。

その上で…サーバとクライアントの区別付いていますか?

全くそのとりで、FTPにサーバとクライアントの2種類があるとは
知りませんでした。

これを機会にサーバの書籍を購入し勉強を始めます。

お忙しい中、時間を使って頂きありがとう御座いました。

お礼日時:2009/12/30 10:56

私が初心者だったころOSSコミュニティーに皆さんはどんな初歩的な


質問にも答えてくださる方がいたものです。
質問者はFTP仕組みが理解できてないようです。
FTPにはServerとClientとがあってあなたがインストールしたPROFTPDは
Server programです。Clientがまだインストールされていません。
DebianならSynaptic Package Managerからftpというのを
探してクリックすると詳細にThe FTP clientと記してあるはずです。
Clientは色々あってNcftpとかGUIがいいならGftpというのがあります。
Clientによって機動コマンドが違うので注意しましょう。
Clientがインストールできたら、再度"ftp localhost"実行しましょう。
あなたが熟練者になったとき初歩の質問にも答えてあげてください。
めげずにがんばってね。
    • good
    • 0
この回答へのお礼

ご回答、ご指導して頂きありがとうございます。

>質問にも答えてくださる方がいたものです

ご回答の皆様の中には、厳しいご指摘もありましたが、実際には一番重要なことと
認識しております。(大変ありがたいご回答でした)

インターネットの将来を考えると一番重要なことかなと再認識しております。

前回のお礼のメールでも書きましたが、今回の知識不足は、
FTPがサーバとクライアントの2種類あることを知りませんでした。
ですから、サーバ側をインストールしたもので、全てが動くと錯覚していました。
これから、ご指導を受けた事項をやってみます。

>あなたが熟練者になったとき初歩の質問にも答えてあげてください。
>めげずにがんばってね

実際には少々めげていますが、それを肥やしに勉強していきます。

熟練者は当分先にになりそうですが、私も早く回答者になれるように頑張ります。

ほんとうに、ありがとうございました。

お礼日時:2009/12/30 11:14

ftpd(ftpサーバ)側の問題じゃなくて、ftpクライアント側の問題でしょう


ftpクライアントがあるディレクトリにpathが通ってないだけでは?
debianのマシンが手元にないのですが、

/usr/bin/ftp

のようにfull pathで書いたらどうなりますか?
それで起動できるのであれば、/usr/binにpathを通しましょう

この回答への補足

ここに載せているのはすべてサーバマシンのことです。
#ftp localhost
の確認でbashがcommand not found
を出力します。
補足まで

補足日時:2009/12/29 23:18
    • good
    • 0
この回答へのお礼

早急なご回答ありがとうございます。
現在のパスを確認しましたら
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
になっておりまして、どこにもFTPはありませんでした。

実際にftpは存在しなくて、xinetdがftpをproftpdに変換してくれると思っておりました。
xinet.dの下のディレクトリにftpの記述があります。
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.proftpd
server_args = /etc/proftpd/proftpd.conf
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
}

また、上記の通りxinetdにはftpを設定してあります。
xinetdの中の記述(コマンド)はbashにはパスが通らないのでしょうか。
またxinetdに設定したftpは実際にインストールしたproftpdと入力しないといけないのでしょうか。
大変恐縮ですが、再度ご回答お願い致します。

お礼日時:2009/12/29 22:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!