sudoを設定する
root権限が必要なコマンドなどは、suでrootになってからおこなっているが、rootは万能なので、思いがけず重要なファイルやディレクトリーを破壊する危険性がある。
このような問題へ対応として、UNIX系のOSにはsudoコマンドが用意されている。
$ sudo 実行したいコマンド
上記のように指定することで、sudoの後に続けたコマンドをroot権限で実行できる。
sudoの場合、root権限は一定時間が経つと自動的に失われるため、危険な状態が継続される心配も少ない。さらに実行したコマンドのログが取られるため、root権限を求めるような重要操作が、いつどのようにおこなわれたのかを後で振り返ることもできる。
まずは、sudoがインストールされていることを確認する。
$ yum list installed | grep sudo sudo.x86_64 1.8.6p3-7.el6 @anaconda-CentOS-201303020151.x86_64/6.4
上記のように表示されたらOK。なければ以下を実行してインストールしておく。
$ yum install sudo
sudoを利用するユーザーをwheelグループに追加する。
wheelとは、root権限を得られる特別なユーザーグループである。ここにユーザー追加する場合はusermodコマンドを実行する。root権限が必要なので以下のように実行する。
$ su - Password: # usermod -G wheel xxxx
xxxxの部分がユーザー名になる。これでxxxxはwheelに属するようになったはずだが、本当にそうなっているかをidコマンドで確認しておく。wheelに属しているならば、下記のようにgroupへ10(weel)という表記が加わる。
# id xxxx uid=500(xxxx) gid=500(xxxx) 所属グループ=500(xxxx),10(wheel)
次は、wheelグループに属するユーザーへ、sudoを許可する。rootになっている状態でvisudoコマンドを実行する。
# visudo
するとsudoの設定ファイルを編集するためにviが起動される。その中には、wheelの実行権限がコメントアウトされているので、
## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL
以下のようにそれを解除する。
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL
変更したらescキーを押してコマンドモードに戻り、:wqとタイプしてEnterキーを押す。これで設定ファイルの変更が保存される。これでsudoが利用できるようになった。
まだrootになっていると思うので、Ctrl + Dを押してrootから抜けておくこと。以降、root権限が必要になった場合は、sudoを通してコマンドを実行するようにする。
コマンドのパスを通す
sudoを通して実行するようなコマンドは、/usr/sbinや/usr/local/sbinに置かれていることが多いのだが、初期状態の一般ユーザーではこれらのパスが通っていない。そのためコマンドを呼び出すときにフルパスで指定しなくてならず面倒。そこで、さきほどsudoを許可したユーザーに対して、パスを通しておく。
ユーザーのHOMEに.bash_profileというファイルが置かれていることを確認する。
$ cd $ ls -a . .. .bash_history .bash_logout .bash_profile .bashrc .ssh
.bash_profileをviで開いて以下のようにパス設定を加えて保存する。背景色がグレーになっている部分が追加分である。
$ vi .bash_profile ... # User specific environment and startup programs PATH=$PATH:$HOME/bin PATH=$PATH:/sbin PATH=$PATH:/usr/sbin PATH=$PATH:/usr/local/sbin
保存したら再ログインするか、以下のコマンドで反映する。
$ source ~/.bash_profile