root以外の特定のユーザーがCentOS7で特定のシステムサービスを開始/停止できるようにしたいと思います。しかし、これまで試してきたステップのどれも成功しませんでした。私が試したことは次のとおりです。
sudoers ファイルに次の詳細を追加しました。ここでtestudoはユーザーグループであり、複数のユーザーがグループに追加されました。
## Manage specific systemd services
Cmnd_Alias SYSTEMD = /bin/systemctl start httpd, /bin/systemctl stop httpd, /bin/systemctl restart httpd
## Allows nfam group to run init-system commands using the SYSTEMD command alias
%testsudo ALL=NOPASSWD: SYSTEMD
グループと追加されたユーザーの詳細:
# cat /etc/group | grep testsudo
testsudo:x:1009:userone,usertwo,userthree
ユーザー(testudoグループの一部)を使用してサービスを開始しようとすると、認証が必要であることを示すメッセージが表示されます。
[userone@msgdroid ~]$ systemctl start httpd
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Multiple identities can be used for authentication:
1. admin
2. priya
3. sekar
4. gokul
5. ravi
6. murali
Choose identity to authenticate as (1-6):
アップデート1:
私も使ったSudoコマンドの前にありますが動作しません。
$ sudo systemctl start httpd
[sudo] password for userone:
Sorry, user userone is not allowed to execute '/bin/systemctl start httpd' as root on webapp.
アップデート2:
- 変更すると、サーバーはパスワードではなくSSHキーを介してのみアクセスできます。これが問題になる可能性がありますか?
答え1
私はこれを試すことをお勧めします:
sudo systemctl start httpd
sudoersファイルを変更したら、ログアウトしてから再度ログインする必要があります。 (そうしないと使用できない場合がありますsudo
。)
以下を編集して置き換えることもできます。
%testsudo ALL=NOPASSWD: SYSTEMD
そして
%testsudo ALL=(root) NOPASSWD: SYSTEMD
答え2
使用している場合はsudoers
これを使用する必要sudo
がありますが、スクリプトまたはエイリアスから使用を非表示にすることができます。
ユーザーがまだグループに参加していないのが問題かどうか疑問に思います。新しいグループ、書き込み専用ファイル(/etc/groups
)にユーザーを追加します。アクティブにするには、新しいグループで新しいプロセスを開始する必要があります。これを行う2つの簡単な方法があります。 1. ログアウトして再度実行しますnewgrp groupname
。これにより、現在のシェルの上に新しいシェルが起動します。あなたがそのグループのメンバーである場合にのみ(文書に従って)/etc/groups
新しいグループに追加されます。