Linux 使用sudo su-user登录到新用户后,命令将不会传递到CLI
强制性的“第一个帖子”标签问题:输入aLinux 使用sudo su-user登录到新用户后,命令将不会传递到CLI,linux,bash,shell,ssh,scripting,Linux,Bash,Shell,Ssh,Scripting,强制性的“第一个帖子”标签问题:输入asudo su-userB的密码后,命令将不会传递到命令行 我正在用bash编写一个脚本,它需要作为特定用户运行。理想情况下,我们希望此脚本能够在本地工作站上运行,以便于使用。下面是我正在运行以测试的命令: ssh -qt -p22 userA@hostname "whoami; sudo su - userB; whoami" Expected: userA [sudo] password for userA: userB 有了这个命令,我可以得到提示
sudo su-userB的密码后,命令将不会传递到命令行
我正在用bash编写一个脚本,它需要作为特定用户运行。理想情况下,我们希望此脚本能够在本地工作站上运行,以便于使用。下面是我正在运行以测试的命令:
ssh -qt -p22 userA@hostname "whoami; sudo su - userB; whoami"
Expected:
userA
[sudo] password for userA:
userB
有了这个命令,我可以得到提示输入sudo密码,但一旦输入,我就会看到一个正常的终端,在那里我可以手动运行命令。一旦我按下ctrl-D/exit键,它将作为userA运行第二个whoami并关闭。我在一个非常封闭的环境中工作,因此sudo su-c和类似的“以root身份运行”命令不起作用,并且我无法直接用ssh连接到userB
是否可以通过使用sudo su-userB
登录将命令发送给userB?su
创建默认情况下从标准输入读取命令的子shell。退出后,它执行whoami
。您可以使用-c
选项向其传递命令
ssh -qt -p22 userA@hostname "whoami; sudo su - userB -c 'whoami'"
您也可以使用-u
选项来sudo
,而不是使用su
:
ssh -qt -p22 userA@hostname "whoami; sudo -u userB whoami"
su
创建默认情况下从标准输入读取命令的子shell。退出后,它执行whoami
。您可以使用-c
选项向其传递命令
ssh -qt -p22 userA@hostname "whoami; sudo su - userB -c 'whoami'"
您也可以使用-u
选项来sudo
,而不是使用su
:
ssh -qt -p22 userA@hostname "whoami; sudo -u userB whoami"
显示的第一个选项看起来仍然尝试以“root”身份运行。第二个选项更接近,但我认为环境太过封闭,无法按预期运行脚本。我们可能需要获得新的权限或访问权限。谢谢你提供的信息。我刚刚试用了第一个版本,它工作正常。我以前不小心在那里有-u
,现在试试。现在仍然没有运气。以root用户身份运行在此系统上不起作用:对不起,不允许用户userA以root用户身份在主机上执行“/usr/bin/su-userB-c whoami”。
非常奇怪,他们允许用户a运行su
,这允许用户a运行任何命令,但不要让它直接运行命令,它们有很重的安全策略,按照我所看到的,这些策略是以奇怪的方式分层的。我不是粉丝,但我得赶时间。我将不得不找出其他方法来收集我们需要的数据。第一个选项看起来仍然试图以“root”身份运行。第二个选项更接近,但我认为环境太过封闭,无法按预期运行脚本。我们可能需要获得新的权限或访问权限。谢谢你提供的信息。我刚刚试用了第一个版本,它工作正常。我以前不小心在那里有-u
,现在试试。现在仍然没有运气。以root用户身份运行在此系统上不起作用:对不起,不允许用户userA以root用户身份在主机上执行“/usr/bin/su-userB-c whoami”。
非常奇怪,他们允许用户a运行su
,这允许用户a运行任何命令,但不要让它直接运行命令,它们有很重的安全策略,按照我所看到的,这些策略是以奇怪的方式分层的。我不是粉丝,但我得赶时间。我必须想出其他方法来收集我们需要的数据。实际上没有“强制性的第一个帖子标签”,事实恰恰相反;)实际上没有“强制性的第一个帖子标签”,事实恰恰相反;)