web-dev-qa-db-ja.com

sudoなしで通常のユーザーとしてサービスとして開始/停止するにはどうすればよいですか

Ubuntuマシンにカスタムアプリケーションをインストールしています。ここで、Sudo権限のない通常のユーザーを使用して、アプリケーションをサービスとして開始/停止します。

私のアプリケーションのインストールパス:-

/usr/local/myapp

注:私のアプリケーションは、アプリケーションの実行中に処理するために、/ tmpの下にいくつかのフォルダーとファイルを作成します。

Ubuntuマシンにログインした後、Sudoを使用せずに以下のコマンドのように起動したい

service myapp start

どうすれば達成できますか?

4
Galet

Sudo visudoを使用してsudoersファイルを編集し、行を追加します

USER        ALL = NOPASSWD: /usr/sbin/service /usr/local/myapp *

この場合、この特定のコマンドにパスワードを入力する必要はありません。

その他の可能性:サービスの開始を含むスクリプトを作成し、スクリプトのsuidビットを設定して、ルート(Sudo chown root /usr/local/bin/startMyappService)が所有するようにします。

セキュリティの落とし穴に注意してください!そのようなファイルには、誰に対しても書き込み許可を与えてはいけません!絶対パスを使用します。何をしているのかを常によく考えてください!

3
Philippos