サーバーのroot権限を得るコマンドとして、su コマンドが用意されており、今までyum updateとかするたびに、root ユーザーに切り替えて・・・っとかやってました。
正直rootパスワード無茶苦茶長くしているし、一々そのパスワードを入力しなくてはならないのはめんどくさい。
また、何度もrootパスワードを入力していると、それだけネットワーク上にroot のパスワードが流れたり、パスワード入力を監視されたりする危険性が上がるので、セキュリティ上の観点からも問題だった。
そこで今回導入したのが、sudo(superuser do) コマンドで、指定した一般ユーザに特定のroot コマンドを付与して代理のroot ユーザとしてサーバーを管理する事ができるにした。
以下がその導入手順。
■sudo のインストール
sudo は Linux にはデフォルトでインストールされているので、以下のコマンドを実行し、sudo が問題なくインストールされているかどうかを確認する。
# rpm -qa | grep sudo
sudo-1.6.7p5-2
もし、インストールされていなければ以下のコマンドでインストールする。
# yum install sudo
■ sudoの設定する
root権限で以下のコマンド入力する
# visudo
仮に、testuser という名前の一般ユーザーに sudo 権限を付与するには、以下の探してハイライト部分をそれぞれ追記する。
## Allow root to run any commands anywhere root ALL=(ALL) ALL testuser ALL=(ALL) ALL
## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL %testuser ALL=(ALL) NOPASSWD: ALL
以上。
しかし、これをしてしまうと、sudo権限をあたえた一般ユーザーのパスワードが流出したら、なんでもされ放題になってしまうので、そこらへんは、公開鍵のみのログインとか、SSHにアクセスできるIPを限定するとか、また別途違う方法でセキュリティを高めないといけないね。