押売に負けて取り始めた読売新聞、なんと今日は44444号。ゾロ目。 でも本文にはそのことどこにもかいてない。堅い。
これまでのUNIX経験で一番解決に時間が掛かった問題かもしれん。 分かってしまったら呆気なかったのだが。
SunOS 5.6 の /var/yp/Makefile だとパスワードファイルと同一ディレクト リにあるshadowがあればそれも利用するということに気づかなくて、最初のうち サーバ管理者の先生がSunOS4.1.4でNISパスワードのソースとしていた /etc/passwd.yp というファイル名を踏襲するようにしていたら、対応する shadowがないのでパスワードフィールドがNISに伝わらなくてうまくログインで きなかった。と言うことにすぐ気づいたので、/var/yp/src/ にNIS用passwdなど 一式を移動した。そこまでは何のトラブルもなく動いていた。
NIS用ソースの起き場所を変更し、/var/yp/Makefileも書き換え、再起動。 が、そのあたりから認証周りの挙動が不審になった。後日、管理作業をするため にsudoコマンドを使おうとすると
sudo: cannot open /etc/sudoers: Permission denied Can't read /etc/sudoers: Permission denied
と言われるようになった。あれ。なじぇ。真っ先にsudoコマンドと、 /etc/sudoersファイルの属性を調べたが正常。setuidがうまく行かないかと思っ てmountオプションを調べたが正常。suならうまく行くからsetuidが機能してい ることは明らか。ならrootでsudoしてみるとどうかというと
# sudo w sudo: cannot open /etc/sudoers: Permission denied Can't read /etc/sudoers: Permission denied ld.so.1: internal: malloc failedqmail-inject: fatal: qq crashed (#4.3.0)
やっぱり Permission denied... えー。しかもmallocに失敗してる。 なにこれー。さらに一般ユーザへのsuもうまくいかない。全部うまくいかないの なら分かるがうまくいくユーザとそうでないユーザがいる。
# su user1 su: No shell #
むう。で、シェルのせいかと思って調べても同じシェルなのにできる人もい る。さらに混乱する現象として
user1:*:1000:10:MYOJI Namae:/home/user1:/bin/tcsh user2:*:1001:10:MYOJI Namae:/home/user2:/bin/tcsh
のようにUIDが違うだけなのに user1 にはNo shellでsuできず、user2には suできてしまうケースもあった。
わ け わ か ら ん!
libcとかがおかしいのかと思って、/usr/lib のしたのファイル全てのsumを 取り、全く同じ条件で同じOSをインストールしてある別のマシンのものと比べて も全く同じ。/etcの下のOSインストール後修正したファイルを比べても同じ。 /var/yp の下を作り直しても同じ。/etc/nsswitch.conf でNISを使わずfilesだ けでpasswdを見るように変えても同じ。どうやっても no shell!
そんなことを先月27日以降ずっと調べていて、今日も朝からずっと調べてい
た。でいい加減疲れて周囲にへるぷぷりーづを出した。そんなところにふらふら
と歩いて来たほそかわに
「sudoできねーよーなんでー」とつぶやいたら、「やー、わかりませんねーえ、
ルートディレクトリがへんとか、ははー」と言ってまた戻ってしまった。
もしや………
# ls -ld / drwx---r-x 28 user3 root 1024 Jan 7 17:23 /
がーんがーんがーんがーん。そんなああー。
(ここでuser3は管理者の先生の一般ユーザIDのもの)
てことで chown root /; chmod g+rx / で直った! ぐおおお。 それにしてもsuできるuserとそうでないユーザがいるのはどうしてなのだ? それがおかしいから絶対にNIS周りのトラブルだと思って調べていたのに。 難しい酢。
忘れてた。2000年になった瞬間の画面を撮っといたんだった。
ほい
。