Systemd
允許使用者重新啟動服務
我正在嘗試在沒有 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
有人可以幫我解決這個問題嗎?
您需要使用
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
,一個錯誤可能會將您鎖定在系統之外。