bash - Mac OS X - 如何运行一个应用程序作为多个用户?

bash - Mac OS X - how to run an application as multiple users?

我需要 运行 同一个应用程序(cocoa 本机,而不是 X11)同时具有多个实例(不同的凭据)。

我正在 Mac OS X Sierra 和不同的 Skype 帐户上进行测试(任何 cocoa 应用程序都适合测试)。所以我创建了 2 个额外的 OS X 用户,以便隔离用户空间:u01 和 u02,以及主用户。

我从主用户的桌面打开终端:

sudo su u01 -c /Applications/Skype.app/Contents/MacOS/iTunes &

Activity 显示器说 iTunes 运行ning as u01,完美。

sudo su u02 -c /Applications/Skype.app/Contents/MacOS/iTunes &

相反,此 Skype 实例成为 u01 的 Skype 的子进程,并且 u02 不存在于 Activity 监视器中。

我尝试使用 ssh -X,但它似乎只适用于 X11。 Docker 是无头的并且仍然绑定在 X11 上(不考虑学习曲线)。也没有成功测试:本机沙箱,GNU 并行。我在 Sierra 上尝试使用 Joseph Beeson 的 RUNAS,它成功了,但无法从 bash 自动执行,自 2011 年以来没有更新,不适用于较新的 OS X。你有没有提示/解决方法?

经过大量阅读和多次尝试,我找到了一个可行的解决方案。

Joseph Beeson 的 RunAs 一直工作到 OS X Sierra / High Sierra。其他开发人员也制作了类似的应用程序,但从 Mojave 开始,所有这些应用程序都不再可用。可能这就是这些项目被放弃和删除的原因:你无法在任何地方找到这些应用程序,即使你 - 像我一样 - 使用 Sierra / High Sierra。

2 个月后,我通过 WayBackMachine 成功地检索到了原始的 RunAs,这是唯一的 link 下载它:https://web.archive.org/web/20150630193356if_/http://josephbeeson.com/uploads/RunAs.zip

它很慢而且可定制性不强:它会打开一个对话框 select 应用 运行 和用户 运行 它,但是我有一点 applescript能够完全自动化。为约瑟夫干杯!