在一台机器上,我(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”