¿Agregar la cuenta de invitado creada durante el inicio de sesión a ciertos grupos?

¿Agregar la cuenta de invitado creada durante el inicio de sesión a ciertos grupos?

Esta pregunta está relacionada conotra pregunta más generalsobre cuentas de invitados. Éste es muy específico.

Configuración: Tengo muchos Dell Latitude E6410 más antiguos y algunos Dell Latitude 5450 más nuevos que uso en un salón de clases con la versión 16.04. Muchos estudiantes utilizan estas máquinas para diversos fines, entre ellos el análisis y la adquisición de datos a través de dispositivos USB conectados.

Las cuentas de invitado nos sirven bien para limpiar las máquinas entre inicios de sesión. La característica adicional de las cuentas de invitado es que al encender las máquinas y "olvidarlas", la máquina inicia sesión automáticamente en la cuenta de invitado e inicia una ventana del navegador. El problema es que las cuentas de invitados no tienen ningún privilegio para acceder a los puertos USB.

Una solución sencilla sería agregar la nueva cuenta de invitado (por ejemplo, guest-abf2) al grupo de acceso telefónico y plugdev para que los estudiantes puedan usar dispositivos conectados y memorias USB. Algo como:

moduser -a -G plugdev,dialout $USER

dentro de un script lo suficientemente temprano en el proceso de inicio de sesión para funcionar.

Esto es lo que he probado hasta ahora:

  • colocando este comando en cualquiera de los dosganchos documentados: auto.shy prefs.shen el /etc/guest-sessiondirectorio. Ninguno de los dos funciona. prefs.shse ejecuta en el contexto del usuario y, aunque auto.shse supone que se ejecuta en el contexto raíz, se ejecuta demasiado tarde para agregar la cuenta de invitado recién creada a los dos grupos.
  • modificando los scripts disponibles que ejecuta lightdm (Sí, sé que esto no es bueno, pero me estaba desesperando.) y todavía esto no funciona. Necesito ejecutar el comando moduser justo después de crear la cuenta pero antes del inicio de sesión real.
  • De acuerdo adocumentación antigua (11 más o menos)hay un gancho llamado setup.shque probé pero no estoy seguro de que ya funcione.
  • He pensado en escribir un script udev, pero parece terriblemente doloroso y la documentación parece estar orientada a montar unidades USB que no permiten el acceso a dispositivos USB. Podría estar equivocado aquí.
  • En algún lugar me encontré con documentación que decía que había un mecanismo similar a un 'script' para agregar automáticamente nuevos usuarios a ciertos grupos, pero parece que no puedo encontrarlo. Esto podría funcionar en este caso o no, pero lo intentaré.

Respuesta1

Las cuentas de invitado se crean mediante el script de shell /usr/sbin/guest-account.

Al final de la función add_accountque llama.agregar usuariopara crear el usuario. Si agrega la -G plugdev,dialoutopción aquí, eso debería funcionar.

Usardpkg-desviarpara evitar que un paquete actualizado sobrescriba su script modificado.

Respuesta2

Usarusermod, no ' moduser'.

... entonces el comportamiento del script de inicio prefs.sh ahora funciona como se anuncia. Creando un archivo llamado prefs.sh en /etc/guest-session con la siguiente linea:

moduser $USER -a -G plugdev,dialout

Ese comando hará que la sesión del invitado se bloquee y no se cargue si lo incluye en prefs.sh. '`moduser' no es un comando válido. Utilice esta línea en su lugar:

usermod -a -G plugdev,dialout $USER

Respuesta3

auto.shnunca se ha ejecutado en un contexto raíz. prefs.shlo hizo hasta Ubuntu 15.10 cuando fue obtenido por /usr/sbin/guest-account, pero el código fue refactorizado y en 16.04 prefs.shfue obtenido por /usr/share/lightdm/guest-session/setup.shel cual no se ejecuta como root.

No sé si este cambio de comportamiento es intencional. De lo contrario, puede haber una razón para proponer un cambio.

No estoy seguro de lo que quiere decir cuando dice que una sesión de invitado no puede acceder a los puertos USB. Sé que al menos puedes usar memorias USB. Posiblemente existan otros dispositivos cuyo uso se impida mediante AppArmor.

Editar:

presentéun informe de error, y si se acepta, podrá utilizarlo prefs.shpara asignar al invitado a grupo(s) como lo hacía antes.

En cuanto a las memorias USB, hice algunas pruebas y descubrí que el formato de la memoria es importante. Con un dispositivo formateado en ext4 no podía leer ni escribir, pero cuando está formateado como fat16 funciona bien.

Respuesta4

No sé exactamente cuándo sucedió, pero lightdm se actualizó, por lo que el comportamiento del script de iniciopreferencias.shAhora funciona como se anuncia. Creando un archivo llamadopreferencias.shen/etc/sesión-invitadocon la siguiente línea:

moduser $USER -a -G plugdev,dialout

Logré exactamente lo que necesitaba para permitir a los estudiantes acceder a nuevos dispositivos USB en la cuenta de invitado.

información relacionada