2006/04/11(火)apacheのユーザ用マッピング

2006/04/11 22:12 PC(Linux)
ユーザーのホームページを公開する場合、

/etc/apache/httpd.confに、
UserDir public_html
と書けばいいと思っていたのだが、確認してみたところ404 not foundでなぜか上手くいかない。しばし悩んだのだが、やっと気づいた。オフィシャルのドキュメントは「ちゃんと」読まないとダメ。

http://httpd.apache.org/docs/2.0/ja/mod/mod_userdir.html#userdir
public_htmlと指定した場合、~user名/public_htmlにマッピングされる。~user名はuserのホームディレクトリ。うちの鯖はHP&ftpユーザのホームディレクトリを/home/user名/public_htmlに変更していたのだった。ということは、/home/user名/public_html/public_htmlを見にいっていたのだな。これでは上手くいかない。
UserDir .||<
でも上手くいくが、これはおかしすぎるので(ホームディレクトリを変更していないユーザーはどうなるか……)、

>||
UserDir /home/*/public_html
とした。ついでに、
UserDir disabled
UserDir enabled ユーザを列挙
として必要なユーザにだけ許可。

うちの鯖でHP公開する人が増えるとも思えないのでこんなんでよし。

2006/04/11(火)proftpdが動いてなかった

2006/04/11 19:47 PC(Linux)
前回の適当なアップグレードで不具合が発生しないわけがない。ということでftpが動いてないことが今更発覚した。
今まで気づかなかった理由は、


  • チェックしたプロセス一覧から漏れてた

  • 自分が使ってない

  • 使ってるユーザが1人でそいつもほとんど使ってない


まあ適当にやってるからね。

で、原因を探す。
# /etc/init.d/proftpd start
Starting ProFTPD ftp daemon:  - Fatal: LsDefaultOptions: deprecated. Use ListOptions instead on line 24 of '/etc/proftpd.conf'
confファイルの仕様が変わったようだ。素直に、/etc/proftpd.confを書き換える。
# diff /etc/proftpd.conf.060411 /etc/proftpd.conf
24c24
< LsDefaultOptions                "-l"
---
> ListOptions                "-l"
LsDefaultOptionsをListOptionsに変えただけ。

で、再起動。
# /etc/init.d/proftpd start
ログインチェックまでして問題なし。

2006/03/29(水)woody -&gt; sargeへのアップグレード

2006/03/29 19:15 PC(Linux)
そろそろ落ち着いてきたはず(詰まっても検索すれば大丈夫)なので、sargeからwoodyへのアップグレードを敢行することにした。今回時間がないのと自宅鯖の気楽さで、特にチェックもせずにいきなりアップグレードし<てしまうことにする。本当は重要なサービスが「正常に」動いているかどうか、全部チェックするのが正しい。

まずはaptの書き直し


そうそう、ring.asahiが死んだ後今までring.so-netにしていたのだがどうも調子が悪い。ついでに本家に差し替えてしまうことにする。non-USは統合されたということなので大分綺麗に。
## use jp translation package
deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/sarge main
#deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/etch main
#deb http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp ja/sid main

## stable(sarge)
deb http://http1.debian.or.jp/pub/Linux/debian/debian sarge main non-free contrib
deb-src http://http1.debian.or.jp/pub/Linux/debian/debian sarge main non-free contrib
deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp sarge-jp main contrib non-free

# stable security and mirror
deb http://security.debian.org/ sarge/updates main contrib non-free
deb http://ftp.debian.or.jp/debian-security sarge/updates main contrib non-free

## testing(etch)
deb http://http1.debian.or.jp/pub/Linux/debian/debian etch main contrib non-free
deb-src http://http1.debian.or.jp/pub/Linux/debian/debian etch main contrib non-free
#deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp etch main contrib non-free

## unstable(sid)
deb http://http1.debian.or.jp/pub/Linux/debian/debian sid main contrib non-free
deb-src http://http1.debian.or.jp/pub/Linux/debian/debian sid main contrib non-free

#deb http://http1.debian.or.jp/pub/Linux/debian/debian-jp sid-jp main contrib non-free

## clamav
deb http://people.debian.org/~sgran/debian sarge main
何度かapt-get upgradeしてみて、整備されてなさそうなjp系の行をコメントアウトした。つうかjpはもう半端すぎるのでやめた方がいいのだろうか。

これは後日の話になるが、suして失敗したときに、
$ su
Password:
su: Authentication failure
ごめんなさい。
と出て吹いた。

アップグレード


いきなり、
# apt-get dist-upgrade
してみる。

エラーが出るわ出るわで、
アップグレード: 315 個、新規インストール: 147 個、削除: 11 個、保留: 17 個。
319MB 中 3821kB のアーカイブを取得する必要があります。
展開後に追加で 295MB のディスク容量が消費されます。
続行しますか? [Y/n] y
エラー http://http1.debian.or.jp ja/sarge/main gcc-3.0-base 1:3.0.4-16
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libgimp1.2 1.2.3-2.4
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libmimelib1 4:3.1.4-1
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libpanel-applet0 1.4.2-1
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libpspell4 0.12.2-6
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libsasl7 1.5.27-3.5
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libsensors1 2.6.5-4
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libstdc++3 1:3.0.4-16
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main libtiff3g 3.5.7-2
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main ttf-xtt-wadalab-gothic 0.20010818-9
  404 Not Found [IP: 203.178.137.175 80]
エラー http://http1.debian.or.jp ja/sarge/main ttf-xtt-watanabe-mincho 0.20010818-9
  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gcc-3.0/gcc-3.0-base_3.0.4-16_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gimp1.2/libgimp1.2_1.2.3-2.4_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/k/kdenetwork/libmimelib1_3.1.4-1_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gnome-core/libpanel-applet0_1.4.2-1_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/p/pspell/libpspell4_0.12.2-6_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/c/cyrus-sasl/libsasl7_1.5.27-3.5_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/l/lm-sensors/libsensors1_2.6.5-4_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/g/gcc-3.0/libstdc++3_3.0.4-16_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/tiff/libtiff3g_3.5.7-2_i386.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/ttf-xtt/ttf-xtt-wadalab-gothic_0.20010818-9_all.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
http://http1.debian.or.jp/pub/Linux/debian/debian-ddtp/pool/main/t/ttf-xtt/ttf-xtt-watanabe-mincho_0.20010818-9_all.deb の取得に失敗しました  404 Not Found [IP: 203.178.137.175 80]
E: いくつかのアーカイブが取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。
こうなった。パッケージ名にバージョンが入っていて、バージョンに合わせてパッケージ名が変わってしまった物が引っかかったことが想像できる。今回はもう適当なのでぱかぱか削除して必要になったときに入れ直すことにする。
# apt-get remove ***||<
*<em></em>をパッケージ名で連打。
gnome-consoleにひっかかったのでそれも削除。

>||
以下のパッケージの処理中にエラーが発生しました:
 /var/cache/apt/archives/flex_2.5.31-31_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)||<
とか出るから、以下のサイトを参考に、

<a href="http://www.ep.sci.hokudai.ac.jp/~morikawa/memo/vmware_upgrade_sarge.htm#label-32" target="_blank">http://www.ep.sci.hokudai.ac.jp/~morikawa/memo/vmware_upgrade_sarge.htm#label-32</a>
>||
# apt-get -f install
で依存関係を解決していただいて、
# apt-get remove flex
やれやれこれでdist-upgradeが通るようになりました。

えいっ。
# apt-get dist-upgrade

holdが入っているパッケージを入れ直す


# apt-get dist-upgrade

パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージは保留されます:
   clamav (0.87.1-0woody1 => 0.88-4)
   fetchmail (5.9.11-6.2 => 6.2.5-12sarge4)
   libclamav1 (0.87.1-0woody1 => 0.88-4)
   nessus (1.0.10-2 => 2.2.3-3)
   nessus-plugins (1.0.10-2 => 2.2.3-1)
   xfree86-common (4.3.0.dfsg.1-10 => 4.3.0.dfsg.1-14sarge1)
   xutils (4.1.0-16woody5 => 4.3.0.dfsg.1-14sarge1)
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 7 個。
おや保留が発生しています。多分いくつかはperl5.6と5.8で大混乱したときの名残で自分でholdしたもの。それはhold解除でいいんじゃないかと思う。

hold属性になっているパッケージをチェック。
# dpkg --get-selections | grep hold
xfree86-common                                  hold
xutils                                          hold
なるほど。xfree86-commonとxutilsだけね。じゃあこの2つは解除してしまいましょう。
# echo xfree86-commons install | dpkg --set-selections
# echo xutils install | dpkg --set-selections
とした。続いて他のパッケージは、
# apt-get install nessus
# apt-get install fetchmail
で解決したようだ。

clamavが残っているのだが、気力が続かないのでちょっとみなかったことにする。
で、最後に、
# apt-get update
# apt-get upgrade
で終了。とりあえず動いてるようなので今のところほったらかし。

2006/02/24(金)coLinux+samba > Windows+ファイル共有?

2006/02/24 18:00 PC(Linux)
Windowsのファイル共有を使っていたところ、ファイル数が多いディレクトリでファイル名の列挙に時間がかかることに気づいた。状況を整理すると、

・ファイルサーバ側(WinXP SP1)、クライアント側(WinXP SP1)
・クライアント側からNBTでサーバ側のディレクトリにアクセスしたときに発生
・サーバ側のファイル数は600程度で日本語を含む
・ファイルの列挙(要はdir/ls)にかかる時間は4秒程度
・ファイルの列挙に時間がかかるだけで、転送速度そのものが遅くなっているわけではない
・パケットをキャプチャしてみたが余計なパケットは飛んでいないように見える
・dirで確認すると一定の転送量ごとに何かがつっかえている感じ
・サーバー側・クライアント側入れ替えても発生
・クライアント側からLinux+sambaの自宅サーバにアクセスするとこの現象は発生しない

フォーカスが移るたびに読み直すファイラー(春M)でアクセスするから困るのであって、実はエクスプローラだとそんなに問題はない。また、1ディレクトリに100も200もファイルを置いている方がおかしいと言われればそれまで。レジストリの調整で解決できそうな予感はあるのだが、情報としては発見できなかった。

一応実験としてcoLinuxをサーバ側にインストールし、sambaで共有して速度が向上するか確認することにする。coLinuxのネットワークはホストマシンのNICとブリッジ接続にする。coLinuxからcofsでホストマシンのディレクトリをマウントし、sambaで共有させた。

結論から言うと、ファイル名の列挙に関しては速度が向上したが、根本的なアクセス速度が落ちた。netperfによる簡易計測であるが、クライアント側からスループットを比較したところホスト側(WinXP)では90~92Mbps、ゲスト側(coLinux)では47~48Mbpsとなった。なんと2倍近い差がある。アクセス速度に関しては、1000Mbpsで繋げば簡単に向上するかもしれないが、実験していない。これはそのうち追試。またこの方法の問題として、日本語ファイル名を下位に含むディレクトリではcofsで総ファイルサイズが取得できない(dfからしてinput/output Errorとなる)。結局魔法のステッキにはなってくれないようである。

win32版sambaとかあればなあ……(バカ)

暫定的な解決手段としては、ディレクトリ整理と春Mをあきらめてエクスプローラを使う。ただもう春Mからは離れられそうにないのでさっさと整理が一番正しい。

2006/02/09(木)coLinuxでsshでログインできない

2006/02/08 25:00 PC(Linux)
色々あってcoLinuxインストール中。
他の所は大して詰まることがなかったのでタイトルの件だけメモ。

sshdを立ち上げたのになんかログインできない。原因は下。

/etc/ssh/sshd.confに

ChallengeResponseAuthentication no

を明示しておかないとログインできないようだ。PAMにされる(ホント?)。
当初はコメントアウトされていた。パスワード認証でいいんだが、明示する必要あったかなあ?

もう忘れてる。酷い。

[参考サイト]
http://nekhet.ddo.jp/item/771
http://www.momonga-linux.org/archive/Momonga-devel.ja/msg03147.html

coLinuxのインストールの流れはこちら
[参考サイト]
http://scratchpad.fc2web.com/colinux/install/index.html

2005/07/31(日)名作関係のサーバ設定

2005/07/30 27:00 PC(Linux)
・dyndnsでmeisaku.mine.nuを取得。
・DiCEにmeisaku.mine.nuの更新を追加。
・/etc/apache/httpd.conf変更
# diff httpd.conf.050725 httpd.conf
1049a1050,1057
> </VirtualHost>
>
> #add 05/07/25
> <VirtualHost *>
>   ServerAdmin <a HREF="mailto:urara@dd.iij4u.or.jp">urara@dd.iij4u.or.jp</a>
>       DocumentRoot /home/www-meisaku
>       ServerName meisaku.mine.nu
>       ServerAlias meisaku.mine.nu *.meisaku.mine.nu
・/etc/proftpd.confにPassive設定追加
PassivePorts ***** *****
・########ユーザを作る。パスワード設定する。
・シェル変更
chsh /bin/false ########
・iptables変更
# iptables -A INPUT -i ppp0 -p tcp --dport *****:***** -j ACCEPT
########はユーザ名。*****は開始ポート終了ポート。iptablesは起動スクリプトには追記してないので、再起動すると吹っ飛ぶ。暫定なのでこれでいい。

2005/07/30(土)設定失敗(hosts.allow)

2005/07/30 23:00 PC(Linux)
先日の記事でhosts.allowでアクセス制限をかけた記事を書いたが、これが2重ミスだった。
ftpd jp
sshd jp
の意図は「sshdとftpは国内からのアクセスのみ通す」だが、これは間違い。これを実現するには、
ftpd .jp
sshd .jp
とするのが正しかったようだ。

何で気づかなかったかというとこれまたミスで、グローバル側からftpでのログインが通るから設定OKと判断したのだった。hostsの設定は「daemon名」に対応するのだからproftpdでやってるうちの鯖では効かないのが当たり前。結局、sshはどこからもアクセスできず、ftpは以前と変わらない状態になっていたようだ。酷い話。

最終的にはこう。
proftpd .jp
sshd .jp
OK キャンセル 確認 その他