RedHat Linux 7.0J で ftp user の chroot 設定をしていますが、
どうしてもうまくいきません。
xinetd + wu-ftpd の構成です。
(1) /etc/ftpaccess に
guestgroup ftponly
を追加する
(2) useradd -g ftponly -G ftponly ftpuser1 でユーザを追加した。
(3) su ftpuser1 ; mkdir /home/ftpuser1/pub
(4) /etc/passwd を次のように編集した
ftpuser1:x:520:503:Ftp User:/home/ftpuser1/./pub:/bin/bash
(5) /home/ftpuser1/bin に /var/ftp/bin のファイルをコピーし、
chmod 111 にした。
とりあえずこれだけで ftp に入れました。仮想ルートにも
なっています。ファイルのアップもできて、アップされたことも
telnet で確認できています。
しかし、ftp ソフトからは、ls では何も表示されません。
あるはずのファイルやディレクトリーが一切表示されないのです。
で、linux から ftp localhost で入っても、
やはり表示されません。
ftp> ls
227 Entering Passive Mode (127,0,0,1,174,102)
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
ftp> cd bin
250 CWD command successful.
でも、見えないはずの bin に cd できたし、見えないファイルも
get できました。
ls だけは何も表示してくれないのです。
いろんなサイトを検索してみたのですが、解決法が見つかりません。
何が原因か分からず、困っています。
ヒントでも頂けたらありがたいです。
よろしくお願い致します。
p.s. /etc/xinetd.d/wu-ftpd で起動オプションに -d を
追加してみたのですが、その出力はどこにあるのでしょうか?
====== W ====== I ====== N ====== G ======
World-wide InterNet Gokaisho
==============================================
馬渕 茂 m...@wing.gr.jp
http://www.wing.gr.jp/
WING Server Address:
telnet wing.gr.jp 1515 (English)
telnet wing.gr.jp 2525 (Japanese)
Shigeru Mabuchi wrote:
>
> RedHat Linux 7.0J で ftp user の chroot 設定をしていますが、
> どうしてもうまくいきません。
(略)
> (5) /home/ftpuser1/bin に /var/ftp/bin のファイルをコピーし、
> chmod 111 にした。
>
> とりあえずこれだけで ftp に入れました。仮想ルートにも
> なっています。ファイルのアップもできて、アップされたことも
> telnet で確認できています。
>
> しかし、ftp ソフトからは、ls では何も表示されません。
/var/ftp/lib ディレクトリもコピーすべきなんじゃないでしょうか。
--
Dear My TaJima http://www.dear.my.tj/
たじまんツー taji...@dear.my.tj
Tajiman2 wrote in [linux-users:88061] Re: ftp での仮想ルート設定について:
>
>> しかし、ftp ソフトからは、ls では何も表示されません。
>
>/var/ftp/lib ディレクトリもコピーすべきなんじゃないでしょうか。
早速のレスをありがとうございます。
はい、/var/ftp/lib もコピーしてあります。
/home/ftpuser1/etc/ にも passwd と group ファイルを
用意しました。
[root@ns etc]# ls -l
合計 8
-r--r--r-- 1 ftpuser1 ftponly 42 10月 4 18:00 group
-r--r--r-- 1 ftpuser1 ftponly 42 10月 4 16:22 passwd
[root@ns etc]# more group
root::0:
staff:::
ftponly:*:503:ftpuser1
[root@ns etc]# more passwd
ftpuser1:*:520:1:
bin:*:2:2:
root:*:0:3:
それでもダメでした。wu-ftpd で ls を実行したときの
ログがどこかにあれば、何かわかるかもしれませんが、
そのログの場所が分からないんです。
From: Shigeru Mabuchi <m...@wing.gr.jp>
Subject: [linux-users:88064] Re: ftp での仮想ルート設定について
Date: Thu, 4 Oct 2001 18:24:43 +0900
-- snip --
mab> それでもダメでした。wu-ftpd で ls を実行したときの
mab> ログがどこかにあれば、何かわかるかもしれませんが、
mab> そのログの場所が分からないんです。
/etc/ftpaccess に適切な設定をすれば、/var/log/messages あたりに
詳細なログが記録されるかと思います。
あと、NLST(nlist) はどうでしょう。
ONODERA Keiichi wrote in [linux-users:88067] Re: ftp での仮想ルート設定について:
>小野寺と申します。
>
>From: Shigeru Mabuchi <m...@wing.gr.jp>
>Subject: [linux-users:88064] Re: ftp での仮想ルート設定について
>Date: Thu, 4 Oct 2001 18:24:43 +0900
>
>-- snip --
>mab> それでもダメでした。wu-ftpd で ls を実行したときの
>mab> ログがどこかにあれば、何かわかるかもしれませんが、
>mab> そのログの場所が分からないんです。
>/etc/ftpaccess に適切な設定をすれば、/var/log/messages あたりに
>詳細なログが記録されるかと思います。
小野寺さん、レスありがとうございます。
確かにログが記録されていますね。望むほどの詳細な内容は
ありませんでしたが。
とりあえず自己解決しました。
原因は、 chroot にありました。設定したユーザの shell は
/bin/bash ですが、anonymous ftp 用にコピーした /var/ftp/lib の
ファイルは /bin/sh 用であるため、ftpd 内で chroot ls に
失敗したようです。ちょっと乱暴ですが、/lib/* をすべてコピーしたら、
ちゃんと表示されました。
>> On Fri, 5 Oct 2001 00:19:52 +0900, Shigeru Mabuchi <m...@wing.gr.jp> said:
Shigeru> とりあえず自己解決しました。
Shigeru> 原因は、 chroot にありました。設定したユーザの shell は
Shigeru> /bin/bash ですが、anonymous ftp 用にコピーした /var/ftp/lib の
Shigeru> ファイルは /bin/sh 用であるため、ftpd 内で chroot ls に
1. ls が shared lib を使うようになっていたが, 必要なものは chroot する
と見えない.
2. /bin/bash と /bin/sh は 実は別のものだった(機能的な違いというわけで
なく, 別のファイルが実体であった)
3. /bin/bash を 指定していたが /bin/sh しかなかった.
4. /bin/bash は shared をつかっていた(あとは 1 と同じ)
1 ってことで 知っている人は知っているけれど... な 話だったということですよね?
4 もかな...
--
(ishi)
Takashi ISHIOKA wrote in [linux-users:88069] Re: ftp での仮想ルート設定について:
症状発生時の状況はかなりあやふやで、はっきり把握していないのですが、
一応私の設定失敗の過程を書きます。
(1) /bin/sh は /bin/bash にリンクされていて同じものです。
(2) 最初は http://www.nanwa.or.jp/~tomo/server/ftp/linux/ftp-tips.htm
を参考にして設定したのですが、ここには /bin や /lib について、
何も書いてありませんでした。案の定、そのままでは ls が動きません
でした。でも、pwd や cd が動くってことは、これらのコマンドは
shell 経由ではなく、wu-ftpd が自分で処理するのかな?
(3) 今度は別のHPで /bin /lib /etc の設定について少し書いてあったので、
リンクでもいいと思って、
ln -s /var/ftp/bin /home/ftpuser1
ln -s /var/ftp/lib /home/ftpuser1
にしたのがつまずきの原因だと思います。
/home/ftpuser1/etc 内の passwd と group は自分で作成しました。
これでもダメだったので、ここからは ftpaccess, ftpd, chroot の
マニュアルを読みあさって試行錯誤をしているうちに迷走してしまいました。
この時点では、 chroot しても /bin/bash が見つからないと
出てしまいます。(ftpuser1 の shell は bash です)
(4) そのあと、リンクの代わりに、/var/ftp/bin と /var/ftp/lib
をコピーしましたが、相変わらず chroot で /bin/bash が見つからない
と出た。仕方ないので、/bin/bash をコピーしたら、今度は
chroot で bash は見つかったが、lib の link errorがでました。
それで /lib をそのままコピーしたら、やっと動きました。
おそらく、いろんなモジュールを入れているうちに、/var/ftp/lib の
内容と /lib の内容が食い違ったのかな?と推測していますが....
だいたいこんな感じです。たいした参考になりませんが。