- 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
ユーザーとして追加することを検討する価値があります。そうすれば、メインアカウントからロックアウトされた場合、状況を解決するためにログインできる別のアカウントが得られます。
コメントする