uruchom program przez SSH jako inny użytkownik

1

Opis problemu:

są dwa komputery Mac, # 2 jeden zalogowany za pomocą exampleuser i # 1 Jestem zalogowany jako administrator.

exampleuser w ogóle nie ma praw SSH, ponieważ nie jest administratorem. Administrator ma pełne prawa i znam też hasło na przykład użytkownik.

Co chcę robić:

Chcę otworzyć program przez SSH na przykładusers Mac (nr 1).

Podczas testowania dałem przykładowemu użytkownikowi prawa i połączyłem się jako przykładowy użytkownik za pośrednictwem SSH - wszystko działało dobrze z „open / Applications / ...” (Ale ze względów bezpieczeństwa nie mogę dać dostępu przykładowemu użytkownikowi SSH).

Co ja zrobiłem:

Użyłem konta administratora, aby połączyć się z komputerem Mac # 2 przez SSH, ale kiedy uruchomiłem program, oczywiście zwrócił błąd, ponieważ nie jest to ten sam użytkownik. Próbowałem więc „su exampleuser”, ale potem tak naprawdę nie byłem połączony jako przykładowy użytkownik, ale zamiast tego utknąłem w dziwnym bashu, którego nigdy wcześniej nie widziałem, więc też nie zadziałało.

Pomyślałem więc o połączeniu jako administrator, a następnie tymczasowym nadaniu uprawnień przykładowego użytkownika ssh, aby połączyć się bezpośrednio, ale nie dowiedziałem się, jak zmienić ustawienia SSH za pośrednictwem SSH.

Jak mogłem to zrobić?

David
źródło
W przypadku większości BSD do użycia sumusisz być w grupie wheel. Ponieważ OS X jest pochodną BSD, mogłem sobie wyobrazić, że to jest problem. Innym wariantem byłoby użycie sudo(z odpowiednią konfiguracją).
Andreas Wiese
Przepraszam, ale może nie napisałem tego wystarczająco jasno: przykładowy użytkownik polecenia COMMAND su działa, ale zabiera mnie to do jakiegoś dziwnego basha i nie jestem tak naprawdę podłączony jako przykładowy użytkownik.

Odpowiedzi:

1

Polecenie „su” umożliwia „przełączenie kontekstu użytkownika” (w tym „superużytkownika”). Zapominam, który SU nazywa „su” jego nazwą.

Kiedy uruchamiasz coś po wpisaniu su <username>, JESTEŚ uruchamiany jako ten użytkownik. Nie będziesz jednak mieć środowiska użytkownika.

Spróbuj su - <username>zamiast tego. Załaduje całe środowisko użytkownika (wiersza poleceń). Zakładam, że uruchamiasz program wiersza polecenia i nie próbujesz otworzyć GUI, takiego jak MS Word czy coś takiego.

jimtut
źródło
Właściwie byłem dość zaskoczony, że ta metoda nie zadziałała, ponieważ pierwotnie chciałem jej użyć, ale dostałem dziwną powłokę bash. Zwykle Shell pokazuje, PCNAME:~ USERNAME$ ale po „su exampleuser” pokazywał tylko coś takiegobash-3.1$
Właściwie przeoczyłem twój drugi sposób, który działał idealnie tak, jak chciałem - dzięki!
0

Czy próbowałeś

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 
driz
źródło
1
Spróbuję tego ... Ale muszę poczekać do poniedziałku :-)
Czy byłeś w stanie wypróbować powyższą sugestię?
driz
Przepraszam, że nie odpowiedziałam przez tak długi czas - byłam sfrustrowana całą sprawą, odłożyłam to na bok i nie myślałam o tym aż do dziś, kiedy znalazłam działające rozwiązanie.
0

Zakładam, że jesteś podłączony do Mac1 tak jak ty, przykładowy użytkownik jest zalogowany na Mac2, przykładowy użytkownik może SSH na Mac2 i znasz hasło dla przykładowego użytkownika. Biorąc to pod uwagę, powinieneś być w stanie

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

Wtedy powinieneś być w stanie uruchomić aplikację z ich kontekstem. Jeśli aplikacja jest oparta na interfejsie GUI, musisz użyć openpolecenia z opcją -a.

[Mac2:~] $ open -a /Applications/Xcode.app
SaxDaddy
źródło
To byłoby rzeczywiście rozwiązanie, z wyjątkiem tego, że ze względów bezpieczeństwa nie mogę dawać przykładowych praw SSH przez cały czas - nawet jego komputerowi! Wiem, że to trochę głupie, ale naprawdę nie mogę.