Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

必要最小限にsudo権限を付与する

 sudoコマンドは、他のユーザの権限でコマンドを実行することができる便利なコマンドですが、例えば誰でもroot権限でコマンドを発行できてしまうと、セキュリティもへったくれもないので、使用が制限されておるそうです。
 /etc/sudoers ファイルにsudo権限が付与されているユーザの設定が記述されており、rootのみが編集可能になっています。この設定ファイルを編集する際に、ルールに則した記述になっているかシンタックスチェックを働かせつつ編集できるコマンドが visudo コマンドですな。

 /etc/sudoers ファイルの中には、

root ALL=(ALL) ALL

という記載があるが、これが sudo 権限が付与されていることを示し、

ユーザ ホスト=(権限) コマンド

という記述ルールになっている。

  • ユーザ:sudo権限を付与する対象のユーザ
  • ホスト:使用したいホスト
  • 権限:誰の権限でコマンドを実行するか
  • コマンド:権限を付与するコマンドの絶対パスをカンマ区切りで列挙する

 ここで注意事項ですが、セキュリティの世界では、権限は与えすぎると管理が行き届かなくなるので、必要最小限の権限を与えて運用するのがヨシ、とされています。
 具体的には、「特定ユーザのパスワードを一次的に変更する」という権限を下位ユーザに与えたい場合、上記の sudoers ファイルで passwd コマンドの権限を与えてしまうと、root権限のパスワードまで変更できてしまうため、権限の与え過ぎ、という状況になってしまいます。

こういう場合は

  1. 要件を満たす一連の操作をシェルスクリプトなどで実装する。
  2. 作ったシェルスクリプトを独自コマンドとして登録。
  3. /etc/sudoers には用意した独自コマンドのみを権限付与するよう設定する。

という対応により、必要以上に権限が与えられることを防ぎます。

・・・ってなことを、最近学んだのでメモ。


<参考URL>
visudoコマンド(sudoコマンドの為の設定ファイルの編集)