我认为这可能是配置问题,但我正在寻找确认/建议。
在终端或脚本中,以下内容:
user1$ sudo su - user2 -c "pwd"
提示我输入原始user1的密码。但是,以下内容:
user1$ sudo su - user2
user2$ pwd
user2$ /home/user2
工作正常。
sudo-l显示了user1切换到user2的正确权限,对于为什么通过-c参数传递命令失败的原因我有些困惑,但是单独执行每个步骤就可以了。
预先感谢您的建议。
答案 0 :(得分:-1)
来自man sudoers:
runaspw
如果设置,则sudo将提示输入由runas_default选项定义的用户密码(默认为root),而不是运行命令或编辑文件时调用用户的密码。默认情况下,此标志为关闭。
... targetpw
如果设置,则sudo将提示您输入-u选项指定的用户密码(默认为root),而不是运行命令或编辑文件时调用用户的密码。请注意,此标志禁止将未在passwd数据库中列出的uid用作-u选项的参数。 默认情况下,此标志为关闭。
您需要检查/ etc / sudoers文件。添加到它:
Defaults targetpw
要使sudo始终要求目标使用密码。