ChocoMemo

学んだことをメモがわりにアップしていきます!

さくらVPS初期設定 6 - sudoの設定


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

参考サイト:さくらのVPS を改めて使いはじめる 2 – sudo と SSH ポート変更