sudo(visudo)を設定する

Linux

rootログインをしない状態にした場合に、設定変更やソフトのインストールをする際に毎回”su”するのも微妙ですし、他の人が触る際に思わぬコマンドを実行されない様に、”sudo”を利用できるようにしておく事で全てがイイ感るはずです。

 

では”sudo”を設定すると、どんないい事があるのか?と言う点を下記に記載します。
【参照:wikipedia】  http://ja.wikipedia.org/wiki/Sudo

  • オペレーティングシステムをインストールする際の、設定項目を減らすことができる。
  • ユーザが余計なパスワードを覚えなくてもよくなる。
  • 大きな変更を加える際、パスワードの入力を求められるようにすることで、ユーザは何をしようとしているか再認識することができる。
  • sudoコマンド実行ログが残り、何か不具合が発生した際にどのようなコマンドを実行したのかを確認することができる。システム監視の意味でも有用。
  • rootアカウントでのログインを無効にしている場合、パスワードの総当たりなど、強引な手法でシステムに侵入を試みるクラッカーがrootアカウントで侵入できない。
  • ユーザを管理者グループに追加、削除することにより、管理者権限を持つことのできるユーザーを限定できる。
  • sudo は su に比べて、より細かいセキュリティポリシーを設定することができる。
  • 管理者権限は短時間で自動的に破棄される。

 

これらの事が達成できると、セキュリティ的には危険な個所を減らす事が可能となり、サーバで作業を行う際の時間的にも削減ができるはずです。

 

それでは、早速設定を行っていきます。
まずは、”sudo”を利用したいサーバへログインし下記のコマンドを実行します。
[shell]
visudo
[/shell]

 

rootユーザーについての設定がされていると思いますので、まずはその行を見つけましょう。
[shell]
root(*1) ALL(*2)=(ALL)(*3) ALL(*4)
[/shell]

 

設定内容については下記の通りとなっています。

(*1)
sudoを利用するユーザー
※ここではユーザーとして”root”が設定されている。

(*2)
接続可能ホスト
※ここでは”ALL”が設定されているため、全てのホストから接続可能。

(*3)
権限変更可能なユーザー
※ここでは”ALL”が設定されているため、全てのユーザーへ移行可能。

(*4)
実行できるコマンド
※ここでは”ALL”が設定されているため、全てのコマンドが実行可能。

 

実際には下記のように設定を行います。
[shell]
login ALL=(root) /etc/init.d/postfix,/etc/init.d/dovecot
[/shell]

 

上の場合の設定では、”login”と言うユーザーがsudoした際に実行可能な範囲を

  • /etc/init.d/postfix
  • /etc/init.d/dovecot

の2つに限定するように設定を行っています。
※メールサーバのreloadやrestartにしか使わない用途の場合。

 

また、複数台のサーバにssh + sudoコマンドを実行する場合に、接続先のサーバ設定(visudo)がttyを持たない場合に実行させない設定になっていると下記の様なエラーが出て30分くらい時間を損します。
[shell]
sudo: sorry,you must have a tty to run sudo.
[/shell]

 

セキュリティ的には微妙な感じもしますが、使えると言う事を覚えておくだけでも役に立つこともあるかもしれません。
設定する箇所は、先ほどのvisudoの中にある下記の部分を変更するだけです。
[shell]
# 変更前
Defaults requiretty

# 変更後
#Defaults requiretty
[/shell]

 

上記の設定を行ったサーバ(ここでは”server1″としています)へ下記のようなコマンドを実行すると簡単にメールサーバのreloadが出来ます。
[shell]
ssh -n login@server1 ‘hostname; sudo /etc/init.d/postfix reload && sudo /etc/init.d/dovecot reload’
[/shell]

 

実行すると下記の内容が画面上に出力されます。
出力された際に、サーバ(server1)側のmaillogを見るとリロードされている事を確認できると思います。
[shell]
server1
Reloading postfix: [ OK ]
Reloading Dovecot Imap: [ OK ]
[/shell]

 

まだまだ、自分も勉強しながらですが使える場所を判断しつつ処理を簡易化しつつ定常的な作業を自動化したいと思います。

コメント

タイトルとURLをコピーしました