CentOSで一般ユーザーにroot権限を付与して、パスワードを入力なしにsudoコマンドを使えるようにする

CentOSで一般ユーザーにroot権限を付与して、パスワードを入力なしにsudoコマンドを使えるようにするの画像

サーバーの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を限定するとか、また別途違う方法でセキュリティを高めないといけないね。