【Linux】sudoコマンドの利用を許可する設定方法

Linuxではセキュリティや思わぬ事故を防ぐためにログインするユーザーに様々な制限が掛かっています。
コマンドの実行やファイルのアクセス制限など多岐にわたっています。

他のユーザーに成り代わってコマンドを実行するためのコマンドが「sudo」コマンドです。

多くの場合一般ユーザーがrootユーザーに成り代わってコマンドが実行できるように許可して使用しています。

「sudo」コマンドはどのユーザーでも使える訳ではなく許可をする設定が必要です。
許可方法をこの記事で解説します。

1.「sudo」コマンドが使えるように設定するファイル「/etc/sudoers」について

「sudo」コマンドが使えるように許可する設定は「/etc/sudoers」というファイルに記述されています。

この「/etc/sudoers」というファイルは「vi」コマンドなどで直接編集してはなりません。編集する場合は「visudoコマンド」を使用することになっています。「visudo」コマンドでは保存するときに設定ファイルのエラーをチェックしてくれます。

一般ユーザーの設定を個別に記述する場合は「/etc/sudoers.d」ディレクトリの下にユーザー毎のファイルを作成して設定内容を記述することをおすすめします。例えばユーザー「hoge」の設定はviコマンドを用いて「/etc/sudoers.d/hoge」ファイルに記述します。

「/etc/sudoers」ファイル中に「/etc/sudoers.d」を読み込む行が記述されています。
#includedir /etc/sudoers.d   ←この行(この記述は触らないようにしてください。)

 

スポンサードサーチ

2.設定の記述方法

1)記述の書式

「/etc/sudoers」の記述書式は以下となっています。
許可コマンドの前に「!」を付けると禁止する指定になります。

書式
ユーザー ホスト = (suduするユーザー)  [NOPASSWD:/PASSWD:]  許可コマンド

 

2)記述例

では記述の例を挙げて説明します。

例1)ユーザー「yamada」にsudoですべてのコマンドをパスワード入力なしで許可する

yamada ALL=(ALL) NOPASSWD: ALL

例2)ユーザー「tanaka」にsudoで「chmod」 コマンドのみを許可する

tanaka ALL=(ALL) /use/bin/chmod

例3)ユーザー「satoh」に「reboot」コマンドを禁止する

satoh ALL=(ALL) !/usr/sbin/reboot

3)wheelグループに参加して全て許可する

「/etc/sudoers」には次の1行が定義されています。

%wheel ALL=(ALL) ALL

これは「wheel」グループには全てのコマンドを許可することを意味します。
なのでユーザーを「wheel」グループに追加すると全てのコマンドを許可することになります。
「usermod」コマンドが使えるのであればユーザーを「wheel」グループに追加します。

usermod -aG wheel ユーザー

上記のままの状態だとパスワードを聞いてきますのでパスワード無しで「sudo」コマンドを使うには以下のように変更してください。

%wheel ALL=(ALL) NOPASSWD: ALL

 

スポンサードサーチ

3.visudoコマンドで設定ファイルの記述にエラーがあった場合

「visudo」コマンドを使用して編集すると終了時に記述のエラーチェックをしてくれます。
エラーがあった場合はどうするか聞いてきますので、「e:編集する」「x:保存しないで終了する」「Q:保存して終了」どれかを選択します。(「Q」はお分かりと思いますが選択しないのが吉です)

>> /etc/sudoers: syntax error near line xxx <<<
What now? ←ここで「e」「x」「Q」を入力する。(eを入力して訂正するかxを入力して変更を破棄します)

 

4.まとめ

以上、sudoコマンドを使うための設定法王について説明しました。

殆どの場合はroot権限でのコマンド実行を許可するためセキュリティには十分配慮が必要です。

Linux

Posted by garnet