2014年9月14日日曜日

sudo関連のあれこれ


enter image description here

この前までredhat/CentOs 6系が出たばっかりだと思っていたら、
もう7系が出て新しい仕組で騒がれていますね。
でもまだまだ安定版として、サービスで利用できるようになるのは来年かなという気がしますので、
引き続き6系のナレッジをメモリましょう。
今回はsudoです。言わずと知れず、やりたいことは大体できるといわれているsudoらしいですが、
私は少しデフォルトから手を加える事が多いです。

sudoのパスワードキャッシュを制限

sudoはデフォルトでパスワードの認証情報を5分間保持しますので、それを無効化。
# visudo
Defaults timestamp_timeout = 0

認証リトライ回数を制限

sudoのデフォルト認証リトライ回数は3回、3回でいいとは思いますが、変更する場合は下記。
# visudo
Defaults passwd_tries = 3

ログ出力先の変更

redhat/CentOSではデフォルトでsecureログに出力されますが、ガッツリsudoを利用して、
内容をしっかりログに出したいときは、下記のように設定。
# visudo
Defaults !syslog, logfile = /var/log/sudo.log, log_year
sudoを行うと、下記のようなログが指定のログに出力されます。
# view /var/log/sudo.log
Aug 15 12:43:19 2014 : hogehoge : コマンドが許可されていません ;
TTY=pts/2 ; PWD=/var/www ; USER=root ;
COMMAND=/bin/rm -rf html/
Aug 22 21:23:13 2014 : root : TTY=pts/2 ;
PWD=/var/www ; USER=apache ;
COMMAND=/bin/uname

sudo設定ファイルの外部ファイル化

sudoの設定を外部読み込みファイルのように利用したい場合。
ユーザー個別の設定なんかはこちらに書き出します。
まず外部ファイルが有効かされている事を確認。
# visudo  
#includedir /etc/sudoers.d
外部ファイルの作成。
# visudo -f /etc/sudoers.d/hogehoge
ファイルを作成する際に、構文チェックももちろん、パーミッションチェックも行ってくれます。

コマンド制限

当然sudo権限を与えるのだから、コマンドを制限したいですが、コマンドのオプションまで制限したいですよね。
デフォルトでコマンドを記述しただけではすべてのオプションが許可するようですが、
オプションまで記述することで、コマンドの構文レベルで制限することも可能です。
# visudo -f /etc/sudoers.d/hogehoge
hogehoge ALL = (root) PASSWD: /bin/su - homehome, /bin/su homehome
スイッチできるユーザーを制限したい場合なんかに便利かもしれません。
正規表現も使えます。



sudoやsudoersのmanページを見てると、もっと色々細かいことが制御可能です。
ただ、懲りすぎて何とも使いにくいシステムにならないよう程々がいいと思います。


Linuxシステム[実践]入門 (Software Design plus)
沓名 亮典
技術評論社
売り上げランキング: 51,386

0 コメント:

コメントを投稿