登录Royal TS后输入"sudo su -"

3
我已经设置了Royal TS来自动登录我的用户名到多台Linux机器上。我想让它在连接后自动运行sudo su -,输入我的密码,这样我只需简单地双击连接就能成为root用户。
我已经成功创建了一个关键序列任务,如下所示:
{WAIT:1000}
sudo su -
{WAIT:500}
$this.EffectivePassword$

它可以工作,但我遇到的问题是,在登录时,密码会以明文形式显示在屏幕上。我尝试了使用{WAIT:1000},但仍然会显示。

有没有人有一个可行的配置示例呢?

谢谢!


从另一个角度考虑,为什么不在sudoers中使用NOPASSWD呢?只是为了澄清,这意味着不需要输入密码。 - dwjv
5个回答

2
如果你不想成为root用户,我在这里找到了一个不错的技巧:

https://royalapplications.uservoice.com/forums/310954-toolbox/suggestions/15222090-automating-sudo-password-confirmation-in-royal-tsx

在iTerm2连接属性中选择“触发器”,并添加新的触发器:
Action: send text 
Regular expression: ^\[(sudo)\]\s(password)\s(for)\s($EffectiveUsername$)\:\s$(?!.)(?!\n) 
Parameters: $EffectivePassword$\n

Enable "Instant" checkbox 
Click add

Regular expression made for common linux sudo prompt, and will start to work in next connection.

enter image description here


2

我知道这是一篇旧文章。完成后,我采取了简单的方法,只需清除屏幕:

{WAIT:10}sudo -i{WAIT:10}{ENTER}$this.EffectivePassword${ENTER}
clear{ENTER}

1
我的做法是像在键盘上实际输入命令一样,再加入一个回车符。您先输入sudo su,然后按回车键,再输入密码,再按一次回车键。我需要等待一段时间,但不像您最初输入的那么长。
{WAIT:20}sudo su -{WAIT:10}{ENTER}$this.EffectivePassword${ENTER}

1
我发现以下密钥序列有效。 原理是在输入正确密码之前进行一些键盘任务。 因此,我输入了abc字符并将其删除。 还要记住回车符后有一个隐式换行符。
{WAIT:500}sudo su - {WAIT:500}

{WAIT:100}abc{BACKSPACE}{BACKSPACE}{BACKSPACE}$this.EffectivePassword${ENTER}

-1

我知道这已经晚了4年,但如果你的密码正在显示,你需要确保它没有在多个地方输入。


2
不是真正的答案,但是与问题有关的建议。 - ggonmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接