特定のコマンドのみにsudoアクセスを許可することは可能ですか?


24

背景: LAMPセットアップを備えた開発マシンがあります。何人かの開発者が時々マシンにアクセスします。構成ファイルに何らかの変更を加えるたびに、sudo service apache restartまたはを使用してApacheサーバーを再起動する必要がありますsudo /etc/init.d/apache2 restart

質問:

私が今欲しいのは、マシンにアクセスするすべての開発者がすべてにsudoでアクセスできるわけではないということです。むしろ、彼/彼女はservicesudo のみを使用してコマンドを実行できる必要があります。それは可能ですか?

回答:


35

はい。

新しいグループ、webを作成します(希望するものを呼び出します)

sudo addgroup web

Webグループに開発者を追加します(ログイン名を使用します)。

sudo adduser your_developer_user web

次に、実行しますsudo visudo -f /etc/sudoers.d/somefile(代わりに意味のある名前を使用しますsomefile)。

行を追加します(コマンドのフルパスを使用します)。

%web ALL=(ALL) /usr/bin/service apache2 *

その後、開発者は実行できます

sudo service apache

ログインパスワードを使用します。

管理者ユーザーをWebグループに追加しないでください。

詳細については、man sudoersを参照してください


1
@Ankit:その方法でwebグループのユーザーは任意のサービスを開始/停止できますが、これはあなたが望んでいることではないと思います。解決策は、正確なコマンド(およびパラメーターも含む)をに入れること/etc/sudoersです。
enzotib

@enzotib私はそれを行うことができますので、新しいコマンド/usr/bin/service apache2はそれですか?
アンキット

3
@アンキット:/usr/bin/service apache2 *
enzotib

これもおそらくあるはずです/usr/sbin/service
-Erfan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.