Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了systemd – 允许非root用户重新启动服务大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

背景 : 我用Spring-boot创建了一个名为myapp的应用程序.它由一个自执行jar组成,与systemd服务兼容.现在,我正在尝试将其与jenkins整合. 我想要的是: 我希望jenkins能够: >停止服务. >更换罐子. >重启服务. 问题: 到目前为止,只有sudoers可以启动/停止服务.我不希望jenkins成为一个sudoer(它看起来很混乱). 目前的结构: 我有一个用户
背景 :

我用Spring-boot创建了一个名为myapp的应用程序.它由一个自执行jar组成,与systemd服务兼容.现在,我正在尝试将其与jenkins整合.

我想要的是:

我希望jenkins能够:

>停止服务.
>更换罐子.
>重启服务.

问题:

到目前为止,只有sudoers可以启动/停止服务.我不希望jenkins成为一个sudoer(它看起来很混乱).

目前的结构:

我有一个@L_310_7@myapp,它有一个/ home / myapp文件夹.生成的jar称为myapp,位于/ home / myapp.@L_310_7@myapp是生成的jar的所有者:

@H_448_34@myapp@myserver:~/BACkend$ll @R_211_10586@l 53900 drwxrwxr-x 2 myapp myapp 4096 Apr 25 17:09 ./ drwxr-xr-x 6 myapp myapp 4096 Apr 25 17:08 ../ -rw-rw-r-- 1 myapp myapp 511 Apr 20 16:13 application.properties -rwxr--r-- 1 myapp myapp 55175294 Apr 20 19:06 BACkend-1.0-SNAPSHOT.jar* lrwxrwxrwx 1 myapp myapp 24 Apr 20 19:20 myapp -> BACkend-1.0-SNAPSHOT.jar* -rw-r--r-- 1 myapp myapp 179 Apr 20 19:26 myapp.service

我放了一个ssh密钥,以便jenkins可以作为myapp @ myserver登录.

由于myapp是jar的所有者,我认为可能有一个选项允许@L_310_7@myapp调用systemctl启动/停止myapp.实际上,我可以调用systemctl status myapp但不能启动/停止(询问root密码).

有什么建议?

解决方法

sudo是要走的路.创建一个新组(例如aPPADR_546_11845@in),将jenkins用户放入其中,并使用visudo添加一个包含有限命令列表的新条目,例如:
Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start myapp,/bin/systemctl stop myapp
%aPPADR_546_11845@in ALL=(ALL) MYAPP_CMNDS

如果您希望aPPADR_546_11845@in组能够在不输入密码的情况下操作服务(例如,如果用户仅通过SSH密钥进行身份验证,则非常有用),

Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start myapp,/bin/systemctl stop myapp
%aPPADR_546_11845@in ALL=(ALL) NOPASSWD: MYAPP_CMNDS

大佬总结

以上是大佬教程为你收集整理的systemd – 允许非root用户重新启动服务全部内容,希望文章能够帮你解决systemd – 允许非root用户重新启动服务所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。