我正在编写一个 PHP 应用程序,并且希望能够向运行在我 ubuntu 服务器上的 mailman 添加新列表。出于某种原因,mailman 的 newlist 脚本需要 root 权限。有什么方法可以让 newlist 不需要 sudo 吗?显然我不能绕过 sudo,但有什么可能的方法可以实现这一点吗?
谢谢,丹尼尔
答案1
我很困惑,你怎么会认为 sudo 会成为障碍。你可以指定特定命令和特定用户 ID,这样就不需要密码了:
username all = (root) NOPASSWD: specific-command
如果单个或有限数量的命令不可用,则编写所需的功能脚本并将其用作 sudo 命令。
另一种方法是将所需的特定命令设置为 root 权限。但是,根据您所处的环境,可能会存在安全风险。
答案2
root 权限?
至少在 Debian(Ubuntu 所基于的)上,Mailmanlist
默认以用户和组的身份运行,并且当我从 shell 管理列表时,我以用户身份登录list
。
我认为将您的 Apache 用户添加到list
组就足够了。
为了更好的安全性,你也可以使用类似苏普并以用户身份运行您的列表管理用户list
,并让其他脚本由其他用户运行。