sudoコマンドは、パッケージのインストール、削除、アップデート、設定ファイルの編集など、Linuxシステムの管理用コマンドを実行することができるコマンドです。 任意のrootコマンドの前にsudo権限を使うことで、rootユーザーと同じことが可能になります。 また、任意のユーザーにroot権限を割り当てることができる安全な方法でもあります。
注意:ユーザーに sudo 権限を割り当てることは、ユーザーに root 権限を与えることと同じです。
次の 2 つの方法で、任意のユーザーに sudo 権限を割り当てることができます。
- Add user to sudoers file
- Add user to sudo group
この記事では、sudo 権限を割り当てる両方の方法について説明します。
方法 1: ユーザーを sudoers ファイルに追加する
この sudo 権限の割り当て方法は、タスクを実行するために絶対に必要なコマンドだけに制限された権限をユーザーに割り当てることができるため、好ましいものです。 これには、/etc/sudoers
/etc/sudoers
ファイルを編集して、sudo権限を割り当てたいユーザーを追加するだけでよいのです。 ただし、/etc/sudoers
ファイルの編集には、必ずvisudoコマンドを使用するようにしてください。 visudo コマンドは、/etc/sudoers
ファイルの一時的なコピーを作成し、そこに sudo 関連のタスクを追加します。 その後、ファイルのチェックと構文の検証が行われます。 こうすることで、ルートアカウントから締め出されてしまうような設定ミスを防ぐことができます。
/etc/sudoers
ファイルを次のように編集します。
sudoers ファイルにユーザーを追加し、すべての権限を割り当てるには、ファイルの下部に次のエントリを追加し、username を実際のユーザー名に置き換えます。
例:
「tin」という名前のユーザーにすべての root 権限を割り当てるには、sudoers ファイルに次のエントリを追加します。
特定のコマンドにのみ権限を割り当てるには、/etc/sudoers
ファイルに以下のエントリを追加します。
- コマンドのエイリアス
- ユーザーのエントリー
例えば、あるユーザーにrebootコマンドのみのアクセス権を割り当てるには、/etc/sudoers
ファイルのCmnd Alias specificationセクションに以下のエントリーを追加します。
また、ユーザーのためのエントリを下部に追加する必要があります。 file:tin ALL=(ALL) NOPASSWD: REBOOT
完了したら、ファイルを保存して終了します。 ファイルを保存して終了します。
テスト sudo アクセス
sudo 権限を割り当てたユーザーアカウントに切り替えて、ユーザー名を実際のユーザー名に置き換えて次のコマンドを入力します:
パスワードの入力を求められたら、ユーザーアカウントのパスワードを入力します。
方法2: usermodコマンド
sudoersにユーザーを追加するもう一つの方法は、「usermod」コマンドを使用することです。 ユーザーにすべての管理者権限を与えたい場合に、この方法を使用します。
この方法では、usermodコマンドを使用して、ユーザーをsudoグループに追加します。 sudoグループのメンバーは、root権限で任意のコマンドを実行することができます。
以下のコマンドを使用して、ユーザー名を実際のユーザー名に置き換えて、ユーザーをsudoグループに追加します。
例を示します。
ユーザーがsudoグループに追加されたかどうかを確認するために、username
を実際のユーザー名に置き換えて、以下のコマンドを入力します。
Test sudo Access
sudoの権限を割り当てたユーザーアカウントに切り替えて、以下のコマンドを入力します。 username
を実際のユーザー名に置き換えます。
パスワードの入力を求められたら、ユーザーアカウントのパスワードを入力します。
システムが sudo のパスワードを要求します。 ユーザーアカウントのパスワードを入力すると、sudoの権限が与えられます。
この記事では、2つの簡単な方法を使って、Debian 10 Busterシステムのsudoersにユーザーを追加する方法を紹介しました。 ユーザーを sudoers に追加すると、root 権限で管理タスクを実行できるようになります。 しかし、正しいユーザに sudo 権限を割り当てていることを確認してください。そうでない場合は、セキュリティリスクを引き起こす可能性があります。