sudo設定(Linux)

sudoとは、他のユーザの権限でプログラムを実行するためのコマンドもしくはその機能のことを指す。
 
実は他のユーザの権限でプログラム実行するだけならばsuコマンドでもできる
しかしsuではなく、あえてsudoを使用する理由は以下の通り。
 
・sudo実行時に求められるパスワードはsudoコマンドを実行したユーザのパスワード。
(例えばsudoでrootユーザの権限でコマンド実行する場合、rootユーザのパスワードを教えなくてもroot権限での実行をさせることができる)
・sudoだとログに実行内容が記録される
・sudoだと細かいセキュリティーポリシーを設定できる
 (どのホストで、どのユーザに、どのユーザの権限で、何のコマンド実行を許可するか)
 
【基本的な設定方法】
設定ファイル「/etc/sudoers」を修正する。このファイルに実行を許可するコマンドを登録しておく。修正する際はviコマンドではなく、visudoコマンドを実行して設定ファイルを開き修正する。rootで実行すること。
 
sudoersの書式:
    (誰に) (どのホストで) = (どのユーザの権限で) (何のコマンドを)
 例)userA ALL = (root) /sbin/shutdown -h now
 
(誰に)
ユーザ名、もしくはグループ名を指定できる。グループ名を指定する場合は頭に%をつける。
例)
userA ALL = (ALL) ALL
%wheel ALL = (ALL) ALL
 
※グループ指定を使うと、例えば管理者用のグループに対してコマンド設定をしておけば、OS上に管理者用ユーザが増えたとしてもユーザの所属グループを設定するだけでコマンドが実行できるようになり、sudo設定にユーザ名を追記するなどの修正が必要ない
 
(どのホストで)
ホスト名、IPアドレス、ネットワークアドレスで指定できる。複数記載する場合はカンマ区切りで記載する。があまり設定することはなくALLにする場合がほとんど
 
(どのユーザの権限で)
ユーザ名を記載す
例)userA ALL = (root) ALL
 
(なんのコマンドを)
コマンドはフルパスで指定すること。複数コマンドを登録する場合はカンマ区切りで記載する。引数をつけて実行するコマンドは引数も含めて記載する必要がある。
例)userA ALL = (root) /bin/su -,/bin/su – root
 
【よくある設定】
・パスワード入力なしで実行できるようにす
設定ファイルに記載したコマンドにNOPASSWDのオプションを指定する
例)userA ALL = (root) NOPASSWD:/bin/su –
 
・シェルエスケープの防止
noexecオプションを指定する。シェルエスケープとはある実行プログラムから別のプログラムを実行すること
例)ALL ALL = (ALL) NOEXEC: /bin/vi *
 
【エイリアスについて】
ユーザ、ホスト、コマンドはエイリアスと呼ばれるグループをあらかじめ設定することで
実際にコマンド登録を記載する行にそのエイリアスを使用することですっきりした書きっぷりにすることができる。が、ホストエイリアスはあまり使う機会はない。
 
ユーザエイリアス
例)User_Alias ADMIN_USER = sys001,ope001
 
コマンドエイリア
例)Cmnd_Alias ADMIN_CMD = /sbin/shutdown -h now,/shell/bin/server_stop.sh
 
ホストエイリアス
Host_Alias HONBAN_HOST = host1,host2,host3,host4
 
これらを以下のように組み合わせて使用することができる
ADMIN_USER HONBAN_HOST = (root) NOPASSWD:ADMIN_CMD

スポンサーリンク
勉強wikiの下部広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
勉強wikiの下部広告

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA