sudo権限の付与方法:特定のユーザーに管理者権限を安全に与える
この記事では、Linuxシステムで特定のユーザーに管理者権限(sudo権限)を安全に付与する方法について解説します。誤った設定はセキュリティリスクにつながるため、正しい手順を理解することが重要です。
この記事でわかること
  • sudoコマンドの基本的な役割
  • visudoコマンドを使ったユーザーへのsudo権限付与方法
  • sudoグループ(またはwheelグループ)の利用について
  • 設定ミスを防ぐための注意点
  • 付与したsudo権限の確認方法

sudoとは?なぜ特定のユーザーに権限を与えるのか

sudo(superuser do)コマンドは、一般ユーザーが一時的にrootユーザー(管理者)の権限でコマンドを実行するためのものです。通常、Linuxシステムではセキュリティのためにrootユーザーでの直接ログインは推奨されません。しかし、システムの管理作業を行う際には管理者権限が必要になります。このとき、特定の信頼できるユーザーにのみsudo権限を与えることで、セキュリティを保ちつつ必要な作業を行えるようにします。


visudoを使ったsudo権限の付与

sudo権限を付与する最も安全で推奨される方法は、visudoコマンドを使用することです。visudoは、sudoの設定ファイルである/etc/sudoersを編集するための専用ツールです。このコマンドを使うことで、文法チェックが行われ、誤った設定によるシステムロックアウトを防ぐことができます。

ユーザーをsudoグループに追加する

多くのLinuxディストリビューションでは、特定のグループに所属するユーザーにsudo権限が与えられるように設定されています。この方法が最も一般的で推奨されます。ディストリビューションによってグループ名が異なり、Ubuntu系ではsudo、CentOSやRed Hat系ではwheelグループが主に利用されます。

コマンド例

特定のユーザー(例: your_username)をsudoグループに追加するには、以下のコマンドを実行します。

sudo usermod -aG sudo your_username

CentOSやRed Hat系のLinuxでは、wheelグループを利用します。

sudo usermod -aG wheel your_username
コマンド 意味
sudo root権限でコマンドを実行します。
usermod ユーザーアカウントの情報を変更するコマンドです。
-aG -aは既存のグループから削除せずに新しいグループに追加し、-Gはユーザーが所属する追加のグループを指定します。
sudoまたはwheel 追加するグループ名です。お使いのシステムに合わせて選択してください。
your_username 権限を付与したいユーザー名に置き換えてください。

このコマンド実行後、ユーザーは一度ログアウトし、再度ログインし直す必要があります。これにより、新しいグループメンバーシップが適用されます。

sudo権限グループを調べたいとき

自分のシステムでどのグループがsudo権限を持つか分からない場合は、以下のコマンドで/etc/sudoersファイルの内容から調べられます。

grep -E '^%.*ALL' /etc/sudoers

このコマンドは、パーミッションが付与されているグループ(%で始まる行)を抽出します。

/etc/sudoersを直接編集する場合(非推奨:緊急時のみ)

上記の方法が何らかの理由で使えない場合、visudoを使って/etc/sudoersファイルを直接編集することも可能です。しかし、これは慎重に行う必要があります。

コマンド例

sudo visudo

visudoを実行すると、通常はviエディタで設定ファイルが開きます。ファイル内で以下の行を探し、編集します。

# Allow members of group sudo to execute any command
	%sudo   ALL=(ALL:ALL) ALL

もし、特定のユーザーにのみ権限を与えたい場合は、この行の下などに以下の形式で追記します。

your_username ALL=(ALL:ALL) ALL
項目 意味
your_username 権限を付与したいユーザー名です。
ALL どのホストからでもコマンド実行を許可します。
(ALL:ALL) どのユーザー、どのグループの権限でコマンド実行を許可するかを指定します。最初のALLは対象ユーザー、2番目のALLは対象グループです。
ALL どのコマンドでも実行を許可します。特定のコマンドのみ許可する場合はここにコマンドパスを記述します。

設定ファイルの例(your_usernameに全権限を付与する場合)

# This file MUST be edited with the 'visudo' command.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# Specific user access (Example)
your_username ALL=(ALL:ALL) ALL

注意点: /etc/sudoersを直接編集する際は、必ずvisudoコマンドを使用してください。通常のテキストエディタで編集すると、構文エラーがあった場合にsudoコマンドが一切使えなくなり、システムにログインできなくなる可能性があります。


sudo権限が正しく付与されたか確認する

ユーザーがsudo権限を持っているかどうかは、ログインし直した後で以下のコマンドを実行することで確認できます。

sudo whoami

実行結果が root になれば、権限付与は成功です。

付与されたsudo権限の詳細を確認する

現在のユーザーに許可されているsudoコマンドの一覧や、より詳細な権限設定を確認するには、以下のコマンドが便利です。

sudo -l

このコマンドは、ユーザーがパスワードなしで実行できるコマンドや、特定のユーザー・グループとして実行できるコマンドなど、細かな設定を表示します。


この状況で困ったらコレ!
sudoが使えなくなった!

sudo権限を持つユーザーを誤って削除してしまったり、/etc/sudoersファイルを誤って編集してしまったりした場合、sudoコマンドが使えなくなることがあります。

対処法

  1. システムをシングルユーザーモードで起動する: GRUBメニューなどでLinuxカーネル起動時に「e」キーを押し、起動オプションにinit=/bin/bashなどを追加して起動します。これにより、root権限でシェルにアクセスできます。
  2. /etc/sudoersを修正する: シングルユーザーモードでログイン後、/etc/sudoersファイルを直接編集して問題を修正します。この際も慎重に作業してください。
  3. 再起動する: 修正後、システムを再起動します。

まとめ

sudo権限の付与は、Linuxシステム管理において非常に重要な作業です。セキュリティを確保するためにも、以下の点を守るようにしましょう。

  • visudoコマンドを常に使用する
  • できる限りユーザーをsudoグループ(またはwheelグループ)に追加する方法を用いる
  • 不必要なユーザーにはsudo権限を与えない
  • 権限付与後は必ず確認を行う

これらの基本を守ることで、安全かつ効率的なLinuxシステム運用が可能になります。

この記事が、皆さまの日々のLinux管理やシステム運用の一助となれば幸いです。
ご覧いただきありがとうございました。

私たちは、お客さまが私たちのウェブサイトをどのように使用するのかを理解し、お客さまの体験を改善するために Cookie を使用しています。 閲覧を続けると Cookie の使用に同意したことになります。
拒否した場合、このウェブサイトにアクセスしてもお客さまの情報は追跡されません。 情報を追跡しない設定を記憶するために、ウェブブラウザで 1 つだけ Cookie が使用されます。