CentOS でスーパーユーザーを追加する方法
root ユーザでなければ、sudo コマンドを使って特定のコマンドを実行することができません。ルートユーザは sudo ユーザとも呼ばれています。CentOS では、wheel グループにユーザを追加するか、/etc/sudoers ディレクトリ内のファイルにユーザを追加することで sudo ユーザを追加することができます。
ユーザを wheel グループに追加する
ここでは、sudo ユーザではないユーザがいると考えてみましょう。そのユーザを wheel グループに追加するには、既に存在する別のスーパーユーザとして以下のコマンドを実行します。
usermod -aG wheel username
username は、wheel グループに追加する必要があるユーザの名前です。
usermod -aG wheel zeppy
これにより、zeppy が wheel グループに追加されます。
ユーザが wheel グループに追加されたかどうかを確認するには、whoami コマンドを用います。
sudo whoami
このコマンドはパスワードの入力を求めてくるので、パスワードが正しく、ユーザが wheel グループに属していれば、ターミナルに root が表示されます。
出力:
root
ユーザが wheel グループに入っていない場合、user is not in the sudoers file というエラーが表示されます。
ユーザを Sudoers ファイルに追加する
sudo の権限を持つユーザは /etc/sudoers ファイルで設定します。sudoers ファイルを変更するか、/etc/sudoers.d ディレクトリに新しい設定ファイルを追加することで、sudo ユーザーを追加することができます。
/etc/sudoers ファイルを編集するには visudo コマンドを使用します。visudo コマンドは保存する前にファイルの構文エラーをチェックします。
nano エディタを用いて /etc/sudoers ファイルを編集するには、以下のコマンドを用います。
EDITOR=nano visudo
パスワードの入力を求められることなく sudo コマンドの実行を許可したい場合は、コマンドを使って /etc/sudoers ファイルを開きます。
visudo
これで permission denied というエラーが出た場合は、以下のコマンドを試してみてください。
sudo visudo
これで /etc/sudo ファイルが開かれるので、ファイルの最後に行き、以下の行を追加する必要があります。
username ALL=(ALL) NOPASSWD:ALL
ここで、username は許可したいユーザの名前です。
ここで、エディターを終了する前にファイルを保存する必要があります。
また、パスワードなしで特定のコマンドのみを実行することを許可することもできます。
zeppy ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir
これにより、zeppy はパスワードなしで /bin/mkdir と /bin/rmdir というコマンドを実行できるようになります。
また、/etc/sudoers.d ディレクトリに設定ファイルを作成することで、ユーザのコマンド実行権限を有効にすることもできます。
このファイルには、/etc/sudo ファイルに追加した内容と同じ内容を追加しなければなりません。
zeppy ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/rmdir
これにより、zeppy はパスワードなしで /bin/mkdir と /bin/rmdir のコマンドを実行できるようになります。
この方法の利点は、各ユーザのファイル名を持つ別のファイルを作成できるので、より管理しやすくなることです。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn