我经常有几台计算机要交换,仅用于将sudo su我的会话的剩余时间用于某些特殊用途的用户。常规工作流程为:
mymachine:~ me$ ssh me@othermachine
othermachine:~ me$ sudo su - specialuser # note: no password needed
othermachine:~ specialuser$ # do stuff
我想将其简化为一个可以别名的直线,因此我可以为每台计算机设置一个别名,并通过单个命令到达需要的位置,而无需键入sudo su - specialuser样板。我可能会成立me@othermachine到sudo su上登录,但我想继续作为操作的灵活性me,如果我需要。
(请注意:我无法控制othermachine或设置方式;这是我在受聘时进入的既定工作流程。)
我的第一个念头是
ssh me@othermachine "sudo su - specialuser"
这样的作品,但是却没有任何提示,要^C杀死它然后将我注销,我认为其他各种情况也可能是错误的。
在阅读了具有完全登录Shell的Run Remote ssh命令之后,我尝试了一些更奇特的操作,例如
ssh me@othermachine 'bash -l -c "sudo su - specialuser"'
和
ssh me@othermachine 'bash -l -c "sudo su - specialuser"; bash'
-我都不希望工作,他们也不希望工作,但是我认为我应该尝试使其完整(并避免重复);它们产生的相同提示无壳(具有一个额外的好处提示无壳的第二对me后exit从一个用于-ing specialuser)。我试过了
ssh me@othermachine "sudo su - specialuser -c bash -l"
但这只是让我
sudo: no tty present and no askpass program specified
更好的主意?
我的想法是在不希望的情况下
—
大卫·摩尔
sudo我应该打^C吗?如果我无法提出更好的建议,我可以尝试一下。
你可以
—
AFH 2015年
su me从specialuser。或.profile或.bashrc,如果你不遵循sudo用 exit,你的第一个exit将带你回me,用第二结束会话。甚至使用标志文件,因此sudo由之前[ -f ~/.keep.me ] && del ~/.keep.me和之后[ \! -f ~/.keep.me ] && exit:那么你只需要一个脚本或别名命令me的:>~/.keep.me; exit。现在exit将结束您的会话并me返回您的登录会话。
~/.profile短暂延迟后将sudo命令添加到该怎么办?