LoginSignup
2
0

御託はいいからAlmaLinuxでsudoできるようにしたいという人はrootユーザで

usermod -aG wheel ユーザ名

を実行してください。

sudoしたいユーザで再ログインするとsudoできるようになります。

1.一般ユーザで特定のコマンドが実行できない

Linuxを触り始めると、rootユーザだと実行できるのに一般ユーザだと以下のようなメッセージが出てきてコマンド実行ができない事があります。

$ dnf update
Error: This command has to be run with superuser privileges (under the root user on most systems).

日本語の場合

エラー: このコマンドはスーパーユーザー特権(大概のシステムではrootユーザー)で実行しなければいけません。

これはコマンドを実行した一般ユーザが、管理者権限を持っていないためです。

2.コマンド実行権限

Linuxには、システムの設定を簡単に変更できないように、ユーザが実行する特定コマンドには相応の権限を付与し、その権限に応じて初めてコマンドをできるようにする仕組みがあります。
rootユーザの場合は実行できるが、一般ユーザだと実行できないのはこの仕組みのためです。

rootユーザは管理者権限を持っているためすべてのコマンドを実行する権限を持ち、一般ユーザは管理者が付与しない限り一部コマンドを実行できません。

これは一般ユーザの理解不足・typoによる誤操作や、侵入者による破壊行為によるシステム設定変更を防ぐためにあります。

しかし一般ユーザにもこの権限を一時的に付与し、すべてのコマンド実行を可能にする事ができます。
それがsudoです。

3.sudo

sudoは別のユーザとしてコマンドを実行するコマンドです。

sudoの使い方

sudoは、

$sudo dng update

のように実行したいコマンドの先頭にsudoとつけるだけです。

sudoを付けたけどなんか色々出てきて実行できないんだけど!というあなた。話はまだ終わってません。
sudoをつけて実行したら今度は次のように表示されたはずです。

[yoyo@AL ~]$ sudo dng update
    nbvc[\/l,ik8jn b  fd
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for yoyo:

これはsudoを実行(=管理者権限でコマンド実行)するにあたっての注意点と、あなたが使用しているユーザのパスワード入力を求められています。 大いなる力には大いなる責任が伴うと書いてありますね。
そしてパスワードを入力すると次のように表示されます。

yoyo is not in the sudoers file.  This incident will be reported.
#「yoyo(ユーザ)はsudoersファイルにないよ。これは報告しますからね!」という意味。

このメッセージにあるように、sudoを実行できるようにするにはユーザの情報をsudoersファイルに登録(sudoの設定)をしなければなりません。

sudoの設定

sudoの設定をするにはsudoersファイルを編集します。
sudoersファイルは/etc/sudoersにあります。これを編集すればいいのですが、このファイルを編集する場合はvisudoコマンドで編集します。vi /etc/sudoersなどで直接編集するのは推奨されません。

記載ルール

次のようなルールで記載することで設定できます。

user    host=(runas_user) command
意味
user 権限を与えるユーザー名
host 許可するホスト名。特定のホスト名やALLを指定
runas_user sudoを実行する際に指定するユーザー。省略可能で、通常はALLまたはroot
command 実行を許可するコマンド。複数のコマンドをカンマで区切って指定可能。ALLとすると全てのコマンドを許可

visudoでsudoersを開き、100行目付近を見てみると、次のように記載されています。

95 ##      user    MACHINE=COMMANDS
96 ##
97 ## The COMMANDS section may have other options added to it.
98 ##
99 ## Allow root to run any commands anywhere
100 root    ALL=(ALL)       ALL
101 

これはrootユーザがすべてのホストで、すべてのユーザですべてのコマンドを実行できるという意味です。

例えばyoyoユーザに同様の権限を与えたい場合は

yoyo    ALL=(ALL)       ALL

のように記載します。この1行を100行目の下に追加挿入すればOKです。

wheelグループへの追加

先ほどの書き方は、特定ユーザについて設定する方法でした。
下のほうの106,107行目に以下のような記載があります。

106 ## Allows people in group wheel to run all commands
107 %wheel  ALL=(ALL)       ALL

これはwheelグループにrootと同じ権限を指定している記述になります。
グループを指定したい場合は、グループ名の先頭に%記号をつけて記載します。

手軽にsudoできるようにしたい

AlmaLinuxでsudo実行できるように管理者権限を与えるには、wheelグループに追加するのが一番簡単です。冒頭で記載したのはこの方法になります。rootユーザでログインして以下コマンドを実行し、bash再読み込みで反映されます。bash再読み込みをさせるには再ログインが一番簡単です。

wheelグループへユーザ追加

usermod -aG wheel ユーザ名

実行例

usermod -aG wheel yoyo
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0