Gibt es eine Möglichkeit, eine Anwendung als ein anderer Benutzer zu starten, sodass die gestartete Anwendung die Einstellungen / den Verlauf / die Ressourcen des anderen Benutzers usw. verwendet?
Beispiel: Ich habe mich als Alice angemeldet und möchte Firefox als Bob starten, daher würde Firefox den Browserverlauf von Bob anstelle von Alice anzeigen.
Ich habe es versucht
$ su Bob
$ open -a Firefox
Aber ohne offensichtliche Wirkung; Tatsache ist, dass der Aktivitätsmonitor zeigt, dass der Firefox-Prozess von Alice ausgeführt wird – nicht von Bob.
Ich verstehe, dass ich Bobs Zugangsdaten benötige, aber das ist kein Problem.
Von der Befehlszeile aus müssen Sie die ausführbare Unix-Datei finden und mit sudo wie folgt ausführen:
$ sudo -u Bob /Applications/Firefox.app/Contents/MacOS/Firefox
… oder das gleiche mit su: (allerdings müssen Sie auch ein Passwort für root einrichten - was ich nicht empfehle)
$ su Bob
$ /Applications/Firefox.app/Contents/MacOS/Firefox
(…oder das obige in einer Zeile:)
$ su Bob -c /Applications/Firefox.app/Contents/MacOS/Firefox
In der Vergangenheit war der einfachste Weg für PPC-Macs die Verwendung von Pseudo , aber es wurde lange eingestellt . Dadurch wird das Anwendungssymbol auf dem Symbol oder Fenster von Pseudo abgelegt.
Unter https://apple.stackexchange.com/a/102105/1860 erfahren Sie , warum su
dies nicht für alle Anwendungen funktioniert.
Neuere Versionen von launchd
haben die Fähigkeit, Anwendungen innerhalb der Sitzung eines anderen Benutzers zu starten; obwohl Apple-Ingenieure seine allgemeine Verwendung nicht empfohlen haben.
Verwenden Sie die bsexec
Option in launchctl , um auf die entsprechende Benutzersitzung abzuzielen:
bslist [PID | ..] [-j]
This prints out Mach bootstrap services and their respective states. While the namespace
appears flat, it is in fact hierarchical, thus allowing for certain services to be only avail-
able to a subset of processes. The three states a service can be in are active ("A"), inactive
("I") and on-demand ("D").
If [PID] is specified, print the Mach bootstrap services available to that PID. If [..] is
specified, print the Mach bootstrap services available in the parent of the current bootstrap.
Note that in Mac OS X v10.6, the per-user Mach bootstrap namespace is flat, so you will only
see a different set of services in a per-user bootstrap if you are in an explicitly-created
bootstrap subset.
If [-j] is specified, each service name will be followed by the name of the job which regis-
tered it.
bsexec PID command [args]
This executes the given command in the same Mach bootstrap namespace hierachy as the given
PID.
bstree [-j]
This prints a hierarchical view of the entire Mach bootstrap tree. If [-j] is specified, each
service name will be followed by the name of the job which registered it. Requires root priv-
ileges.
Der empfohlene Ansatz besteht darin, ein launchd-Jobticket zu schreiben und den Mac neu zu starten – oder den Benutzer zu bitten, sich abzumelden und wieder anzumelden.
Noch eine Methode:
# chown someuser command
# chmod u+s command
$ ./command
Danke an wysota unter: http://www.qtcentre.org/threads/4730-Linux-Bash-Run-a-command-as-another-user
(Ich habe viel Zeit damit verbracht, nach etwas zu suchen, das in meiner speziellen Situation funktioniert, und dachte, ich würde den Reichtum verteilen.)
Sie müssen ssh. Dh ssh username@123.456.00
. Wie Sie sagten, benötigen Sie das Kennwort für den Benutzer. Dann können Sie tun, worum Sie bitten. Sie müssen die Remote-Anmeldung unter Systemeinstellungen>Freigabe aktivieren:
Dann können Sie es einfach tun open -a Firefox
und Firefox wird als der andere Benutzer geöffnet, nicht Ihrer.
LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.
beim Versuch open -a Firefox
:-|sudo open -na Firefox
ls -l
sagt für Firefox?sudo
in der anderen Antwort erwähnte Option (mit dem Pfad zur ausführbaren Datei) funktioniert zumindest unter Lion.open -a <application>
und es öffnet die GUI der Anwendung.
Jari Keinänen
su
, wenn man es nicht möchtesudo
. Vielen Dank!Wojciech Bednarski
Trace/BPT trap: 5
LapplandsCohan
sudo
Ansatzes erhalte ich Anmeldefehler, obwohl ich das richtige Passwort für den anderen Benutzer verwende.su
funktioniert dagegen (kein Passwort für Root-Set)mmmmmm
evan.bovie
mmmmmm