Usuário do Ubuntu <= 11.10, siga este guia para Usuário do Ubuntu> = 11.10, leia o aviso na página inferior:
Sim, todos esses programas estão desatualizados e todas as suas perguntas são respondidas aqui e visualizadas com o controle dos pais .....
Quando falamos em forçar o logoff de um usuário, o que realmente estamos falando é implementar restrições de tempo na conta para acesso ou serviços do sistema. A maneira mais fácil de implementar restrições de tempo é usar um módulo de plug-in chamado Linux-PAM .
O Módulo de autenticação conectável (PAM) é um mecanismo para autenticação de usuários. Especificamente, vamos usar o pam_time
módulo para controlar o acesso cronometrado dos usuários aos serviços.
Usando o pam_time
módulo, podemos definir restrições de acesso a um sistema e / ou aplicativos específicos em vários momentos do dia, bem como em dias específicos ou em várias linhas de terminal. Dependendo da configuração, você pode usar este módulo para negar acesso a usuários individuais com base em seu nome, hora do dia, dia da semana, serviço para o qual está solicitando e terminal de onde está fazendo a solicitação. .
Ao usar pam_time
, você deve encerrar a sintaxe de cada linha (ou regra) no /etc/security/time.conf
arquivo com uma nova linha. Você pode comentar cada linha com o sinal de cerquilha [#], e o sistema ignorará esse texto até a nova linha.
Aqui está a sintaxe para uma regra:
serviços; ttys; usuários; horários
The first field — services — is a logic list of PAM service names.
The second field — tty — is a logic list of terminal names.
The third field — users — is a logic list of users or a netgroup of users.
The fourth field — times — indicates the applicable times.
Aqui está um exemplo de um conjunto típico de regras:
login ; * ; !bobby ; MoTuWeThFr0800-2000
login ; * ; !root ; !Al0000-2400
http ; * ; !bobby ; MoTuWeThFr0800-2000
http ; * ; !root; !Al0000-2400
Essas regras impedem que o bobby do usuário faça logon entre as horas de 0800 e 2000 e também restringem o acesso à Internet durante esse horário. O Root poderá fazer logon a qualquer momento e navegar na Internet também.
Nota: O sistema registra erros com essas regras como syslog (3).
Com o Ubuntu Linux, é possível atribuir restrições de tempo ao seu computador, para impedir a conexão de um ou mais usuários ao seu sistema. Com as restrições de tempo, você pode, por exemplo, limitar o acesso ao computador de seus filhos (uma espécie de controle dos pais, em suma) , ou até mesmo proteger a conexão com o servidor durante determinadas horas.
Configuração manual
Entenda o que você fará
Neste tutorial, usaremos o PAM (Módulos de autenticação conectáveis, Módulos de autenticação conectáveis em inglês). Permite controlar a autenticação do usuário quando eles se conectam. Em seguida, usaremos os arquivos de configuração de segurança para definir o horário de logon permitido. Essas manipulações podem ser executadas em qualquer versão do Ubuntu e requerem apenas um editor de texto simples (vim, emacs, nano, gedit, kate, para citar alguns). Ativar horas de restrições através do módulo PAM
Primeiro de tudo, primeiro vá para /etc/pam.d/
, onde estão todos os serviços configuráveis:
$ Ls /etc/pam.d/
atd common-account common-session gdm login ppp sudo
chfn common-auth cron gdm-autologin Other samba
chsh common-cupsys gnome-screensaver password passwd su
Se quisermos bloquear a conexão com o computador, precisaremos alterar o serviço gdm. Edite o arquivo para gdm e adicione esta linha de código (no final do arquivo):
account required pam_time.so
GDM são as distribuições de tela de login Ubuntu, Edubuntu e Xubuntu. Para o Kubuntu, que usa o KDE, o serviço kdm é chamado, será o arquivo que será aberto. E você está pronto para configurar o PAM! Isso permitirá o controle de horas neste serviço.
Se você possui um servidor, provavelmente não possui GUI. Nesse caso, o GDM / KDM não está instalado e a conexão não será bloqueada. Para impedir a conexão com o TTY, você deve modificar o logon do mesmo arquivo e adicionar a mesma linha de código que o anteriormente reconhecido. Esta ação também se aplica a pessoas que instalaram uma GUI e desejam bloquear o acesso à tela de login e aos terminais.
Configurar horas de acesso
Agora que o serviço PAM foi ativado, precisamos apenas configurar os tempos de acesso. Abra o /etc/security
. Vários arquivos de configuração estão disponíveis:
$ Ls /etc/security/
access.conf namespace.conf pam_env.conf
group.conf namespace.init time.conf
limits.conf opasswd time.conf.bak
Edite o arquivo time.conf
. Algumas explicações e exemplos (em inglês) que introduzem o. Para definir agendas de acesso, copie e cole a seguinte linha de código (no final do arquivo, como sempre):
*;*;user;scheduler
Em vez do campo do usuário, digite a conta de login que você deseja bloquear.
Se você deseja bloquear vários usuários, insira o login deles em uma linha, separado pelo | operador. Por exemplo, se eu quiser congelar as contas de Patrick, John e Emily:
*;*;Patrick|jean|emilie;scheduler
Por contras, se você deseja bloquear o acesso ao sistema para todos os usuários, exceto um em particular, use o! perante a pessoa em questão. Por exemplo, se eu quiser que o acesso ao computador seja negado a todos os usuários, exceto Nicolas e Xavier:
Nicolas *;*;!|xavier;scheduler
Voltando agora para as zonas de campo. Nesse campo, a seleção de dias e horas permitirá conexão possível. Você deve primeiro especificar o dia da semana, usando as seguintes abreviações:
Mo : Monday Fr : Friday Wd : Sa/Su
Tu : Tuesday Sa : Saturday wk : Mo/Tu/We/Th/Fr
We : Wenesday Su : Sunday
Th : Thursday Al : All Days
Cuidado para não confundir as abreviaturas Wk e Wd são enganosas! particularmente mal identificado na Internet: você pode encontrar facilmente informações conflitantes!
Em seguida, especificamos os prazos. Estes devem ser formatados 24H, consistindo de 4 dígitos. Por exemplo, para restringir as 15:17 às 18:34, escrevemos: 1517-1834. Para permitir que Marie se conecte apenas na terça-feira, das 15h17 às 18h34, obtemos o resultado:
*;*;marie;Tu1517-1834
As conexões fora deste horário serão proibidas. Quanto aos usuários, é possível usar os operadores | e! para indicar várias vezes (o! indica que todas as horas de logon são permitidas, exceto as que serão mostradas).
As duas estrelas (caracteres curinga) no início da linha de código são, respectivamente, e tty services fields. Como você deseja bloquear todo o acesso ao sistema, não é necessário especificar qual serviço ou qual tty você deseja bloquear. No entanto, se você deseja impedir o uso de um serviço específico, basta especificá-lo como o exemplo a seguir:
login;tty1|tty4|tty5;marie;!Wd0000-2400
Assim, o usuário casar não pode se conectar a um TTY, 4 e 5 durante o fim de semana.
Alguns exemplos de programação de restrições
mathilde tem permissão para se conectar todos os dias das 13:20 às 15:20 e das 16:00 às 20:30:
*;*;mathilde;Al1320-1520|Al1600-2030
Stone, Frank e Florian podem se conectar às 14:00 às 18:45 durante os dias da semana e das 14:00 às 22:15 no fim de semana:
*;*;Stone|franck|florian;Wk1400-1845|Wd1400-2215
Olive nunca tem permissão para se conectar. jessica pode fazer logon na quarta-feira, das 13:00 às 16:00:
*;*;olivier;!Al0000-2400
*;*;jessica;We1300-1600
2 linhas diferentes, por dois tempos diferentes para cada usuário Expiração de uma Sessão
Quando uma sessão expira (excede o tempo enquanto o usuário já está conectado), o PAM pode alcançá-lo. Enquanto mathilde se conecta durante o horário permitido, é perfeitamente gratuito exceder esse horário! Para isso, usaremos um novo programa: ´cron´. Este aplicativo executa comandos em intervalos de tempo. No nosso caso, usaremos o comando ´skill-KILL-u´ para desconectar o usuário quando a sessão expirar. O manuseio é muito simples. Simplesmente edite o arquivo '/ etc / crontab'. Em seguida, adicione a seguinte linha de código:
Minute Hour Day * * (s) root skill -KILL -u User
Como antes, substituindo os planejamentos de campo Minuto e o tempo desejado. Em seguida, preencha o (s) dia (s) pelo (s) dia (s) banido (s) ou simplesmente digite um asterisco (*) para indicar todos os dias da semana. Por fim, altere o campo usado pela conta de login para ser bloqueado e pronto!
Os dias não percebem o mesmo com os cron
trabalhos! Aqui está a lista de abreviações a serem usadas com este programa:
mon : monday fri : friday
tue : tuesday sat : saturday
wed : wednesady sun : sunday
thu : thursday * : all hours
Alguns exemplos de cron
trabalhos (com exemplos de horários na seção anterior)
jessica pode fazer logon na quarta-feira, das 13:00 às 16:00
-> Desconectar: terça-feira às 16:00.
00 16 * root * wed skill -KILL -u jessica
mathilde tem permissão para se conectar todos os dias das 13:20 às 15:20 e das 16:00 às 20:30.
-> Desconectando: diariamente, das 20:30 às 15:20 ET.
20 15 * * * root skill -KILL -u mathilde
30 20 * * * root skill -KILL -u mathilde
Stone, Frank e Florian têm permissão para se conectar às 14:00 às 18:45 durante os dias da semana e das 14:00 às 22:15 no fim de semana
-> Desconectar (1): segunda, terça, quarta, quinta e sexta, às 18:45. -> Desconectar (2): sábado e domingo às 22h15.
45 18 * * mon,tue,wed,thu,fri root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
15 22 * * sat,sun root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
O comando skill-KILL-u desconecta o usuário da GUI, bem como o TTY. É perfeitamente utilizável para administradores de servidores. No entanto, este comando é imediato e a desconexão será feita sem aviso prévio. Portanto, seria preferível impedir a instalação dos usuários deste dispositivo do computador ou rede em questão!
É possível impedir os usuários com um wall
comando iniciado por cron
alguns minutos antes do final do período , que será exibido nos terminais de todos os usuários.
40 18 * * Mon,Tue,wed,thu,fri root echo "end of session in 5 minutes" | wall
Para impedir que os usuários da GUI possam ser usados no lugar do comando wall, notify-send
está no pacote libnotify-bin
40 18 * * Mon,Tue,wed,thu,fri stone DISPLAY=:0 notify-send "end of session in 5 minutes"
Usuário do Ubuntu 11.10
Eu vi em torno do usuário ter problemas com Pam e eu vi um monte de bug sobre isso, então por que razão? é tão simples O Ubuntu 11.10 não suporta mais o GDM, o novo gerenciador de exibição é lightGDM, o problema é o seguinte, onde armazenamos esta diretiva que account required pam_time.so
eu acho que está /etc/pam.d/lightdm
ou /etc/pam.d/lightdm-autologin
mas como?
então, por perto, você pode verificar esses 2 arquivos de log do LightGdm:
- /var/log/lightdm/lightdm.log
- /var/log/lightdm/x-0.log
ou execute o LightGdm no modo de depuração:
LightDM --debug
ou relate um bug:
ubuntu-bug lightdm
Eu relato o Bug aqui, então cruze seu dedo e espere ....