以不同用户身份通过​​ SSH 启动程序

以不同用户身份通过​​ SSH 启动程序

问题描述:

有两台 Mac,#2 一台使用 exampleuser 登录,#1 一台我以管理员身份登录。

exampleuser 根本没有 SSH 权限,因为它不是管理员。admin 拥有完全权限,而且我还知道 exampleuser 的密码。

我想做的事:

我想在 exampleusers Mac (#1) 上通过 SSH 打开一个程序。

当我测试它时,我授予了 exampleuser 权限并通过 SSH 以 exampleuser 身份连接 - 一切都通过“打开 /Applications/...”正常工作(但出于安全原因,我不能一直授予 exampleuser SSH 访问权限)。

我做了什么:

我使用管理员帐户通过 SSH 连接到 Mac #2,但当我启动程序时,它显然返回错误,因为它不是同一个用户。所以我尝试“su exampleuser”,但之后我并没有真正以 exampleuser 的身份连接,而是不知何故被困在一个我从未见过的奇怪 bash 中,所以它也不起作用。

因此我考虑以管理员身份连接,然后暂时授予 exampleuser ssh 权限以便直接连接,但我没有找到如何通过 SSH 更改 SSH 设置。

那我该怎么办呢?

答案1

“su”命令允许您“切换用户”上下文(包括“超级用户”)。我忘了哪个 SU 给“su”起了这个名字。

当您在输入 后运行某个程序时su <username>,您确实以该用户的身份运行它。但是,您不会拥有该用户的环境。

尝试su - <username>一下。它将加载用户的整个(命令行)环境。我假设您正在运行命令行程序,而不是尝试打开 MS Word 之类的 GUI。

答案2

你有没有尝试过

su -c <command> <user>

su [OPTION]... [-] [USER [ARG]...]
Description

Change the effective user id and group id to that of USER.

-, -l, --login
    make the shell a login shell 
-c, --command=COMMAND
    pass a single COMMAND to the shell with -c 

答案3

我假设您连接到 Mac1,因为 exampleuser 登录到 Mac2,exampluser 可以通过 SSH 进入 Mac2,并且您知道 exampleuser 的密码。鉴于此,您应该能够

[Mac1:~] $ ssh exampleuser:password@Mac2

然后,您应该能够使用它们的上下文运行该应用程序。如果该应用程序是基于 GUI 的,则需要使用open带有 -a 选项的命令。

[Mac2:~] $ open -a /Applications/Xcode.app

相关内容