# find / -perm -u+s -exec ls -la ‘{}’ ‘;’
例. vmware centOS5 デフォルト (運用時はここから不要なSUIDを削っていく必要がある)
-rwsr-xr-x 1 root root 31244 3月 14 2007 /bin/ping6
-rwsr-xr-x 1 root root 24120 5月 24 2008 /bin/su
-rwsr-xr-x 1 root root 35864 3月 14 2007 /bin/ping
-rwsr-xr-x 1 root root 38840 5月 24 2008 /bin/umount
-rwsr-xr-x 1 root root 57908 5月 24 2008 /bin/mount
-rwsr-xr-x 1 root root 13108 11月 29 2007 /usr/bin/rlogin
-rws–x–x 1 root root 19128 5月 24 2008 /usr/bin/chsh
—s–x–x 2 root root 160280 5月 24 2008 /usr/bin/sudoedit
—s–x–x 2 root root 160280 5月 24 2008 /usr/bin/sudo
-rwsr-xr-x 1 root root 43976 1月 6 2007 /usr/bin/at
-rwsr-xr-x 1 root root 22984 1月 6 2007 /usr/bin/passwd
-rwsr-xr-x 1 root root 24588 5月 24 2008 /usr/bin/newgrp
-rws–x–x 1 root root 17900 5月 24 2008 /usr/bin/chfn
-rws–x–x 1 root root 1812708 6月 21 2008 /usr/bin/Xorg
-rwsr-sr-x 1 root root 315416 11月 10 2007 /usr/bin/crontab
-rwsr-xr-x 1 root root 50296 5月 24 2008 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 18544 11月 29 2007 /usr/bin/rcp
-rwsr-xr-x 1 root root 46972 5月 24 2008 /usr/bin/chage
-rwsr-xr-x 1 root root 8908 11月 29 2007 /usr/bin/rsh
-rwsr-xr-x 1 root root 64908 5月 24 2008 /usr/libexec/libvirt_proxy
-rwsr-xr-x 1 root root 176328 5月 24 2008 /usr/libexec/openssh/ssh-keysign
-rwsr-xr-x 1 root root 147447 5月 24 2008 /usr/kerberos/bin/ksu
-r-sr-xr-x 1 root root 20444 3月 3 2008 /usr/lib/vmware-tools/sbin32/vmware-hgfsmounter
-rwsr-xr-x 1 root root 6240 1月 6 2007 /usr/sbin/ccreds_validate
-rws–x–x 1 root root 35036 5月 24 2008 /usr/sbin/userhelper
-rwsr-xr-x 1 root root 6820 6月 14 2008 /usr/sbin/usernetctl
-r-s–x— 1 root apache 24711 1月 21 2008 /usr/sbin/suexec
-rwsr-xr-x 1 root root 6728 5月 24 2008 /usr/sbin/userisdnctl
-rwsr-xr-x 1 root root 19184 5月 24 2008 /sbin/unix_chkpwd
-rwsr-xr-x 1 root root 12248 5月 24 2008 /sbin/pam_timestamp_check
-rwsr-xr-x 1 root root 70484 7月 31 14:49 /sbin/mount.nfs
-rwsr-xr-x 1 root root 70488 7月 31 14:49 /sbin/umount.nfs4
-rwsr-xr-x 1 root root 70488 7月 31 14:49 /sbin/mount.nfs4
-rwsr-xr-x 1 root root 70488 7月 31 14:49 /sbin/umount.nfs
FreeBSDにインストールしていたpostgreSQLを8.2.3にアップしてinitdbしたところ、途中で固まってしまう。debugモードで動かしてみたりしたのだが原因がわからない…
共有メモリあたりをうたがっていてカーネル再構築したが状況変わらず。
仕方ないので最新のバージョンでなくてもよいかとPostgreSQLのバージョンを下げる。
postgresql-server-8.1.8にしてもだめ。
postgresql-server-8.0.12にしてもだめ。
postgresql-server-7.3.18にしてもだめ。
postgresql-server-7.4.16にしてもだめ。
う〜ん、原因はなんだろう。やっぱり最近FreeBSDを5.1から5.5にアップしたためかなぁと思い、PostgreSQLと依存関係にあるソフトを作り直す。
openssl-0.9.8d
gmake-3.81_1
gettext-0.14.5_2
perl-5.8.8
libtool-1.5.22_3
libiconv-1.9.2_2
postgresql-server-8.2.3
これらを作成しなおした。作成しなおすときにエラーの原因となった autoconf-2.13 も作成しなおし。
これで再度 postgresql-server-8.2.3 をインストールしたら無事 initdb できた。
initdb -D パス –noclean –debug –encoding=euc-jp
結局FreeBSDのバージョンアップが影響していたということか…
なんだかんだで2日ぐらい悩んだ…
先日FreeBSDのバージョンを5.5にアップしたのだが、その影響かどうかはわからないがpostgreSQLをバージョンアップ (8.2.3)したところ調子がわるくなった。そこでイチから作り直そうと initdb してみるも、セマフォ関連のエラーになりinitdbが成功しない….
今までもセマフォ関連でエラーとなったことがあり、max_connectsionsの値を下げて対応してきていたのだが、今回はこの値を下げてもエラーになる。
結局 共有メモリのあたりをいじってみるかということで、カーネルを再構築することにした。
カーネル再構築メモ
・バックアップ
#cd /usr/src
#tar xvzf sys.tgz sys
・コピー
#cd /usr/src/sys/i386/conf
#cp GENERIC newKernel
#vi newKernel
ident GENERIC を ident newKernel に書き換え
・設定追加
vi newKernel
options SYSVSHM
options SHMMAXPGS=4096
options SHMSEG=256
options SYSVSEM
options SEMMNI=256
options SEMMNS=512
options SEMMNU=256
options SEMMAP=256
・カーネル再構築
#config newKernel
↑の最後にでたメッセージのディレクトリに移動
#cd ../compile/newKernel
#make depend; make
(10分ほどかかった)
・インストール
#make install
・再起動
#shutdown -r now
起動時のメッセージに newKernel という文字がでていればOK
FreeBSDを5.1から5.5にアップデートしたのだが、そのついでにbindを最新の9.3.4にアップした。するとスタートアップスクリプ ト /etc/rc.d/named を実行してもエラーになりbindが起動しない…. そこでいろいろ調べてみたところ、現在のスタートアップスクリプトではbindはchrootして起動するように記述されていることに気づいた。
そこで設定周りを次のように変更。
/etc/namedb/ 配下の設定ファイルを /var/named/etc/namedb に移動。
/etc/namedbを削除。
そして起動すると無事動いた。設定ファイルは /var/named/etc/namedb/named.confにあり、/etc/namedb はシンボリックリンクになっている。
/etc/namedb -> /var/named/etc/namedb
3年ほど前に構築したサーバ(FreeBSD 5.1)があるのだが、さすがに3年経過するとportsのアップデートやらなんやらで問題が生じ始めたのでバージョンアップすることにした。停止時間を 短く、かつ現在のディスクパーティションやソフトの設定ファイルをいじらずにアップするにはmake world するか sysinstall なのだが、make world は昔痛い目にあったことがあるのでsysinstall を利用することにした。FreeBSDの最新は6系なのだが、メジャーバージョンのアップはちょっとこわかったので5系の最新版である5.5へのアップに することにした。
まずは現状のディスクバックアップをとり、最悪アップデートに失敗してもバックアップハードディスクに切り替えれば動作するように保険をかけた。
続いて 5.5のインストール用CDを作成。そのCDがブートさせる。
そして Upgradeを選択。/etc/fstabの内容を記述し、アップデート実行。
10分ほどでバイナリコピーが終了したので Alt+F4をおして mergemasterを実行。
設定ファイルを適宜マージして再起動。
これでとりあえずバージョンアップした5.5系でOSが起動してくれた。
ただし動かしていたapacheやbindなどはエラーになったので、作り直し。
優先順位の高いソフト(postfix等)をまずはportsupgradeなりmake reinstall するなりして作成しなおし。そして起動させると無事動いた。
その他のソフトについては portupgrade -a してアップデート。エラーになったものは make reinstall など。なんだかんだでようやくバージョンアップして通常通り稼動した。
No comments