我目前正在开发一个可以在多个服务器中自动运行命令的应用程序。
如果我更改服务配置,则需要重新启动(或重新加载)它,因此某些命令需要 root 权限。为了使其正常工作,我已将用户密码加密并保存在文本文件中,以便在 sudo 命令期间使用它。我相信这是一个重大威胁,但我也不想让应用程序以 root 权限运行。
有任何想法吗?
答案1
您可以限制用户可以通过以下方式运行哪些命令须藤。此外,您还可以提供禁止密码选择sudoers该用户上下文中的文件,而不是使用加密密码“功能”。
下面是一个允许非特权用户重新启动的示例iptables服务:
geewid ALL = (root) NOPASSWD: /sbin/service iptables restart, /sbin/service iptables reload
命令列表以逗号分隔...
您还可以使用命令别名特征:
Cmnd_Alias FOOBAR = /sbin/service iptables restart, /sbin/service iptables reload
geewid ALL = (root) NOPASSWD: FOOBAR