Restringir as vezes que um usuário pode fazer login


9

Temos vários sistemas Backbox 3.13 criados no Ubuntu 12.04. Um dos meus adolescentes não entende o conceito dessa coisa chamada "sono" e tende a jogar no computador. Estou tentando limitar essa ação. Tentamos a babá, que funcionou por alguns dias. Então, mesmo que as configurações ainda estivessem no lugar, ainda permitia que a adolescente tivesse acesso à sua conta de usuário e à Internet.

Após algumas pesquisas, decidi tentar modificar /etc/security/time.conf. Aparentemente, não estou fazendo isso corretamente porque, não importa quais comandos digito no arquivo, ainda podemos fazer login na conta de usuário dela. Não queremos que ela tenha acesso das 21h às 6h. Ainda precisamos ter acesso ao computador o tempo todo. Aqui estão várias sintaxes que eu tentei:

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

Estou ficando louco por aqui, tentando descobrir como fazer isso. Tenho certeza de que é algo simples que estou perdendo ou que estou entrando incorretamente. Qualquer ajuda seria apreciada.


1
Tente login;*;daughter;A10600-2100. Isso só deve permitir logins entre 6h e 21h. Se isso não funcionar, então talvez *;*;daughter;A10600-2100. Se funcionar, você também gostaria de ter um crontrabalho que mate as sessões de sua filha às 21h, pois isso apenas impede que novas sessões sejam iniciadas. Existem alguns detalhes aqui
Warwick

Infelizmente, isso não funcionou. Tentei o login; *; daughter; A10600-1900 para testar a solução sem sucesso. Eu também tentei ; ; filha; A10600-1900 sem resultados positivos. Isso deve funcionar, mas não. É por causa do sistema Unity?
user81117

2
Você configurou pampara usar pam_time? Caso contrário, você precisará account required pam_time.sodas duas /etc/pam.d/gdme /etc/pam.d/loginlogo abaixo das authentradas.
Warwick

Adicionei essas linhas aos arquivos / gdm e / login e, em seguida, digitei novamente as informações no arquivo de configuração. Ainda não temos alegria nesse sentido. Estou pesquisando no Google agora para ter certeza de que inseri a linha no local correto no arquivo / gdm.
User81117

De acordo com ask.fedoraproject.org/en/question/7260/… , (Desculpe pela URL longa), eu deveria terminar o comando digitando uma nova linha. Comento essa linha com um sinal de #, certo? Também diz que a conta necessária pam_time.so fica no final do arquivo / gdm. Eu sei uma coisa com certeza. Depois que isso for descoberto, não esquecerei tão rapidamente novamente!
user81117

Respostas:


1

1. Edite /etc/pam.d/common-auth e adicione a seguinte linha: account required pam_time.so

2. Edite /etc/security/time.conf e adicione a restrição: *;*;username;Al0800-2200

O exemplo permite o login com software compatível com o pam todos os dias, das 8:00 às 22:00 diariamente.


0

É só aqui que você faz, ou você está usando uns em vez de Ls?

As restrições de tempo devem ser "maiúsculas A, L pequeno " e depois o tempo ...


Oi Nigge. Eu tentei nos dois sentidos, pois vi a documentação mostrando o Al e o A1. Nenhum método funciona. Estou tendo um tempo para tentar descobrir o porquê.
user81117

Lamentamos saber que não foi a causa do seu problema. Outra coisa a verificar, apenas para garantir: o seu sistema talvez use outro DM? Olhe em / etc / X11 / default-display-manager ...
Jan

O sistema está usando o Light DM. Acho que quando instalei o GDM, configurei-o para o Light DM.
user81117

0

Os seguintes trabalhos para mim:

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

A linha a seguir /etc/pam.d/common-accountpode ser algo que adicionei ou descomente.

account required  pam_time.so

Eu também tenho um cron-job que verifica às 20:00 se um dos filhos está logado e os efetua logoff se houver ... a parte que realmente os efetua logoff é a seguinte:

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"

0

Um método mais genérico é usar o cron para bloquear e desbloquear a conta. Isso elimina os requisitos específicos e quaisquer variáveis ​​relacionadas ao gerenciador de janelas. Isso se destina apenas a ser aplicado a uma máquina autônoma, não a um desktop / laptop / tablet conectado a um servidor de autenticação central.

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

NOTA: Pode ser necessário ajustar o caminho para o comando 'passwd'. Determine o caminho adequado com 'what'.

Na minha caixa do CentOS 6:

which passwd

/usr/bin/passwd


Eu não acho que isso iria funcionar. E se a autenticação não for realizada no banco de dados de senha local ( /etc/shadow)? passwd -lpode nem fazer nada nesse caso. E se a máquina for desligada ou um trabalho cron falhar na execução por algum outro motivo? Em seguida, a conta pode estar em um estado indesejado.
Jayhendren

Não conheço nenhum sistema UNIX ou Linux que não seja autenticado no banco de dados de senhas local, a menos que esteja conectado a um servidor de autenticação central.
Ragansi 5/02

Meu comentário anterior foi cortado prematuramente. Não percebeu que pressionar Enter postou o comentário. De qualquer forma. Se a máquina for desligada, o cron pode definitivamente deixar o sistema em um estado indesejável. Você pode usar o cron para chamar um pequeno script que verifica a hora e depois bloqueia ou desbloqueia de acordo. Execute-o a cada 5 minutos ou até @reboot no cron.
Ragansi

"a menos que esteja conectado a um servidor de autenticação central". É exatamente o que eu quero dizer.
Jayhendren

Nesse caso, o servidor de autenticação central (ou deve ...) terá as facilidades para executar as funções de bloqueio acima mencionadas. Nesse caso, você não precisaria (e não deve) executar bloqueios de contas de usuário na máquina local, a menos que algo esteja configurado fora do escopo, com como a autenticação central deve ser usada.
Ragansi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.