PR

sudo ユーザに追加する方法

sudo ユーザに追加する方法です。

スポンサーリンク

sudo

本サイト( kb.seeck.jp )では様々な OS を紹介していますが、インストール作業中に作成する一般ユーザとして「seeck」などを操作例として記載しています。

一般ユーザ seeck がシステムの管理を行うために一時的に root 権限を行使する場合、root 権限が必要なコマンドの前に sudo を追加します。

例えば、apt を通じて ssh をインストールする場合、コマンドを root が実行するときは、次のようにコマンドを実行します:

# apt install ssh

一方、上記コマンドを一般ユーザが実行するときは、次のようにコマンドを実行します:

$ sudo apt install ssh

root コマンドの前に sudo が追加されています。この sudo は、続くコマンドを root として実行するものです。

しかし、誰でも sudo コマンドが使えてしまっては意味がありません。sudo コマンドが使えるかどうかは、システムの設定によります。

次のコマンド例では、sudo を実行したものの、sudo を実行する許可がないためにエラーとなった例です:

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

「この事象は記録・報告されます。」と強いメッセージも付加されています。

これは、ユーザ seeck がシステムを利用するだけでなく、システムに影響をおよぼすようなコマンドを実行しようとしたことが記録され、システム管理者に報告されることを表示しています。

システム管理者には seeck が sudo コマンドを実行しようとしたことや、それがどんなコマンドだったのかも報告されます。

システム管理者は、内容を確認して、それが悪質なものであったり意図しないものでったりすれば、セキュリティ対策を実施します。

※この例では、システムに「root」と「seeck」の 2 ユーザが登録されているが、「seeck」は昇格可能なユーザとして登録されていないことを解決しようとするものです

sudo ユーザを追加する

グループの確認

まず、作業前にグループを確認します。グループを確認するには、次のコマンドを実行します:

$ groups

実行例:

$ groups
seeck cdrom floppy sudo audio dip video plugdev netdev bluetooth

いくつかのグループが存在することが確認できます。

ここで重要なのは「sudo」や「wheel」の存在です。システムによって sudo 可能なグループを「sudo」で管理する、「wheel」で管理する、またはそれ以外で管理する場合があります。

この例では、 sudo グループで管理を行っていることが予想されます。

(参考) id コマンドや getent group コマンドで自分の所属状況を確認できます。以下の例では、ユーザ seeck は sudo グループに所属していないことがわかります:

$ id seeck
uid=1000(seeck) gid=1000(seeck) groups=1000(seeck), 24(cdrom), 25(floppy), 29(audio), 30(dip), 44(video), 46(plugdev), 108(netdev), 113(bluetooth)
$ getent group | grep seeck
cdrom:x:24:seeck
floppy:x:25:seeck
audio:x:29:seeck
dip:x:30:seeck
video:x:44:seeck
plugdev:x:46:seeck
netdev:x:108:seeck
bluetooth:x:113:seeck
seeck:x:1000:

昇格可能なグループに追加する

この例のシステムでは sudo グループに所属する必要があるため、root で次のコマンドを実行します:

# usermod -aG wheel seeck

sudo グループに所属したことを確認する:

$ cat /etc/group | grep sudo
sudo:x:27:seeck

(参考) wheel グループの場合は、次のコマンドを実行します:

# usermod -aG sudo seeck
$ cat /etc/group | grep wheel

動作確認

冒頭で実行できなかったコマンドが、実行できるようになったことを確認します:

$ sudo apt install ssh
[sudo] seeck のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
ssh はすでに最新バージョン (1:8.4p1-5+deb11u1) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 18 個。

※操作したユーザ (この例では seeck) がログインしているときは、ログアウトして再ログインしてから動作確認します

参考

/etc/sudoers ファイルで設定を確認できますが root 権限が必要です:

$ sudo cat /etc/sudoers | grep -vE '^\s*$' | grep -vE '^\s*#'
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
root    ALL=(ALL:ALL) ALL
%sudo   ALL=(ALL:ALL) ALL
@includedir /etc/sudoers.d

注意

  • 本操作例は、一般ユーザ seeck を sudo 昇格可能なグループに登録するものです
  • かんたんに説明しているため詳細は実際と異なる場合があります

スポンサードリンク

タイトルとURLをコピーしました