Estoy ejecutando una instalación más o menos estándar de Ubuntu Precise 12.04 y estoy bastante satisfecho con la tarea diaria con el entorno de escritorio Unity.
Sin embargo, cuando se trata de jugar, me siento mucho más cómodo con LXDE (antecedentes: en su estado actual, Unity archiva tasas de fotogramas mucho más bajas que, por ejemplo, Unity 2D o LXDE, es un error conocido y en el que se está trabajando).
Para ese propósito, creé un perfil de usuario de jugador y ahora quiero restringirlo para usar solo el entorno de escritorio LXDE.
Para elaborar esto más a fondo: cuando se me pide que inicie sesión después del arranque, solo quiero que LXDE aparezca como una opción para el perfil de usuario de jugador en la pantalla de inicio de sesión, mientras que mi perfil de usuario estándar aún debería tener la opción de elegir qué entorno de escritorio usar.
Gracias de antemano por cualquier idea que pueda ser de ayuda.
fuente
Respuestas:
De acuerdo, según tengo entendido, LightDM (el administrador de inicio de sesión) no parece ser compatible para restringir los entornos de escritorio para un usuario específico . Es un trato de todo o nada. De manera predeterminada, cuando un usuario elige un entorno de escritorio, se convertirá en su entorno de escritorio predeterminado. Cuando inicien sesión la próxima vez, a menos que elijan otra, iniciarán sesión en sus valores predeterminados.
Sin embargo, puede hacerlo para que el usuario no pueda cambiar esto. Este usuario aún podrá seleccionar un entorno de escritorio diferente, pero si lo hace, no cambiará su valor predeterminado. Creo que esta es la forma más segura de hacerlo, si no le preocupa que la persona lo cambie. Todo lo que tiene que hacer es editar su
.dmrc
archivo (ubicado en su directorio de inicio, es decir, / home / user). Aquí es donde se almacena su sesión predeterminada. Cambie laSession
variable en ese archivo a lo que desee,ubuntu
es decir, es el Unity DE predeterminado,ubuntu-2d
es Unity 2D yLXDE
es LXDE. Para que esto no se cambie si inician sesión con otro DE, simplemente podemos hacerlo inmutable (inmutable):Ahora nadie podrá cambiar ese archivo (incluido el root y otros programas) a menos que elimine el indicador inmutable:
Si absolutamente NO desea que este usuario inicie sesión alguna vez con otro DE, descubrí una forma realmente hacky (es decir, bajo su propio riesgo) para lograr esto. Estaba un poco aburrido y parecía una cosa divertida de probar. Todos los DE diferentes que LightDM puede ver se guardan
/usr/share/xsessions
como.desktop
archivos. Para su información, puede eliminar cualquiera de estos que no desea que aparezca en la pantalla de inicio de sesión (pero eso lo eliminará para TODOS los usuarios). Si abre cualquiera de estos, son bastante sencillos. Son archivos básicos de iniciador de escritorio, al igual que todos los accesos directos en su escritorio. Cada uno contiene unExec
línea, que es lo que se ejecuta cuando elige su DE en la pantalla de inicio de sesión (es decir, qué DE se inicia). Vamos a aprovechar esto y verificar qué usuario está iniciando sesión. Si el usuario es nuestro usuario restringido, los obligaremos a usar un determinado DE.Primero, para cada
.desktop
archivo/usr/share/xsessions/
necesitará crear un script en/usr/local/bin
. Para mi ejemplo, mostraré cómo hacer estoubuntu.desktop
, que es el DE de Unity, y usando LXDE como el DE estamos forzando a nuestro usuario restringido (usuario restringido) a usar. Mirando LXDE.desktop, podemos ver que elExec
comando es/usr/bin/startlxde
y no hay ningúnTryExec
comando. Cuando abreubuntu.desktop
, vemos que elExec
comando esgnome-session --session=ubuntu
y elTryExec
comando esunity
. ElTryExec
comando es exactamente lo que parece. Después de ejecutar elExec
comando, intentará ejecutar elTryExec
comando, pero si falla, no se bloqueará.Ahora, tomando esos comandos que obtuvimos de los
.desktop
archivos, podemos crear nuestros scripts. Los pondremos adentro/usr/share/bin
. Tendremos que hacer dos, uno para elExec
y otro para elTryExec
. Haremos algo como esto:ubuntude.sh
ubuntudetry.sh
Solo estamos probando si la persona que inicia sesión es nuestro usuario restringido y estamos activando el DE apropiado. Ahora, debemos asegurarnos de que sean ejecutables:
Ahora necesitamos cambiar nuestro
ubuntu.desktop
para que llame a nuestros scripts, en lugar de los DE reales. Comente las líneasExec
yTryExec
en el archivo y reemplácelas con esto:Simplemente repita el proceso para cualquier otro DE que pueda tener. Si no hay
TryExec
un DE, entonces tampoco es necesario crear un script detry.sh para él, ya que LXDE no utiliza aTryExec
. Obviamente, esto es un poco complicado, y debe asegurarse de hacer una copia de seguridad de los archivos antes de editarlos, pero funcionará si necesita asegurarse de que un usuario inicie sesión en el DE correcto.fuente
en Debian Squeeze y Wheezy también puede agregar un .xsessionrc con una sola línea
STARTUP de exportación = XXX
(donde XXX es su secuencia de comandos de sesión forzada, consulte Exec-Line arriba) en el directorio principal del usuario para forzar un determinado tipo de sesión independientemente de lo que el usuario haya elegido.
También debería funcionar en Ubuntu.
(Eche un vistazo a /etc/X11/Xsession.d/40x11-common_xsessionrc y 50x11-common_determine-startup para ver por qué esto funciona)
fuente
La respuesta de reverendj1 no estaba funcionando para mí. La razón podría ser que el valor que especifique en Exec = no se ejecuta directamente, sino que se pasa a / etc / X11 / Xsession como argumento. (fuente: https://askubuntu.com/a/857420/873016 )
Otra solución al problema:
1. Haga una copia de seguridad de todos los archivos
/ usr / share / xsessions / .desktop 2. Elimine todos los archivos / usr / share / xsessions / .desktop
3. Cree solo /usr/share/xsessions/default.desktop con
"predeterminado" es una palabra clave para Xsession y buscará la sesión específica en el directorio del usuario.
4. Ahora cree un archivo /home/{username}/.xsession para cada nombre de usuario. Para una aplicación "similar a un quiosco", esto debería verse así:
Si, por ejemplo, a otro usuario se le debe permitir iniciar un administrador de escritorio completo, podría verse así:
Probado en ubuntu 16.04 con lightdm
fuente