sudoコマンドを使用すると、root以外のユーザーは、通常はスーパーユーザー権限を必要とする他のLinuxコマンドを実行できます。一方、sudoersファイルは、sudoコマンドの処理方法をシステムに指示します。このチュートリアルでは、sudoコマンドの基本とsudoersファイルの編集方法をすべて紹介します。
sudoがどのように機能するかを示すには、最初にSSH経由でVPSにアクセスします。問題が発生した場合は、PuTTYチュートリアルを確認してください。
デフォルトでは、rootユーザーはsudoプレフィックスを使用する必要はありません。彼らはすでにすべての可能な特権を持っています。一方、root以外のユーザーが別のユーザーを追加する場合は、次のようにuseraddコマンドにsudoプレフィックスを追加する必要があります。
sudo useradd edward
ユーザーがsudoプレフィックスを使用しない場合、ユーザーは許可が拒否されましたを受け取ります 出力。
Sudoersファイル
sudoコマンドは、 / etc /にあるファイルを介して構成されます sudoersと呼ばれます 。
sudoコマンドを使用して、通常のユーザーに管理レベルの特権を提供します。通常、Ubuntuのインストール中に最初に作成するユーザーにはsudo権限があります。デフォルトのrootユーザーであるVPS環境。他のユーザーもsudoコマンドを実行できるように構成できます。これは、sudoersを編集することで実行できます。
Sudoersファイルの構文
お好みのテキストエディタでファイルを開くことができます。 viを使用します :
vi /etc/sudoers
VPSのファイルは次のようになります:
sudoersを編集するときに従うべきいくつかのフォーマットとルールを見てみましょう:
- #で始まるすべての行 コメントです
- root ALL =(ALL:ALL)ALL –この行は、rootユーザーが無制限の特権を持ち、システム上で任意のコマンドを実行できることを意味します
- %admin ALL =(ALL)ALL –%記号はグループを指定します。管理者グループの誰もがrootユーザーと同じ権限を持っています
- %sudo ALL =(ALL:ALL )すべて – sudoグループのすべてのユーザーには、任意のコマンドを実行する権限があります
もう1つの重要な行は#includedir/etc/sudoers.dです。これは、ファイルsudoers.dに構成を追加して、ここにリンクできることを意味します。
Sudoersファイルの編集
/ etc / sudoersを編集するには ファイル、次のコマンドを使用します:
sudo visudo -f /etc/sudoers
sudoersファイルの編集にはvisudoを使用することをお勧めします。 Visudoは、sudoersが一度に1人のユーザーによって編集されていることを確認し、必要な構文チェックを提供します。
sudoグループに含まれるユーザーを確認するには、grepコマンドを使用できます。
grep ‘sudo’ /etc/group
これにより、ユーザー名のリストが出力されます。
billというユーザーをsudoグループに追加するには、 adduserを使用します。 次のように、コマンドラインでコマンドを実行します。
adduser bill sudo
grepコマンドを使用してグループ内のユーザーを確認すると、ユーザー名の請求書が表示されます。
誰かにroot権限を与えたい場合は、それらをsudoに追加するだけです。
sudoからユーザーを削除するには:
deluser bill sudo
deluserコマンドは、sudoグループからbillを削除します。
これで、ユーザー請求書はsudo権限を必要とするアクションを実行できなくなります。
Sudoersファイルを使用して特定の特権を付与する
ネットワーキングなど、sudo権限を持つ特定の種類のコマンドのみをbillで実行できるようにするにはどうすればよいですか?
そのために、 /etc/sudoers.d/に構成ファイルを作成します。 ネットワーキングと呼ばれます。
次のコマンドを使用してファイルを作成します。
sudo visudo -f /etc/sudoers.d/networking
ファイルに次のテキストを追加します:
Cmnd_Alias CAPTURE = /usr/sbin/tcpdump Cmnd_Alias SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd Cmnd_Alias NETALL = CAPTURE, SERVERS %netadmin ALL=NETALL
上記のファイルで行ったことは、netadminグループを作成することです。 netadminグループのユーザーは、NETALLで指定されたコマンドを実行できます。次に、NETALLには、CAPTUREおよびSERVERSエイリアスの下にすべてのコマンドが含まれます。コマンドtcpdumpは、CAPTUREエイリアス( / usr / sbin /tcpdump。)の下にあります。
次に、netadminグループにユーザー請求書を追加します:
sudo adduser bill netadmin
これで、ユーザー請求書は他のネットワーク関連コマンドと一緒にtcpdumpコマンドを実行できるようになります。
複数のユーザーを操作している場合は、sudoコマンドとsudoersファイルを理解する必要があります。このチュートリアルでは、システムの特権を制御するためのすべての基本を学びました!