两个用户(管理员 + 非管理员)su/sudo 的正确用法是什么?

两个用户(管理员 + 非管理员)su/sudo 的正确用法是什么?

我在 macos 上有两个用户。U1一个是非管理员用户,一个U2是管理员用户。

我无法添加U1到 sudoers。有没有办法使用它U2来充当它正在U1发出sudo <command>

我的想法:

  1. U1> su U2
  2. U2> sudo -u U1 <command>

U1这是实现与问题相同的结果的正确方法吗sudo <command>

我尝试在第 1 行之前设置环境变量U1,然后在第 2 行中用 打印出来,结果成功了,我得到了正确的值。但我仍然不确定这是否是代表sudo -u U1 echo $VAR安装复杂软件包等的正确过程。U2U1

有任何更正/建议吗?

答案1

如果我明白你想做什么,请省略-u U11

  1. U1> su U2
  2. U2> sudo <command>

请注意,您必须在每个步骤中都进行身份验证;在两个步骤中,您都需要使用 U2 用户的密码。

解释:susudo都是有效切换用户身份(或者更准确地说,以不同的用户身份运行命令)的方法。通常,当您使用 时sudo,它是运行命令以 root 用户身份。您可以使用sudo -u someotheruser以 root 以外的其他人/事物的身份运行命令,但默认情况下sudo以 root 身份运行命令,这大概就是您想要做的。

(人们有时会说“作为sudo”来管理事物,但这是无稽之谈;他们实际上谈论的是使用sudo作为管理事物的工具以 root 身份

你的问题中的步骤是 1)使用su从 U1 切换到 U2,然后 2)使用sudo -u U1切换后退到 U1,你就回到原来的位置了。

相关内容