2008年3月13日木曜日

RH300 トラブルシュート

起動のトラブル
find /dir -cmin -60
60ふん以内に修正したファイルの一覧表示

Xが動かないー>xfsの確認
/home,/tmpの空き容量確認、quotaでひっかかっていないか確認
名前解決できているか

BOOTしないの数パターン
no system ->MBR障害 レスキューにて起動後
mknod /dev/sda b 8 0
grub-install /dev/sda を実施

真っ暗な画面 ->MBR障害 レスキューにて起動後
mknod /dev/sda b 8 0
grub-install /dev/sda を実施

カーネルパニック->MBR正常、grub.conf以降の問題
シングルモードで立ち上げる、
ブート起動時のオプションを変更する等
起動時に赤画面になったところでキーボードをどれかをたたき
良く読んで、起動オプションの一番おしりに、sをつけて起動すると
シングルユーザモードとなる。
レスキューモードの場合は
/mnt/sysimage を先にマウントし
その次に
/mnt/sysimage/boot をマウントする
何かインストールするさいは
--forceをつけてインストールする
また、ルートディレクトリがわからない場合は該当のルートディレクトリの
ファイルシステムにRPMファイルをコピーし、そこでRPMインストールを実施する
--forceをつけないとエラーになることが多い
(そもそもインストールされているものを再インストールなので)

RH300 ログ

ログは大量にある
サービス毎にもあるし、カーネルログもブートログもある。
よく見るのは
/var/log/messages
/var/log/dmesg
/var/log/bootlog

これを良く読むことで障害の原因がわかることが多い。

RH300 ローカルセキュリティ SELinux

ACLの実装

マウント時にオプション aclでマウント
LinuxVer.5から実装されている
getfacl でファイル、ディレクトリのアクセス権がわかる
setfacl -m u:bob:rw file にてBOBのアクセス権を設定
setfacl -m d:u:bob:rw directory にて
directoryの下に作られたファイルについてはすべてbobのrw権限が持たされるようになる
という意味の設定、これをうまく使うとファイル共有、フォルダ共有が
chmod 777 /directoryをやらなくてもよいので、セキュリティ上よろしい

SELinuxの機能
ls -Z
ps -Z
セキュリティコンテキストというのが追加された
あるプロセスからはあるファイルしかさわれないように制限を行うため。
これによりapacheが乗っ取られても/etc/xxxが書き換えられるなどが
発生しにくくなった。セキュリティコンテキスト間でアクセスをコントロールしている。
ログは/var/log/audit/audit.logにかかれる デーモンはauditd
セキュリティコンテキスト間のアクセス権が一致しないと、アクセスできないトラブルは
SELinuxになってから多いと聞く。
chconやrestorecon を使って設定を行う。
確認はls -Zにて

SELinuxでのトラブルの場合は以下を試してみる
setenforce 0
これにてSELinuxを無効  Permissiveモード
動いた場合はSELinuxの原因
/var/log/audit/audit.logをよく見るとさらに詳しい原因がわかるはず

よくやるオペレーション
gui system-config-selinux にてbooleanの変更を実施する

RH300 ユーザ管理

パスワードのエージングポリシーについて
/etc/login.defs にてデフォルトのエージング等の設定を変える
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
SU_WHEEL_ONLY yes

そのままだと有効期限なし
有効期限等は/etc/shadowを見るとわかる
tomo4:$1$e4HjAqA.$u6zy.ckMd.NBRemu5Xik..:13864:0:99999:7:::
13864は 1970/10/1からの日数、99999というのは無期限の意味
7は警告を出す日数、、だが有効期限が無期限なのでこれは起こりえない。

SGIDディレクトリ (重要、知らなかった)
共同作業用のディレクトリ
SGIDを設定すると、フォルダに作成されたファイルは
同一のグループIDとなる(誰が作成しても)
chmod 2777 /xxx
drwxrwsrwx 2 tomo tomo 4096 3月 13 23:26 .
gの箇所にsフラグがつく

クォーターシステム

カーネルで処理、マウント時にオプション usrquotaでマウントが必要
ブロック数、Iノード数で制限がかけられる
またユーザ毎、グループ毎に制限がかけられる
quotaon /home で開始 OFFで停止
setquotaでユーザ毎に設定
quotacheck で確認
repquota 使用率をレポート

RH300 ファイルシステム管理

fdisk
fdisk -l
fdisk /dev/sda
DISK全体のパーティション設定の確認、その他実施、対話型
t: 領域のIDを変更
その際にIDについてはヘルプ表示があるので、SWAPなら82等は覚えなくても良い

パーティションが無事作成できたら次はIDでふつうのlinux filesystemなら
mk2efs で実施
mk2efs /dev/sda1
その後 
mk2efs -j /dev/sda1 これでext3に変わる (現代はこれ)

SWAPファイル
パーティションを作成、IDを82に変更
mkswap /dev/sda6 にてシグネチャ追加 (MKFSみたいなもの)
/etc/fstabに追加
swapon -a で有効化、swap -s で状態を確認

RH300 カーネルサービス

カーネルモジュール
grub->initrd(初期RAM)->mount->boot->/etc/inittab->rc.d

lsmod コマンド ロードされているモジュールを表示
modprobeコマンド ロード、アンロードを動的に行えます
modinfoコマンド 作成者、ライセンス、バージョン等を表示

/procについて
現状をファイル化して見ることができる
ファイルのサイズは0バイト
良く使うのは
/proc/partitions
DISKを追加、パーティションを追加したさいに、ここをみる
partprobeを実施しないと反映しないことがあるので、重要。
/proc/sys配下の情報をリブートしても変わらないようにするには、
/etc/sysctl.conf を変更すること
sysctl -aで現在の設定一覧を表示
sysctl -pで設定を再ロード

/devについて
アクセス方法の提供となる
SCSIなら/dev/sdxxx
IDEなら/dev/hdxxx
RAIDなら/dev/mdxxx
USBもSCSIに入る、アクセス方法が同じだから。。。
仮想端末なら/dev/tty0
ほか、/dev/null, /dev/zero などよく使われる

/dev配下へのファイル追加

(復旧時などに利用)
mknod /dev/sda b 8 0
b... ブロックデバイスの意味
8... メジャー番号
0... マイナー番号
上記3情報は ls -l で確認できる
brw-rw---- 1 root disk 8, 0 8月 31 2002 sda
先頭のBがブロックデバイスの意味
次の8,0がメジャー、マイナー番号

自己紹介