sudoers|サイバーセキュリティ.com

sudoers

sudoersは、LinuxやUnix系オペレーティングシステムにおいて、ユーザーがsudoコマンドを使って管理者権限(root権限)でシステム操作を行うための許可を定義する設定ファイルです。sudoersファイルは、/etc/sudoersのパスに存在し、通常、特権コマンドを制御し、特定のユーザーやグループにのみシステム管理操作を実行できるよう制限するために利用されます。このファイルの設定により、システム管理者はセキュリティを強化し、システム全体に対する不正アクセスのリスクを低減できます。

sudoersファイルは非常に重要なファイルであり、誤った設定によってシステム管理が難しくなる可能性があるため、設定の編集には特別なコマンドvisudoが推奨されます。このコマンドを使用すると、編集時の構文エラーが防止できるようになっています。

sudoersの基本構文とエントリ形式

sudoersファイルの基本構文は以下の通りで、特定のユーザーやグループに対して、実行可能なコマンドや権限レベルを指定します。

基本構文

<ユーザー名またはグループ名> <ホスト名> = (<実行ユーザー>) <コマンド>

項目 説明
ユーザー名またはグループ名 sudoコマンドを使用できるユーザーまたはグループの指定。グループは%記号を付けて指定します。
ホスト名 コマンド実行を許可するホストの指定。通常は「ALL」で指定して制限を解除します。
実行ユーザー コマンドを実行する権限レベル(例:root)。省略時は通常root権限での実行。
コマンド 実行許可するコマンドを絶対パスで指定(例:/usr/bin/vim)。「ALL」で全コマンド指定。

sudoersファイルの設定例

以下にsudoersの設定例を示します。

ユーザー単位の設定

# ユーザーaliceに全コマンドの管理者権限を付与
alice ALL=(ALL) ALL

上記の設定は、ユーザーaliceが任意のホスト上でsudoを使い、任意のコマンドをroot権限で実行できることを意味します。

グループ単位の設定

# グループadminsの全メンバーが任意のコマンドを実行可能
%admins ALL=(ALL) ALL

この設定により、グループadminsに属するすべてのユーザーが、全ホストで全コマンドをsudoで実行できます。

特定のコマンドに限定した権限

# ユーザーbobに、root権限でパッケージ管理コマンドのみ許可
bob ALL=(root) /usr/bin/apt-get, /usr/bin/yum

この例では、ユーザーbobがパッケージ管理コマンドapt-getyumだけをroot権限で実行できるように制限しています。

パスワードなしで特定コマンドを実行

# ユーザーaliceが、パスワード入力なしでシステムシャットダウンを実行可能
alice ALL=(ALL) NOPASSWD: /sbin/shutdown

ここでは、ユーザーaliceshutdownコマンドをパスワードなしで実行できるように設定しています。NOPASSWDキーワードを使用することで、コマンド実行時のパスワード入力が不要になります。

visudoコマンドの使用

sudoersファイルを直接編集するのではなく、visudoコマンドを使うことで、安全に編集できます。構文エラーがある場合には警告が表示され、設定が間違ったまま保存されるリスクが防がれます。

visudoの実行例

sudo visudo

このコマンドで/etc/sudoersファイルを開き、編集します。visudoはデフォルトでVimなどのエディタを使用しますが、EDITOR環境変数を変更して別のエディタを使うことも可能です。

sudoersの活用メリット

  1. アクセス管理の強化
    sudoersにより特定ユーザーやグループにのみ権限を付与することで、管理者権限の濫用を防ぎます。
  2. セキュリティの向上
    必要最低限の権限だけを付与し、必要なユーザーのみにroot権限を委譲することで、システムの安全性を確保します。
  3. ログの取得
    sudoコマンドの実行履歴がログに記録され、ユーザーの行動を監査できるため、インシデント対応や不正行為の検出が容易になります。

sudoersファイルの注意点

  1. 構文エラーの防止
    sudoersファイルは非常にセンシティブであり、構文エラーがあると全ユーザーがsudoコマンドを実行できなくなる恐れがあります。必ずvisudoを使用して編集することが推奨されます。
  2. 不要な権限の制限
    権限を過剰に付与すると、セキュリティリスクが高まります。特定のコマンドのみを指定するなど、最小限の権限付与を心がけましょう。
  3. NOPASSWDの使用制限
    NOPASSWDオプションを安易に使うと、意図せずに重要コマンドがパスワードなしで実行されるリスクがあります。セキュリティリスクが低いコマンドに対してのみ利用することが推奨されます。

まとめ

sudoersファイルは、LinuxやUnix系システムでの管理者権限の委譲と制御を目的とした設定ファイルです。システム管理者は、sudoersを使って特定ユーザーやグループに対してsudoによる権限を付与することで、セキュリティを強化し、運用の効率化が可能となります。編集にはvisudoコマンドを利用して構文エラーを防ぎ、最小限の権限のみを付与することが安全なシステム管理のためのポイントです。


SNSでもご購読できます。