Linuxでsudoできないユーザをsudoできるようにする

前提

書くこと/書かないこと

CentOS系環境でsudoできないユーザでsudoできるようにするための設定を書きます。

環境

AlmaLinux 9.0

前提知識

sudoできるユーザの条件

Linuxでユーザがsudoできるかどうかは、そのユーザがsudoersファイルによって許可されているかどうかで制御されています。

sudoersファイルの中身(ポイント)

sudoersファイルは/etc/sudoersにあります。

ファイルを開くと106-107行目付近に下記の記述があることが確認できます。シンプルにはこれがほぼすべてで、wheelグループに含まれるユーザはsudoできるという関係になります。

(前略)
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
(後略)

wheelグループ確認

グループの情報を確認するには/etc/groupを使います。

このケースでは、初期ユーザとして作成したalmaがwheelグループに参加していることを意味します。

(前略)
wheel:x:10:alma
(後略)

作業内容

新しいユーザを作ってwheelに追加し、実際にsudoできるまでの確認を行います。
分かりやすさのため、ユーザ作成時に直接wheelに追加するのではなく、step by stepで進めます。

新規ユーザの作成

新規ユーザhogeを作成します。
useraddでユーザを作成し、passwdでパスワードを設定します。

# useradd hoge
# passwd hoge
ユーザー hoge のパスワードを変更。
新しい パスワード:
新しい パスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

上記コマンドを実行するとユーザhogeが作成されます。
作成したユーザは/etc/passwdで確認できます。

(前略)
hoge:x:1001:1001::/home/hoge:/bin/bash

/etc/groupの方も確認しましょう。

(前略)
wheel:x:10:alma
(中略)
hoge:x:1001:

上記の通り、ユーザ名と同じグループが作成されていますが、wheelは変わりありません。

動作確認①(wheel未追加)

まずはこの状態で動作確認をします。
最初にsuでhogeにスイッチし、sudoを実行します。コマンドは何でも構いません。

$ su hoge
パスワード:
$ whoami
hoge
$ sudo ls

あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:

    #1) 他人のプライバシーを尊重すること。
    #2) タイプする前に考えること。
    #3) 大いなる力には大いなる責任が伴うこと。

[sudo] hoge のパスワード:
hoge は sudoers ファイル内にありません。この事象は記録・報告されます。

「hoge は sudoers ファイル内にありません。」というメッセージが表示されていますが、予定通りsudo失敗です。

wheelグループへの追加

先ほど作ったhogeをwheelグループに追加します。

# gpasswd -a hoge wheel
ユーザ hoge をグループ wheel に追加

これでhogeがwheelに追加されました。
/etc/groupでも確認します。

(前略)
wheel:x:10:alma,hoge
(中略)
hoge:x:1001:

wheelの行にhogeが追加されていることがわかります。

動作確認②(wheel追加済み)

動作確認①と同じ手順で実施します。

$ su hoge
パスワード:
$ whoami
hoge
$ sudo ls
[sudo] hoge のパスワード:
Desktop  Documents  Downloads  Music  Pictures	Public	Templates  Videos

今度はsudoすることができ、lsの結果が表示されました。

結論

ユーザをwheelグループに追加することでsudoできるようになることが確認できました。