sudo
コマンドは、ユーザーにスーパーユーザーまたはroot権限を付与します。きっと「大きな力には大きな責任が伴う」という話をしたでしょう。彼らがそれを聞いたかどうかを確認する方法を説明します。
sudoコマンド
sudo
コマンドは「substitute user do」の略です。権限のあるユーザーが、別のユーザーとしてコマンドを実行できるようにします。コマンドラインパラメータを受け取ることができ、その1つはコマンドを実行したいユーザーの名前です。sudo
が最も一般的に使用される方法は、コマンドラインオプションを省略してデフォルトのアクションを使用することです。これにより、コマンドがrootユーザーとして効果的に実行されます。
この方法でsudo
を使用するには、特別な権限が必要です。sudo
を使用できるのは特権ユーザーだけです。最新のLinuxディストリビューションをインストールすると、sudo
で使用できるrootパスワードを設定するように求められます。インストール中に作成した通常ユーザーにその権限が付与されます。これは、rootユーザーの機能へのアクセスを処理する推奨される方法です。以前は、rootユーザーを作成し、rootユーザーとしてログインしてシステムを管理する方法が一般的でした。
これは危険な状況でした。root権限が不要になったときに、通常のユーザーとしてログアウトしてログインし直すのを忘れるか、面倒がって怠けるのは簡単でした。rootとしてターミナルウィンドウで行った間違いは、たとえどれほど重大なものであっても実行されます。通常のユーザーが実行しようとした場合にシェルによってブロックされるようなことも、rootが要求すれば疑問なく実行されます。通常のアカウントの代わりにrootアカウントを使用することも、セキュリティリスクになります。
sudo
を使用すると、集中力が向上します。同じ危険な状況に陥りますが、意識的にそうすることを選択し、注意を払うことを期待しています。必要なときにのみスーパーユーザーのステータスを呼び出します。
他のユーザーにrootアクセス権を付与する場合は、彼らがあなたと同じように注意を払っていることを知りたいと思うでしょう。彼らが無謀に、または推測的にコマンドを実行するのを望まないでしょう。Linuxインストールの健全性と健全性は、特権ユーザーが敬意と責任を持って行動することに依存します。
彼らのrootの使用状況を監視する方法はいくつかあります。
auth.logファイル
一部のディストリビューションでは、認証ログが「auth.log」というファイルで保持されます。systemd
の出現と急速な普及により、「auth.log」ファイルの必要性がなくなりました。systemd-journal
デーモンはシステムログを当時の新しいバイナリ形式に統合し、journalctl
はログを調べたり質問したりする方法を提供します。
Linuxコンピューターに「auth.log」ファイルがある場合、おそらく「/var/log/」ディレクトリにあるでしょう。ただし、一部のディストリビューションでは、ファイル名とパスが「/var/log/audit/audit.log」です。
このファイルをless
で次のように開くことができます。ディストリビューションに合わせてパスとファイル名を調整し、Linuxが認証ファイルを作成しない場合に備えてください。
このコマンドはUbuntu 22.04で動作しました。
less /var/log/auth.log
ログファイルが開き、ファイル全体をスクロールしたり、lessに組み込まれた検索機能を使用して「sudo」を検索したりできます。
less
の検索機能を使用しても、興味のあるsudo
エントリを見つけるのに時間がかかる場合があります。
ユーザーmary
がsudo
を何に使用したかを確認するとします。ログファイルをgrep
で「sudo」を含む行で検索し、出力をgrep
にパイプしてから「mary」を含む行を検索できます。
grepの前とログファイル名の前にsudo
があることに注意してください。
sudo grep sudo /var/log/auth.log | grep "mary"
これにより、「sudo」と「mary」を含む行が表示されます。
ユーザーmary
が15:25にsudo
権限を与えられ、15:27にエディタでfstab
ファイルを開いていることがわかります。これは間違いなくさらに深く調べる必要があるタイプの活動であり、ユーザーとのチャットから始めます。
journalctlを使用する
systmd
ベースのLinuxディストリビューションで推奨される方法は、journalctl
コマンドを使用してシステムログを確認することです。
プログラムの名前をjournalctl
に渡すと、そのプログラムへの参照を含むエントリについてログファイルが検索されます。sudo
は「/usr/bin/sudo」にあるバイナリであるため、それをjournactl
に渡すことができます。-e
(ページャーの終わり)オプションは、journalctl
にデフォルトのファイルページャーを開くように指示します。通常、これはless
になります。表示は自動的に一番下までスクロールされ、最新のエントリが表示されます。
sudo journalctl -e /usr/bin/sudo
sudo
を特徴とするログエントリがlessにリストされます。
「右矢印」キーを使用して右にスクロールし、各sudo
の呼び出しで使用されたコマンドを確認します。(または、ターミナルウィンドウを伸ばして幅を広げてください。)
出力がless
で表示されるため、コマンド名、ユーザー名、タイムスタンプなどのテキストを検索できます。
GNOMEログユーティリティを使用する
グラフィカルデスクトップ環境には、通常、ログを確認する手段が含まれています。GNOMEログユーティリティを見てみましょう。ログユーティリティにアクセスするには、「Spacebar」の左にある「Super」キーを押します。
検索フィールドに「ログ」と入力します。「ログ」アイコンが表示されます。
アイコンをクリックして「ログ」アプリケーションを起動します。
サイドバーのカテゴリをクリックすると、ログメッセージがメッセージタイプ別にフィルタリングされます。より詳細な選択を行うには、サイドバーの「すべて」カテゴリをクリックし、ツールバーの虫眼鏡アイコンをクリックします。検索テキストを入力します。「sudo」を検索します。
イベントのリストは、sudo
コマンドに関連するイベントのみを表示するようにフィルタリングされます。各行の最後に小さな灰色のブロックがあり、そのイベントセッションのエントリ数が含まれています。行をクリックして展開します。
最上部の行をクリックして、そのセッションの24エントリの詳細を確認します。
少しスクロールすると、journalctl
コマンドを使用したときに表示されたのと同じイベントが表示されます。ユーザーmary
のfstab
ファイルに対する説明のない編集セッションはすぐにわかります。私たちは「mary」を検索することもできましたが、それにはsudo
の使用以外のエントリも含まれます。
rootアクセスを必要とする人は誰もいない
正当で常識的な要件がある場合、他のユーザーにsudo
権限を与えることが理にかなう場合があります。同様に、特に彼らに権限を与えた直後に、これらの権限の使用(または乱用)を確認することが理にかなっています。
コメントする