2010年2月16日火曜日

vsftpd Linux(fedora9) くだらない事でハマッた・・・・orz

FTPとかいじってなくて忘れてたんですけど(言い訳
結論から言うと
lacal_root=public_html
になってたのにpublic_htmlがなかったという非常にお間抜けな話なんです。

まぁそもそもchrootを理解してなかったと言う事だったわけですね。
自分のアカウントだけchrootしてなくて
他ユーザでログインできなくて、あれれ~?ってなってました。

FFFTPでは
表示→処理内容をビューワーで表示
ホスト [サーバーアドレス] (21) に接続しています.
接続しました.
220 Welcome to FTP test server.
>USER muscle2
331 Please specify the password.
>PASS [xxxxxx]

ログインできません.

となってまして、SSHでサーバーは入ってftpにつないで見ると
[muscle2@mail ~]$ ftp
ftp> open 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 Welcome to FTP test server.
Name (127.0.0.1:muscle2): muscle2
331 Please specify the password.
Password:
500 OOPS: cannot change directory:public_html
Login failed.
ftp>

って感じでしてここで気づけそうだったのに
SELinux確認してみたりとかしたんですけど
結局はユーザーのホームディレクトリにpublic_htmlがなかったという落ちだったわけですね。
アラヤダwハズカシイw

で、public_htmlは別にいらないので
local_root=
として各ユーザーのホームディレクトリに繋がるようにしました。
これはデフォルトらしいんでもともとlocal_root=とかかかなきゃ良かっただけだった!オーマイガッ!

ついでなんでchrootについて
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

まぁ英語のコメント読めばわかりますが、
この設定だとlocal_user=YESになってるんで/etc/vsftpd/chroot_listがchrootしないリストになってるわけですね。
あと特定のユーザーだけ別のところにchrootするとかあった気がしますが、どこか忘れました。

むしろ今それ探してたら、同じ人見つけちゃった・・・・
これ昨日も見たはずなのによく読んでなかった・・・orz

0 件のコメント: