Linux での sudo コマンドの使用方法を確認する方法

公開: 2022-08-24
bash プロンプトを表示している Linux ラップトップ
Fatmawati achmad zaenuri/Shutterstock.com

sudoコマンドは、ユーザーにスーパーユーザーまたは root 権限を付与します。 あなたが彼らに「大いなる力には大いなる責任が伴う」というスピーチをしたことは間違いありません。 彼らが聞いたかどうかを確認する方法は次のとおりです。

sudo コマンド

sudoコマンドは、「substitute user do」の略です。 これにより、許可された人が別のユーザーであるかのようにコマンドを実行できます。 コマンド ライン パラメーターを使用できます。そのうちの 1 つは、コマンドを実行するユーザーの名前です。 sudoの最も一般的な使用方法は、コマンド ライン オプションを省略してデフォルト アクションを使用することです。 これにより、root ユーザーとしてコマンドが効果的に実行されます。

この方法でsudoを使用するには、特別な許可が必要です。 sudoを使用できるのは特権ユーザーのみです。 最新の Linux ディストリビューションをインストールすると、 sudoで使用できるルート パスワードを設定するよう求められます。 これを行う権限は、インストール中に作成した通常のユーザーに付与されます。 これは、root ユーザーの機能へのアクセスを処理するための推奨される方法です。 古い方法では、システムを管理するために root ユーザーを作成し、そのユーザーとしてログインしていました。

これは危険なシナリオでした。 root 権限が不要になったときに、ログアウトして通常のユーザーとしてログインし直すのを忘れがちでした。 端末ウィンドウで root として行ったミスは、どんなに劇的であっても実行されます。 通常のユーザーが実行しようとするとシェルによってブロックされるものは、ルートが要求したときに問題なく実行されます。 通常のアカウントの代わりにルート アカウントを使用することも、セキュリティ リスクになります。

Linux で sudo アクセスを制御する方法
関連Linux で sudo アクセスを制御する方法

sudoを使用すると、心が集中します。 あなたは同じ危険な水域に入っていますが、意識的にそうすることを選択しており、できれば細心の注意を払っています. スーパーユーザーのステータスを呼び出すのは、それらを必要とする何かを行う必要がある場合のみです。

ルート アクセスを他のユーザーに開放する場合、他のユーザーもあなたと同じように細心の注意を払っていることを知りたいでしょう。 彼らが無謀にまたは投機的にコマンドを実行することは望ましくありません。 Linux インストールの健全性は、特権ユーザーが敬意を持って責任を持って行動するかどうかにかかっています。

root の使用状況を監視する方法はいくつかあります。

auth.log ファイル

一部のディストリビューションでは、「auth.log」というファイルに認証ログが保持されます。 systemdの出現と急速な普及により、「auth.log」ファイルの必要性はなくなりました。 systemd-journalデーモンはシステム ログを当時の新しいバイナリ形式に統合し、 journalctlはログを調べたり調べたりする方法を提供します。

Linuxコンピューターに「auth.log」ファイルがある場合、おそらく「/var/log/」ディレクトリにありますが、一部のディストリビューションではファイル名とパスは「/var/log/audit/audit」です。ログ。"

lessのようにファイルを開くことができます。 ディストリビューションに合わせてパスとファイル名を調整し、Linux が認証ファイルを作成しない場合に備えてください。

このコマンドは Ubuntu 22.04 で機能しました。

 以下 /var/log/auth.log 

/var/log/auth.log ファイルを以下で見る

ログファイルが開かれ、ファイルをスクロールするか、less に組み込まれている検索機能を使用して「sudo」を検索できます。

less で表示される /var/log/auth.log ファイルの内容

lessの検索機能を使用しても、関心のあるsudoエントリを見つけるのに時間がかかる場合があります。

maryというユーザーがsudoを何に使用したかを知りたいとしましょう。 「sudo」を含む行をgrepでログファイルから検索し、出力を再度grepにパイプして、「mary」を含む行を探すことができます。

grep前とログファイル名の前にあるsudoに注意してください。

 sudo grep sudo /var/log/auth.log | grep "メアリー" 

grep を使用して、mary と sudo に言及しているエントリを除外する

これにより、「sudo」と「mary」を含む行が得られます。

15:25 にユーザーmarysudo権限が付与され、15:27 にfstabファイルをエディターで開いていることがわかります。 これは、ユーザーとのチャットから始めて、より深く掘り下げる必要があるアクティビティのタイプです。

journalctl の使用

systmdベースの Linux ディストリビューションで推奨される方法は、 journalctlコマンドを使用してシステム ログを確認することです。

プログラムの名前をjournalctlに渡すと、そのプログラムへの参照を含むエントリのログ ファイルが検索されます。 sudoは「/usr/bin/sudo」にあるバイナリであるため、それをjournactlに渡すことができます。 -e (pager end) オプションは、 journalctlにデフォルトのファイル ページャーを開くように指示します。 通常、これはlessます。 表示は自動的に一番下までスクロールされ、最新のエントリが表示されます。

 sudo journalctl -e /usr/bin/sudo 

journalctl を使用して、sudo に言及しているエントリを検索する

sudoを特徴とするログ エントリは、以下にリストされています。

より少ないファイルビューアでsudoを含むエントリを表示するjournalctl

「RightArrow」キーを使用して右にスクロールし、 sudoの各呼び出しで使用されたコマンドを確認します。 (または、端末ウィンドウを広げて広げます。)

横にスクロールして、sudo で使用されたコマンドを確認する

また、出力はlessで表示されるため、コマンド名、ユーザー名、タイムスタンプなどのテキストを検索できます。

関連: journalctl を使用して Linux システム ログを読み取る方法

GNOME ログユーティリティの使用

通常、グラフィカル デスクトップ環境には、ログを確認する手段が含まれています。 GNOME ログ ユーティリティを見ていきます。 ログユーティリティにアクセスするには、「スペースバー」の左側にある「スーパー」キーを押します。

検索フィールドに「ログ」と入力します。 「ログ」アイコンが表示されます。

アイコンをクリックして、「ログ」アプリケーションを起動します。

GNOME ログ アプリケーション

サイドバーのカテゴリをクリックすると、ログ メッセージがメッセージ タイプ別にフィルタリングされます。 より細かく選択するには、サイドバーの [すべて] カテゴリをクリックしてから、ツールバーの虫めがねアイコンをクリックします。 検索テキストを入力します。 「sudo」を検索します。

GNOME ログ アプリケーションで sudo を含むエントリを検索する

イベントのリストはフィルタリングされ、 sudoコマンドに関連するイベントのみが表示されます。 各行の末尾にある小さな灰色のブロックには、そのイベント セッションのエントリ数が含まれています。 行をクリックして展開します。

sudo セッションのエントリ数を含む灰色のブロック

一番上の行をクリックして、そのセッションの 24 エントリの詳細を確認しました。

展開されたビューに表示されるイベントの詳細

少しスクロールすると、 journalctlコマンドを使用したときと同じイベントが表示されます。 fstabファイルに対するユーザーmaryの原因不明の編集セッションはすぐに見つかります。 「mary」を検索することもできましたが、それにはsudoの使用以外のエントリが含まれます。

誰もがルートアクセスを必要とするわけではありません

本物の賢明な要件がある場合、他のユーザーにsudo特権を与えることは理にかなっています。 同様に、特に与えられた直後に、これらの力の使用または乱用をチェックすることは意味があります.