Czy istnieje sposób na uruchomienie aplikacji jako inny użytkownik, aby uruchomiona aplikacja korzystała z preferencji / historii / zasobów innego użytkownika i innych?
Na przykład: zalogowałem się jako Alice i chciałbym uruchomić Firefoksa jako Bob, dlatego Firefox pokazywałby historię przeglądania Boba zamiast Alicji.
próbowałem
$ su Bob
$ open -a Firefox
Ale bez widocznego efektu; w rzeczywistości monitor aktywności pokazuje, że proces Firefox jest prowadzony przez Alice - nie przez Boba.
Rozumiem, że będę potrzebować danych logowania Boba, ale to nie jest problem.
źródło
su
jeśli ktoś tego nie chcesudo
. Dzięki!Trace/BPT trap: 5
sudo
podejścia, dostaję błędy logowania, mimo że używam poprawnego hasła dla drugiego użytkownika.su
działa z drugiej strony (brak hasła do zestawu root)Zobacz /apple//a/102105/1860, aby dowiedzieć się, dlaczego
su
nie działa dla wszystkich aplikacji.Wystartował bsexec
Najnowsze wersje
launchd
mają możliwość uruchamiania aplikacji w sesji innego użytkownika; chociaż inżynierowie Apple nie zalecili jego ogólnego zastosowania.Użyj
bsexec
opcji w launchctl, aby wybrać odpowiednią sesję użytkownika:Zalecanym podejściem jest napisanie uruchomionego biletu zadania i zrestartowanie komputera Mac - lub poproszenie użytkownika o wylogowanie i ponowne zalogowanie.
źródło
Jeszcze jedna metoda:
Dzięki wysota na: http://www.qtcentre.org/threads/4730-Linux-Bash-Run-a-command-as-another-user
(Spędziłem dużo czasu na poszukiwaniu czegoś, co działa w mojej szczególnej sytuacji, pomyślałem, że rozłożę bogactwo)
źródło
Musisz ssh. Tj
ssh [email protected]
. Jak powiedziałeś, będziesz potrzebować hasła dla użytkownika. Wtedy możesz zrobić, o co prosisz. Musisz włączyć zdalne logowanie w Preferencjach systemowych> Udostępnianie:Następnie możesz to zrobić,
open -a Firefox
a Firefox otworzy się jako inny użytkownik, a nie twój.źródło
LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.
przy próbieopen -a Firefox
: - |sudo open -na Firefox