¿Puedo iniciar una aplicación como otro usuario sin cambiar de usuario?


17

¿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: he iniciado sesión como Alice y me gustaría iniciar Firefox como Bob, por lo que Firefox mostrará 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.

Respuestas:


16

Desde la línea de comandos , 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 necesita 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 ha sido descontinuado por mucho tiempo . Esto es para soltar el ícono de la aplicación en el ícono o ventana de Pseudo.


Ah, la clave era encontrar el ejecutable de Unix. Funciona también con susi uno no lo desea sudo. ¡Gracias!
Jari Keinänen

Hmm, cuando trato de ejecutar Google Chrome me sale esto:Trace/BPT trap: 5
Wojciech Bednarski

Cuando uso el sudoenfoque, obtengo fallas de inicio de sesión aunque uso la contraseña correcta para el otro usuario. sufunciona por otro lado (sin contraseña para el conjunto raíz)
LapplandsCohan

@lapplandscohan sudo toma la contraseña del usuario actual
user151019

1
@ evan.bovie YTes muestra que han pensado en la seguridad
user151019

4

Consulte /apple//a/102105/1860 para ver por qué suno funciona para todas las aplicaciones.

bsexec de launchd

Las versiones recientes de launchdtienen 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 bsexecopció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 lanzado y reiniciar la Mac, o pedirle al usuario que cierre la sesión y vuelva a iniciarla.



0

Necesitas ssh. Es decir ssh username@123.456.00. Como dijiste, necesitarás la contraseña del usuario. Entonces puedes hacer lo que estás pidiendo. Deberá habilitar el inicio de sesión remoto en Preferencias del sistema> Compartir:
Preferencia de inicio de sesión remoto
luego, puede hacerlo open -a Firefoxy Firefox se abrirá como el otro usuario, no como el suyo.


Lamentablemente obtengo: LSOpenURLsWithRole() failed for the application /Applications/Firefox.app with error -10810.cuando intento open -a Firefox: - |
Jari Keinänen

@koiyu Trysudo open -na Firefox
daviesgeek

falla como se indica arriba: - / (también al usar la ruta al ejecutable de Unix falla, aunque de manera diferente.)
Jari Keinänen

1
Los procesos iniciados desde una sesión SSH no tienen acceso a la GUI. Si esto funciona en su sistema, sospecho que cambió alguna configuración de bajo nivel en algún momento.
Tobias

1
@daviesgeek, pero ¿se convirtió en SSH en un usuario que no sea el que actualmente tiene la GUI, como quería el OP?
Tobias
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.