Restrinja las veces que un usuario puede iniciar sesión

9

Tenemos varios sistemas Backbox 3.13 construidos en Ubuntu 12.04. Uno de mis adolescentes no entiende el concepto de esta cosa llamada "dormir" y tiende a levantarse para jugar en la computadora. Estoy tratando de limitar esa acción. Intentamos Nanny que funcionó durante unos días. Luego, a pesar de que la configuración todavía estaba en su lugar, todavía le permitía a dicho adolescente obtener acceso a su cuenta de usuario e Internet.

Después de un poco de investigación, decidí intentar modificar /etc/security/time.conf. Aparentemente, no lo estoy haciendo correctamente porque, sin importar qué comandos ingrese al archivo, aún podemos iniciar sesión en su cuenta de usuario. No queremos que ella tenga acceso de 9 PM a 6 AM. Todavía necesitamos que tenga acceso a la computadora todo el tiempo. Aquí hay varias sintaxis que he probado:

1. login;*;username;A12100-0600
2. login;*;username;!A12100-0600
3. login;*;username;!A12100-0600
   login;*;my username;A10000-2400
4. login;*;!username;A12100-0600

Me estoy volviendo loco aquí tratando de descubrir cómo hacer esto. Estoy seguro de que es algo simple que me falta, o que estoy ingresando incorrectamente. Cualquier ayuda sería apreciada.

usuario81117
fuente
1
Tratar login;*;daughter;A10600-2100. Eso solo debería permitir inicios de sesión entre las 6 AM y las 9 PM. Si eso no funciona, entonces tal vez *;*;daughter;A10600-2100. Si funciona, también querrás tener un crontrabajo que mate las sesiones de tu hija a las 9 p.m., ya que esto solo detiene el inicio de nuevas sesiones. Hay algunos detalles aquí
Warwick
Desafortunadamente esto no funcionó. Intenté iniciar sesión; *; hija; A10600-1900 para probar la solución en vano. También lo intenté ; ; hija; A10600-1900 sin resultados positivos. Esto debería funcionar, pero no funciona. ¿Es por el sistema Unity?
user81117
2
¿Has configurado pampara usar pam_time? Si no, necesita account required pam_time.soen ambos /etc/pam.d/gdmy /etc/pam.d/loginjusto debajo de las authentradas.
Warwick
Agregué esas líneas a los archivos / gdm y / login y luego volví a ingresar la información en el archivo de configuración. Todavía no tenemos alegría en este extremo. Estoy buscando en Google ahora para asegurarme de haber ingresado la línea en el lugar correcto en el archivo / gdm.
user81117
De acuerdo con ask.fedoraproject.org/en/question/7260/… , (Perdón por la URL larga) Debería terminar el comando ingresando una nueva línea. Comento esa línea con un signo #, ¿verdad? También dice que la cuenta requerida pam_time.so va al final del archivo / gdm. Sé una cosa con seguridad. Una vez que esto esté resuelto, ¡no lo olvidaré tan rápido otra vez!
user81117

Respuestas:

1

1. Edite /etc/pam.d/common-auth y agregue la siguiente línea: account required pam_time.so

2. Edite /etc/security/time.conf y agregue la restricción: *;*;username;Al0800-2200

El ejemplo permite iniciar sesión con software compatible con pam todos los días entre las 8 am y las 10 pm diariamente.

Ingmar
fuente
0

¿Es solo aquí que lo haces, o estás usando unos en lugar de Ls?

Las restricciones de tiempo deben leer "mayúscula A, L pequeña " y luego el tiempo ...

ene
fuente
Hola nigge Lo he intentado en ambos sentidos, ya que he visto documentación que muestra tanto Al como A1. Ninguno de los métodos funciona. Me está costando mucho intentar averiguar por qué.
user81117
Lamento escuchar que no fue la causa de su problema. Otra cosa que debe verificar, solo para asegurarse: ¿Su sistema quizás usa otro DM? Examine / etc / X11 / default-display-manager ...
Ene
El sistema está utilizando Light DM. Creo que cuando instalé GDM lo configuré para Light DM.
user81117
0

Los siguientes trabajos para mí:

*;*;child1|child2|child3;Wk0445-1958|Sa0445-2300|Su0445-1958

La siguiente línea /etc/pam.d/common-accountpuede ser algo que agregué o descomenté.

account required  pam_time.so

También tengo un cron-job que verifica a las 8:00 PM si uno de los niños está conectado, y lo cierra si es así ... la parte que realmente los cierra es la siguiente:

echo 'logging off - Following children are still logged in...'
for n in $active_children ; do echo "  " $n ; done
festival --tts <<EOT
Is is bedtime. Good bye and good night.
EOT
for n in $active_children
do
    killall -HUP -u $n
done
sleep 15
for n in $active_children
do
    killall      -u $n
done
echo "[`date`] - done"
david
fuente
0

Un método más genérico es usar cron para bloquear y desbloquear la cuenta. Esto elimina los requisitos específicos y las variables relacionadas con el administrador de ventanas. Esto solo está destinado a aplicarse a una máquina independiente, no a una computadora de escritorio / portátil / tableta conectada a un servidor de autenticación central.

0 21 * * * /usr/bin/passwd -l childsUserName 0 6 * * * /usr/bin/passwd -u childsUserName'

NOTA: Puede que tenga que ajustar su ruta para el comando 'passwd'. Determine la ruta correcta con 'which'.

En mi caja CentOS 6:

which passwd

/usr/bin/passwd

Ragansi
fuente
No creo que esto funcione. ¿Qué sucede si la autenticación no se realiza en la base de datos de contraseña local ( /etc/shadow)? passwd -lincluso podría no hacer nada en ese caso. ¿Qué sucede si la máquina se apaga o un trabajo cron no se ejecuta por alguna otra razón? Entonces la cuenta podría estar en un estado no deseado.
jayhendren
No conozco ningún sistema UNIX o Linux que no se autentique con la base de datos de contraseñas local, a menos que esté conectado a un servidor de autenticación central.
Ragansi
Mi comentario anterior se cortó prematuramente. No me di cuenta de que presionar enter publicó el comentario. De todas formas. Si la máquina se apaga, entonces cron definitivamente puede dejar el sistema en un estado no deseado. Puede usar cron para llamar a un pequeño script que verifica la hora y luego bloquea o desbloquea en consecuencia. Ejecútelo cada 5 minutos, o incluso @reboot en cron.
Ragansi
"a menos que esté conectado a un servidor de autenticación central". Eso es exactamente lo que quiero decir.
jayhendren
En ese caso, su servidor de autenticación central tendrá (o debería ...) tener las facilidades para realizar las funciones de bloqueo antes mencionadas. En ese caso, no necesitaría (y no debería necesitar) realizar bloqueos de cuenta de usuario en la máquina local, a menos que algo esté configurado fuera de alcance, con la intención de la autenticación central.
Ragansi