2026年5月21日

2026年5月21日

sudoersで特定のコマンドのみ許可する方法

はじめに

Linuxサーバーを運用する上で、セキュリティ強化は重要な要素の一つです。特にsudoを使用して管理者権限での操作を行う場合、そのアクセス管理が適切に行われることが求められます。本記事では、特定のコマンドのみを実行できるようにsudoersファイルで設定する方法について解説します。

症状・背景

このテーマが必要になる主な場面は以下の通りです:

  • サーバー管理者が複数存在し、それぞれに異なる権限を付与したいとき
  • 特定のコマンドのみを一部のユーザーに対して許可して、他のコマンドは実行させたくない場合
  • リソース管理のために、特定の操作を実行できるユーザーを制限したいとき

手順・設定方法

ステップ1: sudoersファイルの編集

まず、/etc/sudoersファイルを開き、特定のコマンドのみを実行できるように設定します。この操作はroot権限が必要です。

# nano /etc/sudoers

ステップ2: 特定のユーザーに特定のコマンドのみを許可する

次に、特定のユーザーに対して特定のコマンドのみを実行できるように設定します。以下は具体的な例です:

# ユーザーuser1に対してlsコマンドだけを許可する
user1 ALL=(ALL) NOPASSWD: /usr/bin/ls

# グループgroup1のすべてのユーザーに対して、serviceコマンドとrestartコマンドのみを許可する
%group1 ALL=(ALL) NOPASSWD: /usr/sbin/service, /sbin/restart

ステップ3: 複数のコマンドを同時に許可する

複数のコマンドに対して特定のユーザーに許可する場合も可能です。以下は、user2servicerestartコマンドを使用できるように設定する例です:

# ユーザーuser2に対してserviceとrestartコマンドを許可する
user2 ALL=(ALL) NOPASSWD: /usr/sbin/service, /sbin/restart

ステップ4: 実践/トラブルシュート/監視

設定が正しく適用されていることを確認するために、コマンド実行を試みます。たとえば、user1lsコマンドを実行できるかテストします:

# user1としてログインしてlsコマンドを実行
$ sudo ls

注意事項

  • 重要なのは、許可するコマンドは最小限にすること。不要な権限付与はセキュリティリスクを高めます。
  • NOPASSWDオプションを使用するとパスワード入力が省けますが、その分安全性が低下しますので注意が必要です。
  • 設定の変更後は、sudoの動作確認を行い、必要なユーザーが指定したコマンドのみを実行できるか確認してください。

まとめ

1. 最小限の権限付与: 特定のユーザーに必要なコマンドだけを許可することでセキュリティ強化します。

2. NOPASSWDの使用注意: パスワード入力不要な設定は慎重に行いましょう。

3. 定期的なレビュー: 環境が変更された場合はsudoersファイルも適宜更新しましょう。

4. トラブルシュート: コマンド実行に問題が出た場合はsudoersファイルの確認が必要です。

5. セキュリティポリシーの策定: これらの設定は組織全体のセキュリティポリシーの一環として整備することをおすすめします。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ