iniciar programa via SSH como usuário diferente

1

Descrição do problema:

existem dois Macs, # 2 um logado com exampleuser e # 1 estou logado como administrador.

exampleuser não possui direitos SSH, pois não é um administrador. admin tem todos os direitos e eu também sei a senha para exampleuser.

O que eu quero fazer:

Eu quero abrir um programa via SSH em exampleusers Mac (# 1).

Como eu testei, dei exemplos de direitos aos usuários e os conectei como exampleuser via SSH - tudo funcionou muito bem com "open / Applications / ..." (Mas por razões de segurança eu não posso dar o acesso do usuário SSH o tempo todo) .

O que eu fiz:

Eu usei a conta de administrador para me conectar ao Mac # 2 via SSH, mas quando iniciei o programa, ele obviamente retornou o erro, pois não é o mesmo usuário. Então eu tentei "su exampleuser", mas depois disso eu não estava realmente conectado como exampleuser, mas em vez disso eu estava de alguma forma preso em uma festa estranha que eu nunca vi antes, então não funcionou também.

Então, eu pensei em conectar-me como administrador e, em seguida, dar temporariamente os direitos do usuário ssh para poder se conectar diretamente, mas não descobri como alterar as configurações do SSH via SSH.

Então, como eu poderia fazer isso?

    
por David 26.03.2014 / 21:51

3 respostas

1

O comando "su" permite que você mude o contexto do usuário (incluindo "superusuário"). Eu esqueço que S.U. dá "su" é o nome.

Quando você executa algo depois de digitar su <username> , você ESTÁ o executando como esse usuário. No entanto, você não terá o ambiente do usuário.

Experimente su - <username> . Ele carregará todo o ambiente do usuário (linha de comando). Eu suponho que você está executando um programa de linha de comando e não está tentando abrir uma GUI como o MS Word ou algo assim.

    
por 27.03.2014 / 17:08
0

Você já tentou

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 
    
por 27.03.2014 / 18:10
0

Estou assumindo que você está conectado ao Mac1 como você, exampleuser está conectado ao Mac2, exampluser pode SSH no Mac2 e que você sabe a senha para exampleuser. Dado isso, você deve ser capaz de

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

Em seguida, você deve conseguir executar o aplicativo com o contexto deles. Se o aplicativo for baseado em GUI, você precisará usar o comando open com a opção -a.

[Mac2:~] $ open -a /Applications/Xcode.app
    
por 27.03.2014 / 20:01

Tags