允许用户重新启动服务

允许用户重新启动服务

我正在尝试以非 root 身份重启服务。以下是使用命令的代码片段

template {
  source      = "{{vault_template_dir}}/agent.crt.tpl"
  destination = "{{vault_tls_dir}}/agent.crt"
  command     = "/usr/bin/systemctl restart vault.service"
}

在研究和阅读类似问题后,我尝试通过编辑文件/etc/sudoers并添加以下行,为正在使用的组(user=vault,group=vault)提供有限的 sudo 命令:

%vault ALL=(root) NOPASSWD: /usr/bin/systemctl restart vault.service

但是,当我尝试运行该命令时仍然出现错误。错误日志文件:

Apr  4 23:27:41 xxxxxx vault[133973]: Failed to restart vault.service: Interactive authentication required.

保管库服务

[Unit]
After=network.service hostname.service consul-init.service consul.service
Description="Hashicorp Vault - A tool for managing secrets"
Documentation=https://www.vaultproject.io/docs/
StartLimitInterval=200
StartLimitBurst=5

[Service]
User=vault
Group=vault
ExecStart=/usr/bin/vault server -config="{{vault_server_config_file}}"
ExecReload=/usr/bin/kill -HUP $MAINIP
CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
LimitNOFILE=65536
LimitMEMLOCK=infinity
Restart=always
RestartSec=30

[Install]
WantedBy=multi-user.target

有人可以帮我解决这个问题吗?

答案1

您需要使用sudo来执行命令,因此您的模板需要如下所示:

template {
  source      = "{{vault_template_dir}}/agent.crt.tpl"
  destination = "{{vault_tls_dir}}/agent.crt"
  command     = "sudo /usr/bin/systemctl restart vault.service"
}

为了将来,请确保使用程序编辑sudoers文件visudo。如果您直接编辑/etc/sudoers,错误可能会导致您无法进入系统。

相关内容