このページの本文へ

管理者たるもの、システム管理はコマンドを駆使してきめ細かく行ないたい。

覚えておきたい必須コマンド30―その3・管理コマンド

2001年06月12日 00時00分更新

文● 中野 賢

  • この記事をはてなブックマークに追加
  • 本文印刷

Linuxでは、管理者ユーザーのことをスーパーユーザーと呼んでいる。アカウント名がrootであることからルートとも呼ぶ。

スーパーユーザーは、ファイルに設定されている読み取りや書き込みといった許可に関係なく、ファイル操作をすることができる。たとえば、一般ユーザーの所有するファイルのパーミッションが600であっても、スーパーユーザーは何の制限もなくファイルを読み、修正することができる。削除してしまうことも可能だ。そのため、スーパーユーザー権限でコマンドを実行するときは、特に注意深く行わなければならない。もし、カレントディレクトリが/であるのに気づかず、うっかりとrmコマンドをfrオプション付きで実行してしまうと、無条件にすべてのファイルが削除され、悲惨な状況に陥ってしまう。

スーパーユーザー権限で作業をするのに、再度ログインをする必要はない。コマンドラインから、

USER$ su

と実行し、rootのパスワードを入力するだけだ。これだけでスーパーユーザーになる。逆に、一般ユーザーレベルに戻るには、

root# exit

とする。なお、環境変数などもrootとしてログインした場合と同じにする場合は、“su -”を実行する。

suコマンドを使うとスーパーユーザーになるだけでなく、任意のユーザーにもなることができる。たとえば、PostgreSQLではデータベース管理者用に特別なアカウントpostgresを設けている。そのユーザーになるにも、

USER$ su postgres

として、パスワードを入れる。パスワードが正しければ、PostgreSQLのデータベース管理者となることができる。

そこで、パスワードを知らないはずのユーザーが、rootや他のユーザーになっていないかを時おり、確認しなければならない。

誰がsuコマンドを実行して、どのアカウントになろうとしたのかは、/var/log/messagesファイルに記録されている。このファイルは、通常のテキスト形式なため、lessで表示したり、grepで必要な部分だけを抽出することができる。suコマンドの部分だけなら、

root# grep '(su)' /var/log/messages

とすればよい。クオーテーション(')で囲っているのは、かっこがシェルの特殊文字であるためだ。なお、messagesファイルは他にも多くの記録が残されているため、rootユーザー以外は読めないようにしておこう。

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中