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

公開: 2022-11-02
bash プロンプトを表示している Linux ラップトップ
Fatmawati achmad zaenuri/Shutterstock.com
ユーザーが「sudoers ファイルにない」と言われている場合は、usermod コマンドを使用してユーザーに完全な sudo 特権を与えることができます。 ユーザーが sudo でできることを制御するには、sudoers ファイルを visudo で編集します。

Linux のsudoコマンドを使用できるのは、「sudoers」リストと呼ばれることもある小規模な厳選されたクラブのメンバーです。 各メンバーはrootと同じ権限を持ちます。 では、どうやってそのクラブに参加するのですか? sudoers に人を追加する方法と、sudoers ファイルを編集して権限を制限する方法について説明します。

目次

sudo: あなたの超強力な分身
sudoers ファイルと visudo
Ubuntu およびその他の Linux ディストリビューションに新しい sudo ユーザーを追加する
sudoers ファイルを編集して sudo 権限を制限する
このコマンドを保持する人は誰でも

sudo: あなたの超強力な分身

Linux インストールでは、root ユーザーが最も高い特権を持つユーザーです。 管理タスクを実行し、実際にファイルを所有しているかどうかに関係なくファイルにアクセスし、他のユーザーを作成、操作、さらには削除することもできます。

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

UbuntuでSudoを微調整および構成する8つの方法
関連UbuntuでSudoを微調整および構成する8つの方法

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

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

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

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

 mary は sudoers ファイルにありません。 この事件は報道される。

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

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

sudoers ファイルと visudo

誰かがsudoコマンドを使用する前に、 sudoersファイルを操作する必要があります。 これは、 sudoを使用できるユーザーのユーザー グループを一覧表示します。 ファイルを修正する必要がある場合は、編集する必要があります。

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

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

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

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

関連: Vi または Vim エディターを終了する方法

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

職務を遂行するために root 権限にアクセスする必要がある 2 人のユーザーがいます。 彼らはトムとメアリーです。 メアリーは、 rootが実行できるすべての操作にアクセスできる必要があります。 トムは、アプリケーションをインストールするだけで済みます。

最初に Mary を sudoers のグループに追加しましょう。 visudoを開始する必要があります。

 須藤visudo 

Ubuntu Linux での visudo の起動

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

nanoエディターで開いているsudoersファイル

sudoグループのメンバーは任意のコマンドを実行できると言われています。 Mary の場合、私たちが知る必要があるのは、そのグループの名前だけです。 必ずしもsudoではありません。 それはwheelか何かかもしれません。 グループの名前がわかったので、エディターを閉じて、Mary をそのグループに追加します。

Linux で chfn と usermod を使用してユーザー データを変更する方法
関連Linux で chfn と usermod を使用してユーザー データを変更する方法

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

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

 sudo usermod -aG sudo メアリー

usermod を使用してユーザー mary を sudo グループに追加する

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

 須藤ナノ /etc/fstab 

usermod を使用してユーザー mary を sudo グループに追加する

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

sudo を使用して /etc/fstab ファイルを編集するユーザー mary

sudo権限がないと、これを読み取り専用ファイルとしてしか開くことができません。 Mary には、これらの制限がなくなりました。 行った変更はすべて保存できます。

エディタを閉じ、行った変更を保存しないでください。

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

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

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

 須藤visudo 

Ubuntu Linux での visudo の起動

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

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

 # ユーザー tom はソフトウェアをインストールできます
tom ALL=(ルート) /usr/bin/apt 

sudoers ファイルへの新しいエントリの追加

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

これが行の項目の意味です。

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

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

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

 須藤ナノ /etc/fstab 

sudo 権限なしで /etc/fstab ファイルを編集しようとしています

そのコマンドは拒否され、「ユーザー tom は root として '/usr/bin/nano /etc/fstab' を実行することは許可されていません…」と言われます。

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

 sudo apt install neofetch 

sudo で apt コマンドを使用するユーザー Tom

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

このコマンドを保持する人は誰でも

すべてのユーザーがsudoを使用できる場合、手元に混乱が生じます。 ただし、他のユーザーを昇進させて、管理上の負担を分担できるようにすることは価値があります。 それらが価値があることを確認し、それらを監視してください.

コンピューターの唯一のユーザーであっても、別のユーザー アカウントを作成してsudoへのフル アクセスを許可することを検討する価値があります。 こうすることで、メイン アカウントにアクセスできなくなった場合に、別のアカウントにログインして状況を改善することができます。

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