Linux でユーザーが sudo アクセス権を持っているかどうかを確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux でユーザーが sudo アクセス権を持っているかどうかを確認する方法を学びます。以下の 3 つの一般的な方法を探索します。sudo -l を使用して直接 sudo 権限をテストする方法、/etc/sudoers 設定ファイルを調べる方法、およびユーザーが sudo グループに所属しているかどうかを確認する方法です。

これらの手順を完了することで、Linux 環境における管理タスクに関連するユーザー権限を理解し、検証する実践的なスキルを身につけることができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") subgraph Lab Skills linux/cat -.-> lab-558774{{"Linux でユーザーが sudo アクセス権を持っているかどうかを確認する方法"}} linux/sudo -.-> lab-558774{{"Linux でユーザーが sudo アクセス権を持っているかどうかを確認する方法"}} linux/groups -.-> lab-558774{{"Linux でユーザーが sudo アクセス権を持っているかどうかを確認する方法"}} end

sudo -l で sudo 権限をテストする

このステップでは、sudo -l コマンドを使用して sudo 権限を確認する方法を学びます。sudo (SuperUser DO) は、許可されたユーザーがセキュリティポリシーで指定された通りに、スーパーユーザーまたは他のユーザーとしてコマンドを実行できるようにします。

sudo -l コマンドは、ユーザーが現在のホストで実行することが許可されているコマンド、または指定されたホストで許可されているコマンドを一覧表示します。

現在のユーザー (labex) の sudo 権限を確認しましょう。ターミナルが開いていない場合は開きます。

以下のコマンドを入力し、Enter キーを押します。

sudo -l

次のような出力が表示されるはずです。

Matching Defaults entries for labex on ...:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User labex may run the following commands on ...:
    (ALL : ALL) NOPASSWD: ALL

この出力は、ユーザー labex がパスワードを必要とせずに (NOPASSWD: ALL)、すべてのユーザー (ALL : ALL) としてすべてのコマンド (ALL) を実行できることを示しています。これにより、labex ユーザーがパスワードを必要とせずに完全な sudo 権限を持っていることが確認されます。

sudo を理解することは、Linux での権限管理と管理タスクの実行において重要です。

続ける をクリックして次のステップに進みます。

cat /etc/sudoers で sudoers ファイルを確認する

このステップでは、sudo の主要な設定ファイルである /etc/sudoers ファイルを調べます。このファイルは、どのユーザーまたはグループがどのユーザーとしてどのコマンドを実行できるかを決定します。

重要: /etc/sudoers ファイルを直接編集することは危険であり、誤って編集するとシステムからロックアウトされる可能性があります。一般的には、構文チェック機能を備えた visudo コマンドを使用してこのファイルを編集することが推奨されます。ただし、このステップでは、cat コマンドを使用してファイルの内容を単に表示し、その構造を理解します。

/etc/sudoers はシステムファイルであるため、読み取るには sudo 権限が必要です。

ターミナルに以下のコマンドを入力し、Enter キーを押します。

sudo cat /etc/sudoers

/etc/sudoers ファイルの内容が表示されます。ユーザーまたはグループの権限を定義する行を探します。次のような行が表示されることがあります(コメントは # で始まります)。

#
## This file MUST be edited with the 'visudo' command as root.
#
## Please consider adding local content in /etc/sudoers.d/ instead of
## directly modifying this file.
#
## See the man page for details on how to write a sudoers file.
#

Defaults	env_reset
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

## Host alias specification

## User alias specification

## Cmnd alias specification

## User privilege specification
root	ALL=(ALL:ALL) ALL

## Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

## See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

%sudo ALL=(ALL:ALL) ALL という行は特に重要です。これは、sudo グループ (%sudo) のメンバーであるすべてのユーザーが、任意のホスト (ALL) で任意のユーザー (ALL) および任意のグループ (ALL) としてコマンド (ALL) を実行できることを意味します。これは、Ubuntu のような Debian ベースのシステムでユーザーに管理権限を付与する一般的な方法です。

このファイルを表示することで、システム上の sudo 権限の設定方法を理解することができます。

続ける をクリックして次のステップに進みます。

groups コマンドで sudo グループを確認する

前のステップで、/etc/sudoers ファイルにおいて sudo グループのメンバーが完全な sudo 権限を持っていることを確認しました。このステップでは、groups コマンドを使用して、labex ユーザーが実際に sudo グループのメンバーであることを確認します。

groups コマンドは、指定された各ユーザー名の主要グループと補助グループの名前を表示します。ユーザー名が指定されない場合は、現在のプロセスのグループを表示します。

ターミナルに以下のコマンドを入力し、Enter キーを押します。

groups

次のような出力が表示され、labex ユーザーが所属するグループが一覧表示されるはずです。

labex sudo ssl-cert public

この出力は、labexlabexsudossl-cert、および public グループのメンバーであることを示しています。一覧に sudo が含まれていることから、labex ユーザーが /etc/sudoers ファイルに従って sudo 権限が付与されたグループの一部であることが確認されます。

あるいは、groups コマンドでユーザー名を指定することもできます。

groups labex

出力は同じになります。

labex : labex sudo ssl-cert public

このステップでは、システムで設定されたグループメンバーシップと sudo 権限の関係を強調しています。

続ける をクリックしてこの実験を完了します。

まとめ

この実験では、Linux でユーザーが sudo アクセス権を持っているかどうかを確認する方法を学びました。まず、sudo -l コマンドを使用して、現在のユーザーが sudo 権限で実行できるコマンドを一覧表示し、labex ユーザーがパスワードなしで完全な sudo アクセス権を持っていることを確認しました。

次に、cat コマンドを使用して /etc/sudoers ファイルを調べ、sudo 権限の設定におけるその役割を理解しました。ただし、このファイルを編集する場合は visudo が推奨されるツールであることが強調されました。最後に、一般的には groups コマンドを使用して、ユーザーが sudo グループのメンバーであるかどうかを確認します。グループメンバーシップは sudo アクセス権を付与する一般的な方法です。