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