非ルートユーザーにmysqldサービスを開始するためのアクセス権を与える

非ルートユーザーにmysqldサービスを開始するためのアクセス権を与える

非ルート ユーザーがいてabc、そのユーザーに、または-sudoのみの権限を付与したいと考えています。つまり、 どうすればいいでしょうか?restartstartstopmysqld servicesudo service mysqld restart

私もユーザーグループに同じことをしたいと思います!!

答え1

/etc/sudoersに次の行を追加する必要があります

dba01 ALL=/sbin/service mysqld を起動
dba01 ALL=/sbin/service mysqld を停止
dba01 ALL=/sbin/service mysqld を再起動

この設定により、dba01 ユーザーは 3 つのコマンドをすべて実行できるようになります。

出力は次のようになります

[dba01@APP01 ルート]$ sudo /sbin/service mysqldを再起動します
[sudo] dba01のパスワード:
mysqld をシャットダウンしています: [ OK ]
mysqldを起動しています: [ OK ]

他のサービスを実行しようとすると

[dba01@APP01 ルート]$ sudo /sbin/service ip6tables を再起動します
申し訳ありませんが、ユーザー dba01 は APP01 上で root として '/sbin/service ip6tables restart' を実行することはできません。

答え2

グループに実行権限を与えるとsudo service、任意のサービスを再起動する権限がグループに与えられます。私は単に init スクリプトへのアクセスを許可します。

これを行うには、sudoersファイルに次の行を追加します。

%groupName ALL=(ALL) NOPASSWD: /etc/init.d/mysql

その後、グループメンバーは実行できるようになります

sudo /etc/init.d/mysql restart
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql restart

関連情報