问题描述:
有两台 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