ユーザーがsudoできない/権限がないときの確認方法

  • URLをコピーしました!
目次

はじめに

Linuxで新しいユーザーを作成した後、sudo を実行すると以下のようなエラーに遭遇することがあります。

user is not in the sudoers file.  This incident will be reported.

あるいは、

username is not in the sudoers file

この場合、そのユーザーには管理者権限が付与されていないため、sudo を利用できません。
本記事では、ユーザーが sudo を実行できない場合の確認方法と解決手順を解説します。

主な原因

  1. /etc/sudoers にユーザーが登録されていない
  2. ユーザーが管理者グループ(sudowheel)に所属していない
  3. /etc/sudoers を直接編集して破損してしまった

確認手順と解決方法

1. 現在のユーザーがどのグループに属しているか確認

groups

例:

user1 : user1

もし sudowheel グループが表示されていなければ、管理者権限を持っていません。

2. グループに追加する

Ubuntu/Debian 系

sudo usermod -aG sudo user1

CentOS/RHEL 系

sudo usermod -aG wheel user1

変更を反映させるには再ログインが必要です。

3. /etc/sudoers の設定を確認する

/etc/sudoers ファイルは 直接編集すると構文エラーで sudo が壊れる危険があります。
必ず visudo コマンドを使って編集しましょう。

sudo visudo

よく使う設定例

  • Ubuntu系では以下の記述があれば sudo グループに所属するユーザーは管理者権限を持ちます。
%sudo   ALL=(ALL:ALL) ALL
  • CentOS/RHEL系では以下の記述が該当します。
%wheel  ALL=(ALL)       ALL

4. 特定のユーザーだけ sudo 権限を与える

特定ユーザーだけ許可したい場合は、visudo で以下を追加します。

user1   ALL=(ALL:ALL) ALL

5. sudoers が壊れてしまった場合

もし /etc/sudoers を壊してしまった場合は、rootユーザーでログインして修正が必要です。
仮想マシンやクラウド環境なら、コンソールから root で復旧する方法も覚えておくと安心です。

まとめ

  • sudo が使えないのは ユーザーが sudoers に登録されていない/管理グループに所属していない のが原因
  • グループ追加は usermod -aG sudo <user>(Ubuntu系)や usermod -aG wheel <user>(CentOS系)
  • /etc/sudoers を編集するときは必ず visudo を使う
  • 特定ユーザーだけ許可したいなら、username ALL=(ALL:ALL) ALL を追記する
よくあるエラーと解決方法まとめ
目次