📖

FedoraサーバーでRails開発するのにsudoが使えない

に公開

起こった事象

・fedoraサーバーにRubyOnRailsの開発環境を構築
・開発ユーザーとして「rails」を作成(rootユーザーでは開発ができないので)
・データベースはmysqlを使用
・ユーザー「rails」でmysqlを操作した際にエラーが発生

$ sudo systemctl status mysqld
[sudo] rails のパスワード:
rails は sudoers ファイルにありません。

現在ログインしているユーザー「rails」にはsudo権限がない為、mysqldの起動や設定変更といった管理者レベルの操作ができないとの事。

解決方法

$ su -
パスワード: rootのパスワードを入力
 # rootユーザーに切り替え

% usermod -aG wheel rails
 # wheelグループはデフォルトでsudoを使用できる
 # -G オプション:セカンダリーグループを変更する
 # -a オプション:「-G」オプションで指定したグループをセカンダリーグループに追加

% exit

$ whoami
rails

$ sudo systemctl status mysqld
[sudo] rails のパスワード:
● mysqld.service - MySQL 8.0 database server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Tue 2025-06-03 10:15:06 JST; 7h ago
 Invocation: a0b8baef52194e43aadb6913e96cf628
   Main PID: 1102 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 4554)
     Memory: 416.6M (peak: 429.4M)
        CPU: 1min 10.596s
     CGroup: /system.slice/mysqld.service
             └─1102 /usr/libexec/mysqld --basedir=/usr

 6月 03 10:15:06 fedora systemd[1]: Starting mysqld.service - MySQL 8.0 database server...
 6月 03 10:15:06 fedora systemd[1]: Started mysqld.service - MySQL 8.0 database server.

無事sudoが使用できるようになった。

(補足)
※「usermod -g wheel rails」 はNG
gオプションはユーザーの主グループが変更され、元のグループ情報が失われるため、予期せぬ問題が発生する可能性があるので注意が必要。

Discussion