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