¿Hay alguna manera de iniciar una aplicación como otro usuario para que la aplicación iniciada use las preferencias/historial/recursos y otros del otro usuario?
Por ejemplo: Inicié sesión como Alice y me gustaría iniciar Firefox como Bob, por lo que Firefox mostraría el historial de navegación de Bob en lugar del de Alice.
Lo intenté
$ su Bob
$ open -a Firefox
Pero sin efecto aparente; de hecho, el monitor de actividad muestra que el proceso de Firefox está siendo ejecutado por Alice, no por Bob.
Entiendo que necesitaré las credenciales de inicio de sesión de Bob, pero eso no es un problema.
Desde la línea de comando , debe encontrar el ejecutable de Unix y ejecutarlo usando sudo de la siguiente manera:
$ sudo -u Bob /Applications/Firefox.app/Contents/MacOS/Firefox
… o lo mismo con su: (sin embargo, esto también requiere que configure una contraseña para root, que no recomiendo)
$ su Bob
$ /Applications/Firefox.app/Contents/MacOS/Firefox
(... o lo anterior en una línea :)
$ su Bob -c /Applications/Firefox.app/Contents/MacOS/Firefox
En el pasado, la forma más fácil para PPC Macs era usar Pseudo , pero se suspendió hace mucho tiempo . Esto es para soltar el icono de la aplicación en el icono o ventana de Pseudo.
Consulte https://apple.stackexchange.com/a/102105/1860 para saber por qué su
no funciona para todas las aplicaciones.
Las versiones recientes de launchd
tienen la capacidad de iniciar aplicaciones dentro de la sesión de otro usuario; aunque los ingenieros de Apple no han recomendado su uso general.
Use la bsexec
opción en launchctl para apuntar a la sesión de usuario adecuada:
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.
El enfoque recomendado es escribir un ticket de trabajo de lanzamiento y reiniciar la Mac, o pedirle al usuario que cierre la sesión y vuelva a iniciarla.
Un método más:
# chown someuser command
# chmod u+s command
$ ./command
Gracias a wysota en: http://www.qtcentre.org/threads/4730-Linux-Bash-Run-a-command-as-another-user
(Pasé mucho tiempo buscando algo que funcionara en mi situación particular, pensé que repartiría la riqueza)
Necesitas ssh. ssh username@123.456.00
es decir Como dijiste, necesitarás la contraseña para el usuario. Entonces puedes hacer lo que pides. Deberá habilitar el inicio de sesión remoto en Preferencias del sistema> Compartir:
luego, puede hacerlo open -a Firefox
y Firefox se abrirá como el otro usuario, no como el suyo.
LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.
al intentar open -a Firefox
:-|sudo open -na Firefox
ls -l
dice para Firefox?sudo
opción mencionada en la otra respuesta (con la ruta al ejecutable) funciona al menos con Lion.open -a <application>
y abre la GUI de la aplicación.
Jari Keinänen
su
si uno no deseasudo
. ¡Gracias!Wojciech Bednarski
Trace/BPT trap: 5
LaponiaCohan
sudo
enfoque, obtengo fallas de inicio de sesión aunque uso la contraseña correcta para el otro usuario.su
funciona por otro lado (sin contraseña para el conjunto raíz)mmmmmm
evan.bovie
mmmmmm