Answers:
sudo
可以为您做到这一点:)
虽然它需要一些配置,但是一旦完成,您就只能这样做:
sudo -u user2 -s
并且您将以user2身份登录而无需输入密码。
要配置sudo,必须通过以下命令编辑其配置文件visudo
。注意:此命令将使用vi
文本编辑器打开配置,如果与之不符,则需要export EDITOR=<command>
在执行以下行之前设置另一个编辑器(使用)。另一个有时被认为更容易的命令行编辑器也可以nano
,所以您可以这样做export EDITOR=/usr/bin/nano
。您通常需要超级用户特权才能visudo
:
sudo visudo
该文件的结构由不同的部分组成:别名,然后是默认值,最后是规则。这是您需要添加新行的地方。因此,您可以在文件末尾导航并添加以下内容:
user1 ALL=(user2) NOPASSWD: /bin/bash
您也可以替换/bin/bash
为ALL
,然后您可以以user2身份启动任何命令而无需输入密码: sudo -u user2 <command>
。
如果您希望能够切换到任何用户,请使用
user1 ALL=(ALL) NOPASSWD: /bin/bash
我刚刚看到了您对Skype的评论。您可以考虑将Skype直接添加到sudo的配置文件中。我假设您在“ 应用程序”文件夹中安装了Skype :
user1 ALL=(user2) NOPASSWD: /Applications/Skype.app/Contents/MacOS/Skype
然后,您将从终端呼叫:
sudo -u user2 /Applications/Skype.app/Contents/MacOS/Skype
su - user2
而不是su user2
命令,可能应该全部包含这些命令sudo -u user2 -i
,以便模拟以user2身份进行的初始登录
我将为第二个帐户设置公共/私有ssh密钥,并将密钥存储在第一个帐户中。
然后,您可以运行以下命令:
ssh user@localhost -n /Applications/Skype.app/Contents/MacOS/Skype &
您仍然会遇到Skype感到困惑的问题,因为两个实例正在一个用户帐户上运行,并且该程序读取/写入的文件可能会发生冲突。它还可以很好地满足您的需求,并且您不需要iPod touch即可运行第二个Skype实例。
expect
编写交互脚本之类的工具安全得多。我只使用sudo su - blah
并输入密码。我认为其他答案涵盖了sudo,足以将其保留为评论。
sudo -u user2 <...>
)确实具有不能远程使用的优势,这可能有助于提高安全性-没有用户1的私钥可以被盗用。