Mi cuenta de usuario habitual es, digamos, usuario1. Creé user2 por separado para alguna aplicación x que me gustaría ejecutar mientras estoy conectado a x como user1 pero de una manera que evitará que tenga acceso de lectura / escritura a los datos de user1. Pensé que podría usar xauth y sudo / su para user2 desde user1 para ejecutar esta aplicación. ¿Cómo hago esto? No estoy seguro de cómo configurar xauth.
48

.Xauthorityarchivo en el directorio de inicio de user2. Problema 2: de alguna manera y por alguna razón no entiendo, despuéssu, XAUTHORITY mantiene la ruta del archivo a user1's. Pero ese archivo no es legible por el usuario2.unset XAUTHORITYbajohexkeyen elxauth addcomando el mismo que desdexauth listo tengo que crear uno nuevo al azar?Puse mi
.zshrclínea conexport XAUTHORITY=~/.Xauthorityy ahora soy capaz de ejecutarsudo -E xcommand. Después de mucho googlear, esta fue la forma más fácil para mí.fuente
sudo -E(y el uso-Eestá deshabilitado en la mayoría de las instalaciones predeterminadas) porque normalmente lasudoersconfiguración predeterminada permitiríaXAUTHORITYpasar la variable de entorno a sudo.-E. Se puede establecer como una variable que se puede pasar, y Red Hat o Debian lo sugieren.Asumiendo debian o ubuntu (debería ser similar en Red Hat / SUSE).
fuente
suxno se mantiene (y se elimina de los repositorios de Debian / Ubuntu): packages.qa.debian.org/s/sux/news/20140101T172633Z.htmlPrimero: no lo use
xhost +, es bastante inseguro (permitir / rechazar).Más bien use el mecanismo X-Cookie:
Alternativamente, si lo ha
suxinstalado, úselo (vea la respuesta de ehempel).En ambos casos, user2 usará la cookie secreta en .Xauthority para autorizar al servidor X, y nadie más tendrá acceso a ella.
Notas:
.Xauthority, también puede usarxauthpara extraer y copiar la clave de autorización (consulte la respuesta de Randall). Si tiene varias claves en el.Xauthorityarchivo, esto es más selectivo; de lo contrario es cuestión de gustos.fuente
Esto solucionará el problema para todos los usuarios:
fuente
Como root:
Donde su nombre de usuario es su nombre de usuario :)
Luego haga su como su usuario
xclockdebería funcionar si está instaladofuente
Estos son solo hacks:
sleske anterior tiene, creo, la solución adecuada.
fuente
ssh -Xes una solución muy simple y elegante, que no depende de ningún material gtk / kde desaprobado / no mantenido (que requiere instalar más binarios con bit SUID ...).Encontré algo que me funciona muy bien en KDE
fuente
kde-cli-tools, y no en$PATHsino en/usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu(obviamente, dependiendo de la arquitectura).De esta manera hecho en suse / opensuse: http://www.novell.com/support/kb/doc.php?id=7003743
Simplemente modificando /etc/pam.d/su, agregando la opción (negrita):
Entonces puede cambiar con su sin -:
y ejecuta la aplicación gráficamente.
fuente
Para GNOME (y sin ningún entorno de escritorio realmente, lo uso solo con icewm)
gksu:fuente