UNIXには、
一般ユーザがroot権限でコマンドを実行するためのコマンド
sudoがある。
デフォルトでは、rootのみsudoが可能なので、
一般ユーザにsudoを許可するためには、
設定変更が必要になる。
ここでは、sudoに対する操作を見てみる。
sudoに関する設定ファイル
/etc/sudoers
このファイルを必要に応じて編集する
もしくは
# vi /etc/sudoers
# visudo
まず、root以外の一般ユーザにsudoを許可する。
そのためには、下記行をアンコメント
%wheel ALL=(ALL) ALL
これで、wheelグループに属しているユーザのみsudoが可能になる。
この場合、全てのコマンドがsudoで利用可能。
# cat /etc/group | grep wheel
wheel:x:10:root,test1,test2
実行例
$ sudo /sbin/ifconfig -a
password:(sudoを実行したユーザのパスワード)
コマンドの出力
コマンドの中でsudoで利用させたくないコマンドがある場合は、次の通り。
例えばifconfigをsudoさせたくない場合
Cmnd_Alias IFCONFIG = /sbin/ifconfig
%wheel ALL=(ALL) ALL,!IFCONFIG
実行例
$ sudo /sbin/ifconfig -a
password:(sudoを実行したユーザのパスワード)
Sorry, test1 is not allowed to execute '/sbin/ifconfig -a' as root on TEST01
ちなみに、sudoの利用自体が許可されていないユーザが実行した場合
$ sudo /sbin/ifconfig -a
password:(sudoを実行したユーザのパスワード)
ユーザ名 is not in the sudoers file. The incident will be reported.
sudoがシステム上で実行されると、デフォルトで/var/log/secureに記録される。
Jan 24 19:57:24 TEST01 sudo: test1 : command not allowed ; TTY=pts/1 ; PWD=/home/test1 ; USER=root ; COMMAND=/sbin/ifconfig -a
Jan 25 09:13:41 TEST01 sudo: test1 : TTY=pts/1 ; PWD=/tmp ; USER=root ; COMMAND=/bin/more sudo.txt
Jan 25 09:26:11 TEST01 sudo: test3 : user NOT in sudoers ; TTY=pts/2 ; PWD=/home/test3 ; USER=root ; COMMAND=/sbin/ifconfig -a