为除 root 之外的所有人添加 sudoer

为除 root 之外的所有人添加 sudoer

这是我的问题的基础:我想sudo为用户添加权限,但出于root安全原因不使用它。

我有一个 PHP 脚本需要drush通过 运行命令 ( ) exec()。但是,PHP 是以用户身份运行的,而我希望以另一个用户身份执行该命令。这是必需的,因为如果不这样做,则存在在其他用户的目录中写入的权限问题。

drush命令本身有效,我已将其提供给所有用户。

当前用户(A)是创建其他帐户/用户(B)的 cPanel 经销商。

我可以exec('ls -la')以用户 A 的身份运行,只要我们在用户 A 的主目录中,它就会返回 CWD 的内容。添加的相同代码sudo会失败,因为用户 A 不在 sudoers 列表中。

最后的命令将文件下载到用户 B 的目录,如下所示: '<pwd> | sudo -S -u <usrB> drush dl drupal <irrelevant options>'

-S应该使用用户 B 的密码自动以用户 B 的身份执行命令。

以 root 身份运行完全相同的命令可以完美运行。

我想知道是否有办法将用户 A 添加到 sudoers 中而无需 root 访问权限,以及这是否可以安全地防止潜在的安全漏洞。如果不可能,还有其他方法吗?我看到有人可以使用 从 sudoers 中排除目录!,但后来我意识到这样做会有很大缺陷。

请注意,我是一名开发人员,因此尽管我知道一些基础知识,但我并不是专业人士。服务器运行的是 CentOS 6.5、WHM/cPanel,如果需要,我有 root 访问权限。这个想法是一次性设置将防止在创建新用户时进行配置。

答案1

CentOS 6.5 在默认 sudoers 文件中有示例。假设用户是“user_a”,并且要运行的命令是 ls,但仅在本地主机上

user_a localhost=/bin/ls

如果你想要多个命令,请用逗号分隔这些命令

有关更多信息,man sudoers 中有示例。http://www.sudo.ws/sudoers.man.html

相关内容