Linuxでsudoersファイルにユーザーを追加する方法

  • sudoersファイルにユーザーを追加すると、Linuxで一時的に管理者権限を取得し、必要なアクションを実行できます。
  • 壊滅的な間違いが発生する可能性と、他のユーザーを操作したり削除したりできるため、rootユーザーとしてログインすることはお勧めしません。
  • 「visudo」コマンドを使用してsudoersファイルを開いて編集し、ユーザーまたはグループにsudoを使用してコマンドを実行するための特定の権限を付与します。

Linuxでsudoコマンドを実行すると、「ユーザーがsudoersファイルに存在しません」というメッセージが表示された場合は、「sudoers」リストに追加する必要があります。Ubuntuやその他のLinuxディストリビューションでsudoersにユーザーを追加する方法と、sudoersファイルを編集する方法について説明します。

sudoersファイルに追加する必要があるのはなぜですか?

Linuxのインストールでは、rootユーザーは最も権限の高いユーザーです。管理タスクを実行したり、所有者にかかわらずすべてのファイルにアクセスしたり、他のユーザーを作成、操作、削除したりできます。

このレベルの権限は危険です。rootが間違いを犯すと、結果は壊滅的になる可能性があります。ファイルシステムのマウントとアンマウント、およびそれらを完全に上書きする権限があります。はるかに安全な作業方法は、rootとしてログインしないことです。

指名されたユーザーはsudoを使用して一時的に管理者権限を取得し、必要なアクションを実行してから、通常の権限のない状態に戻ることができます。これは、必要なときに意識的に高い権限を起動し、それらを必要とすることを行うことに集中しているため、より安全です。

sudoコマンドは、「シャザム」と叫ぶことと同等のLinuxです。恐ろしいことが終わったら、超能力のある分身は捨てて、通常の平凡な自分に戻ります。

rootとしてログインすることは、ほとんどの最新のディストリビューションではデフォルトでオフになっていますが、復活させることができます。日常業務にrootアカウントを使用することはお勧めしません。通常は1人のユーザーに影響を与えるか、権限が不十分なために完全にブロックされる間違いは、rootが発行すると妨げられることなく実行される可能性があります。

最新のLinuxディストリビューションでは、インストール中またはインストール後の構成手順で作成されたユーザーアカウントにsudo権限が付与されます。他の誰かがsudoを使用しようとすると、次のような警告メッセージが表示されます。

mary is not in the sudoers file. This incident will be reported.

これは十分に明白です。ユーザーmaryは「sudoersファイルに存在しない」ため、sudoを使用できません。それでは、彼女を追加してsudoユーザーにする方法を見てみましょう。

sudoersファイルを開く方法

sudoユーザーを追加する前に、sudoersファイルで作業する必要があります。これには、sudoを使用できるユーザーのユーザーグループがリストされています。ファイルを変更する必要がある場合は、編集する必要があります。

sudoersファイルは、visudoコマンドを使用して開く必要があります。これにより、sudoersファイルがロックされ、2人が同時に変更を試みるのを防ぎます。また、編集内容を保存する前にいくつかの健全性チェックを実行し、正しく解析され、構文が正しいことを確認します。

visudoはエディターではないことに注意してください。使用可能なエディターの1つを起動します。Ubuntu 22.04、Fedora 37、Manjaro 21では、visudoはnanoを起動しました。お使いのコンピューターではそうではないかもしれません。

誰かに完全なsudo権限へのアクセスを許可したい場合は、sudoersファイルからいくつかの情報を参照するだけで済みます。より詳細に把握して、ユーザーにrootの機能の一部を提供したい場合は、ファイルを編集して変更を保存する必要があります。

いずれにせよ、visudoを使用する必要があります。

Ubuntuおよびその他のLinuxディストリビューションにsudoユーザーを追加する

仕事を進めるためにroot権限にアクセスする必要があるユーザーが2人いるため、それらをsudoersに追加します。彼らはトムとメアリーです。メアリーはrootが行うことができるすべてにアクセスする必要があります。トムはアプリケーションをインストールするだけで済みます。

最初に、メアリーをsudoersグループに追加しましょう。これは、Ubuntuやほとんどの他のLinuxディストリビューションで、visudoを起動することで同じように行うことができます。

sudo visudo

エディターで「ユーザー権限仕様」セクションが表示されるまで下にスクロールします。「このグループのメンバーが任意のコマンドを実行することを許可する」というようなコメントを探します。

sudoグループのメンバーはすべてのコマンドを実行できることがわかります。メアリーの場合、知る必要があるのはそのグループの名前だけです。必ずしもsudoではありません。wheelやその他のものである可能性があります。グループの名前がわかったら、エディターを閉じてメアリーをそのグループに追加できます。

usermodコマンドの-a(追加)および-G(グループ名)オプションを使用して、ユーザーをsudoersに追加します。-Gオプションにより、ユーザーを追加するグループを指定でき、-aオプションにより、usermodに、新しいグループを、このユーザーがすでに属している既存のグループのリストに追加するように指示できます。

-aオプションを使用しない場合、ユーザーが属する唯一のグループは、新しく追加されたグループになります。よく確認し、-aオプションが含まれていることを確認してください。

sudo usermod -aG sudo mary

Maryが次回ログインすると、sudoにアクセスできるようになります。彼女をログインさせて、ファイルシステムテーブルファイル「/etc/fstab」を編集してみます。これは、root以外の誰もがアクセスできないファイルです。

sudo nano /etc/fstab

「/etc/fstab」ファイルが読み込まれた状態でnanoエディターが開きます。

sudo権限がなければ、このファイルは読み取り専用ファイルとしてのみ開くことができます。Maryはその制限がなくなりました。彼女は変更を加えて保存することができます。

エディターを閉じて、変更を加えていないことを確認してください。

sudoersファイルを編集してsudo権限を制限する

もう1人のユーザーであるTomには、ソフトウェアをインストールする権限が付与されますが、Maryに付与されたすべての権限は付与されません。すべての権限を与えることなく、Tomをsudoユーザーにすることができます。

sudoersファイルを編集する必要があります。

sudo visudo

エディターで、「ユーザー権限仕様」セクションが表示されるまで下にスクロールします。「このグループのメンバーが任意のコマンドを実行することを許可する」というようなコメントを探します。これは、Maryを追加する必要のあるグループの名前を見つけたファイル内の同じポイントです。

そのセクションの下にこれらの行を追加します。

# user tom can install softwaretom ALL=(root) /usr/bin/apt

最初の行は単純なコメントです。ユーザー名「tom」と「All」の間にタブがあることに注意してください。

これは、行の項目の意味です。

  • tom: ユーザーのデフォルトグループの名前。通常、これはユーザーアカウントの名前と同じです。
  • ALL=: このルールは、このネットワーク上のすべてのホストに適用されます。
  • (root): 「tom」グループのメンバー(つまり、ユーザーのTom)は、リストされたコマンドに対してroot権限を引き継ぐことができます。
  • /usr/bin/apt: これは、ユーザーTomがrootとして実行できる唯一のコマンドです。

このコンピューターはUbuntu Linuxを使用しているため、aptパッケージマネージャーを指定しました。別のディストリビューションを使用している場合は、これを適切なコマンドに置き換える必要があります。

Tomをログインさせて、期待通りの動作になるかどうかを確認しましょう。「/etc/fstab」ファイルを編集してみます。

sudo nano /etc/fstab

そのコマンドは拒否され、「ユーザーtomはrootとして「/usr/bin/nano /etc/fstab」を実行することが許可されていません」というメッセージが表示されます。

それが私たちが望んでいたことです。ユーザーTomはaptパッケージマネージャーのみを使用できることになっています。彼らがそれを行うことができることを確認しましょう。

sudo apt install neofetch

Tomに対してコマンドが正常に実行されます。

このコマンドを持つ者は

すべてのユーザーがsudoを使用できる場合、混乱が生じる可能性があります。しかし、他のユーザーをsudoersリストに昇格させて、管理上の負担を共有させる価値はあります。彼らが価値があることを確認し、彼らに目を光らせておくだけです。

コンピューターにユーザーが1人しかいない場合でも、別のユーザーアカウントを作成してsudoユーザーとして追加することを検討する価値があります。そうすれば、メインアカウントからロックアウトされた場合、状況を解決するためにログインできる別のアカウントが得られます。