我有一个需求。我的 sudo 用户(他们在 sudoers 文件中的条目)应该能够使用以下命令访问其他用户的帐户,比如 Oracle:
sudo su-Oracle 系统
以上操作应该适用于向当前用户提供密码。
但如果同一个用户执行以下命令:
须藤苏-
它不应该工作,因此不应该向当前用户提供 root 访问权限。
我没有使用 su 因为我不想让当前用户知道其他用户(root、Oracle 等)的凭据。
答案1
如果用户不知道 root 密码,他们可以整天使用 su -,但不会走多远。也就是说,如果在 sudoers 文件中输入如下一行:(我的 su 在该路径上)
Cmnd_Alias ORACLESU /bin/su - Oracle
那么用户只能运行该特定命令。
您还可以取消 root 用户对 su 命令的访问权限(例如,取消对名为 noroot 的组的访问权限)
%noroot ALL = /bin/su [!-]*,!/bin/su *root*
这与您在手册页中找到的内容非常接近,并且它确实限制了可以附加到 su 命令的内容(这可能是您想要的),还有更多选项,并且手册页和在线中有很多示例。