sudo -i 给出错误

-2 linux sudo

我创建了一个 user1 并尝试使用将用户切换到 user2 帐户sudo -i user2。但是我收到此错误:

Sorry, user user1 is not allowed to execute '/bin/bash -c user2' as root on hostname.
Run Code Online (Sandbox Code Playgroud)

请在这方面协助我。

tel*_*coM 6

sudo -i user2user2根本不切换到。它的字面意思是“user2在与 root 登录环境匹配的环境中以 root 身份运行命令”。

要切换到user2,命令需要包含该-u user2选项。

如果sudo -iu user2不起作用,那么也许您有某种脚本、别名或 shell 函数可以进一步修改命令?请运行type -a sudocommand -v sudo来了解运行该命令时实际执行的内容。

或者,如果您有一个非常非常旧的系统,它可能无法像现代系统那样理解所有选项sudo。但这意味着该系统已经有 20 多年的历史了……

尝试运行:它应该列出所有适用于您的sudo -l当前条目。/etc/sudoers

/etc/sudoers允许user1运行 shell 的条目user2如下:

user1 ALL=(user2) /bin/bash
Run Code Online (Sandbox Code Playgroud)

或允许运行任何命令user2

user1 ALL=(user2) ALL
Run Code Online (Sandbox Code Playgroud)

(第一个ALL代表主机名。除非您处于使用共享文件的大型环境中sudoers,否则它通常不被ALL使用并用作占位符,以避免sudo主机名解析出现问题时出现困难。)