我创建了一个 user1 并尝试使用将用户切换到 user2 帐户sudo -i user2
。但是我收到此错误:
Sorry, user user1 is not allowed to execute '/bin/bash -c user2' as root on hostname.
请在这方面协助我。
答案1
sudo -i user2
user2
根本不切换到。它的字面意思是“user2
在与 root 登录环境匹配的环境中以 root 身份运行命令”。
要切换到user2
,命令需要包含该-u user2
选项。
如果sudo -iu user2
不起作用,那么也许您有某种脚本、别名或 shell 函数可以进一步修改命令?请运行type -a sudo
或command -v sudo
来了解运行该命令时实际执行的内容。
或者,如果您有一个非常非常旧的系统,它可能无法像现代系统那样理解所有选项sudo
。但这意味着该系统已经有 20 多年的历史了……
尝试运行sudo -l
:它应该列出所有/etc/sudoers
适用于您的当前条目。
/etc/sudoers
允许user1
运行 shell 的条目user2
如下:
user1 ALL=(user2) /bin/bash
或允许运行任何命令user2
:
user1 ALL=(user2) ALL
(第一个ALL
代表主机名。除非您处于使用共享文件的大型环境中sudoers
,否则它通常不被使用并ALL
用作占位符,以避免sudo
主机名解析出现问题时出现困难。)