从 sudo su 运行命令

从 sudo su 运行命令

在一台机器上,我(tlous)被授予以另一个用户(serviceAccount)身份打开 shell 的权限

执行:sudo su - serviceAccount具有以此 serviceAccount 用户身份打开 shell 的预期效果。到目前为止,一切都很好。

这很好,但我想以该用户身份运行命令而不打开 shell。

假设命令是whoami

我试过了:

sudo -u serviceAccount whoami

抱歉,不允许用户 tlou 执行 '/usr/bin/whoami' 作为 serviceAccount ...

sudo su - serviceAccount -c whoami

抱歉,用户 tlou 不允许执行'/bin/su - serviceAccount -c whoami'...

以及其他变化。我缺少什么?这可以在 oneliner 中完成吗?原因是我实际上想将其作为 ssh 命令运行:ssh -t [email protected] sudo su - serviceAccount -c whoami

使用 sudo -l 更新 20190412

sudo -l

Matching Defaults entries for tlous on this host:
    !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY
    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, !authenticate

User tlous may run the following commands on this host:
    (root) /usr/bin/su - serviceAccount, /bin/su - serviceAccount

答案1

根据您的输出sudo -l,即:

User tlous may run the following commands on this host:
    (root) /usr/bin/su - serviceAccount, /bin/su - serviceAccount

你被给予明确的配置中sudoers运行两个特定命令的权限:

  • /usr/bin/su - serviceAccount
  • /bin/su - serviceAccount

添加更多参数,因为您正在尝试(例如sudo -u serviceAccount whoami)不在批准的命令列表中。

您需要请求系统管理员将sudoers您希望通过 访问运行的其他命令添加到配置中sudo

答案2

也许你可以尝试这个:

ssh-t[电子邮件受保护]“sudo -u serviceAccount whoami”

相关内容