2010年11月29日月曜日

rootのパスワードを教えたくない

centosでsudoを使いたい時のメモ。

http://oshiete.goo.ne.jp/qa/1013408.html

Solaris9でrootのコマンドを使わせたいけどrootパスワードを教えたくない、というものがあった。
linuxでの解決法。

特定のスーパーユーザでしか使えないコマンドを一般ユーザで使いたい場合は、
wheelグループにユーザを追加して、全ての権限を使えるようにするか、
もしくはsudoで特定のコマンドを使えるように記述するか。

ここではsudoをcentosで使う方法を記述する。

rootユーザでsudoを編集するvisudoを起動する。使い方はviと同じだが、保存する際にエラーチェックをしてくれる。

# /usr/sbin/visudo


下の方を見ていくと、

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL


という記述がある。
同じように書いてやる。
パスワード無しで実行させたいので、パスワード無し指定もする。
*下部に追記有り
許可したいユーザ名 サーバ名=NOPASSWD: コマンドの場所

例:ユーザ「joker」サーバ「foobar」でrebootコマンドを使わせたい
joker foober=NOPASSWD: /sbin/reboot


内の環境の場合、反映のためにサーバの再起動が必要だったが、
$ sudo /sbin/reboot
で実行できた。

参考URL
http://piro791.blog.so-net.ne.jp/2010-02-25-1
http://wingse.blog57.fc2.com/blog-entry-202.html
http://linux.kororo.jp/cont/intro/sudo.php



追記

許可したいユーザ名 サーバ名=NOPASSWD: コマンドの場所
と書いたが、何故か実行できない環境もあったので、
許可したいユーザ名 ALL=NOPASSWD: コマンドの場所
とした。
なので例は
例:ユーザ「joker」当該サーバでrebootコマンドを使わせたい
joker ALL=NOPASSWD: /sbin/reboot

となる。

0 件のコメント:

コメントを投稿