設定自動化Tweetsudoersとはsudoに関する設定の定義ファイルです。suコマンドでユーザ切り替えを実施せずsudoコマンドを使用する環境を構築すれば、危険な操作のみ確認を求めたり、初級エンジニアに一部権限のみを譲渡したりする事ができます。userの略でもありません。userの略だそうです。基本設定sudoに関する設定は/etc/sudoersに記録されます。この設定ファイルは直接編集する事は非推奨とされており、設定ファイルを編集する時はvisudoというコマンドを使用する事が推奨されています。<Cmnd>を以下の書式を用いて指定します。<Cmnd>/etc/sudoersの設定例を紹介します。以下の設定は、rootユーザはsudoで全てのコマンドが実行できるようになり、sysadmグループはreboot以外のコマンドがsudoで実行できるようになります。(“%”をつけるとグループを指定する意味になります。!は否定を意味しコマンドを実行を禁止する意味になります。!/sbin/reboot動作確認を行ないます。sysadmグループにユーザに切り替え、tailなどの一般的なコマンドは使用できるものの/sbin/rebootは実行できない事を確認します。(なお、実はこの設定ではrebootコマンドは実行できてしまいます。/sbin/rebootのようなフルパス指定は拒否していますが、rebootのような短縮指定は拒否されていない事に注意して下さい。<Cmnd>に対してAliasを定義する事もできます。設定例は以下の通りです。ログ設定sudoによって操作されたコマンドをログ出力する事もできます。ログ出力をする事によって、誰がいつどんな操作をしたかを記録に残す事ができ、トラブル時の状況把握が容易になります。デフォルトでは、authprivのfacilityに出力されます。6では/var/log/secureに出力されるようです。/etc/rsyslog.confを以下のように編集します。~]#sudoの実行結果がログ出力されている事を確認します。パスワードキャッシュsudoコマンド時のパスワードは、毎回聞かれえるわけではありません。デフォルトでパスワードは5分間キャッシュされます。毎回パスワードを聞くようにして、より慎重な作業を行いたい場合はキャッシュ時間を短くする事をお勧めします。設定例は以下の通りです。timestamp_timeoutにキャッシュ時間を分単位で定義します。0を指定した場合はキャッシュしない事を意味します。パスワードなし以下のようにNOPASSWDと指定すると、sudo実行時にパスワードが聞かれなくなります。sudoを含むスクリプトを定期実行したい場合などにお勧めの手法です。muninなどの監視ツールはパスワードなしを前提としているソフトウェアになっております。/etc/init.d/mysqld/etc/sudoers.d//etc/sudoers.dに個別設定を記載する事もできます。/etc/sudoers.d/fooを以下のように編集すると、ユーザfooは全てのコマンドをパスワードなしでsudo実行できるようになります。ALL若干紛らわしい仕様なので、補足説明を行ないます。/etc/sudoers.d”はコメントではなく設定です。/etc/sudoers.d”をうっかり削除してしまうと、/etc/sudoers.d/以下の設定が効かなくなってしまうので注意が必要です。特定の処理のみパスワードなしにする危険のない定型業務やバッチ処理は、パスワードなしでsudo実行したいと思う事はよくあります。以下の設定例は、特定のコマンドのみをパスワードなしでsudo実行できるようにし、それ以外はパスワードを求めるようにしております。特定のコマンドとは、ビルドインのコマンドでも、自作スクリプトでもどちらでも差し支えございません。以下の設定例は、yumコマンドと自作スクリプト/tmp/test.shのみパスワードなしにしております。NOPASSWDの順で記述してください。8行目の順番を入れ替えると想定通りの動作をしてくれません。NOPASS_CMD自作スクリプトがパスワードなしで実行できる事を確認するため、適当なスクリプト/tmp/test.shを作成します。/tmp/test.sh動作確認は以下の通りです。restart”はパスワードの入力を求められている事が分かります。抜け道sudoには抜け道が多くセキュリティ対策として過信するのは禁物であると思います。どちらかと言うと、sudoはオペミス防止の観点での設定するようにしましょう。以下、sudoの抜け道の例をあげます。短縮コマンド(フルパスではない指定)を禁止する事は非常に難しいです。以下のような/etc/sudoersの設定例について考えます。!/sbin/rebootこの設定は、/sbin/rebootは禁止していますが、rebootは禁止されていません。rebootを完全に禁止したいならば、上記のようなブラックリスト形式ではなく、許可するコマンドをホワイトリスト形式で指定しなければなりません。~]$なお、ホワイトリスト形式の指定は運用負担が大きいので、お勧めはできません。一般ユーザからのセキュリティ対策を行ないたいならば、別のソリューションを検討すべきかと思います。sudoersには、オペミス防止以上の役割を期待してはいけない気がします。実行bashの実行権限をsudoで許可してしまうと、実はどんな操作でもできてしまいます。以下のようなスクリプトを定義してsudoで実行すると簡単にrebootできてしまいます。sudo”とのエラーメッセージが出力される事があります。putty)での接続を必要としているためです。sudoersは事故防止の観点で、ターミナルなしのような自動実行のsudoは許可しておりません。この現象を回避するには、ssh接続する際に-tオプションを付与します。-tは、ターミナルモニタをエミュレートする事を意味します。動作確認例は以下の通りです。~]$/etc/sudoersのrequirettyを変更する事でも対応可能です。requirettyの前に打ち消しを意味する”!”を追加する事によって、ターミナルモニタ接続を要求しないようになります。775この記事を始めて書いたのは2012年01月の事です。6.X系では/etc/sudoersのパーミッションは440でなくても動作します。緩い設定は775です。6.X系で/etc/sudoersのパーミッションが緩すぎる場合は、以下のようなエラーメッセージが出力されます。writableが許容されないので、最も緩い設定は775になります。設定自動化sudoersの設定自動化について考察します。chefを用いた場合の最小限のレシピは以下の通りです。「パーミッション足りないのでは?」と感じると思います。実際に実行して見ると動きます。/etc/sudoerschefを使う場合は「chmodでパーミッションを緩めてまたパーミッションを厳しくして」の操作を省略する事ができます。業務でよく使用するyumコマンドの使い方についてまとめます。Daemon)はリアルタイムのファイル同期を提供する仕組みのひとつです。serverの設定についてまとめます。コメントをキャンセルメールアドレスが公開されることはありません。date*日本語が含まれない投稿は無視されますのでご注意ください。ネットワークチェンジニアとして。