我希望能够在非 root 身份下重新启动 Ubuntu 中的服务。
$ whoami
Ubuntu
然后我做了:
须藤维须藤
我添加了一行:
ubuntu ALL = NOPASSWD: /usr/sbin/service javaspringapi restart
并保存文件。生成的 sudoers 文件:
sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
ubuntu ALL = NOPASSWD: /usr/sbin/service javaspringapi restart
现在,当我尝试运行命令时:
/usr/sbin/service javaspringapi 重新启动
我仍然得到:
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'javaspringapi.service'.
Authenticating as: Ubuntu (ubuntu)
Password:
答案1
仅当您运行时才会引用 sudoers 文件sudo
(因此得名)。
因此你应该能够使用以下命令重新启动服务
sudo /usr/sbin/service javaspringapi restart
无需输入密码,因为这是您所配置的。