Parece que você pode implementar isso através do sistema de autenticação padrão do Linux (chamado pam - Pluggable Authentication Modules). Isso (entre outras coisas) é responsável por verificar se os usuários podem efetuar login.
Dentro do sistema pam, há um módulo chamado pam_time , que permite definir restrições para logins com base na hora do dia. Isso é controlado pelo arquivo /etc/security/time.conf .
Algo parecido com isso poderia funcionar:
login;tty*;!kjo;Wd1500-2000
- para evitar que todos, exceto o usuário kjo , façam login (ou seja, usando o serviço login , em qualquer terminal tty* ) das 15h às 20h nos dias úteis. Tenha cuidado, porém, eu não testei isso!
Há um pouco de documentação sobre o formato de configuração no arquivo /etc/security/time.conf e verifique as páginas de manual pam_time e time.conf para obter mais informações:
man pam_time
man time.conf
Depois de configurar o time.conf a seu gosto, você precisará remover o comentário da linha a seguir em /etc/pam.d/login.conf :
account requisite pam_time.so