Olá.
O timeoutd é uma gambiarra, pelo menos no meu conceito do que seja uma
gambiarra. :D :D :D :D :D
Nunca vi um servidor centralizado de controle para (des)conexão para
linux, mas não seria dificil de fazer um utilizando-se, no lado do
cliente, de wget, ssh ou ftp e um programinha feito em perl e compilado
em binario - agendado na cron - algo no estilo do timeoutd, so que sem
ser daemon - e do lado do servidor uma pasta contendo arquivos de
especificações de tempo/usuarios/maquinas.
Falei perl, mas poderia ser feito mais facilmente em bash, ou até mesmo
em C.
algo como
do lado do cliente:
#!/bin/bash
LC_ALL=C
. /etc/controle_sessao.conf
mkdir -p /var/run/$$controle$$
chown root.root /var/run/$$controle$$
chmod 700 /var/run/$$controle$$ -R
cd /var/run/$$controle$$
wget http://$SERVIDOR/$DIRETORIO/$MAQUINA
CONTROLE_USUARIO_X=$(last | grep still | egrep :0 | :1| :2| :3| :4:|
:5| :6])
USUARIO_X=$(echo $CONTROLE_USUARIO_X | awk '{ print $1}' )
TEMPO_USUARIO_X=$(echo $CONTROLE_USUARIO_X| awk '{ print
$4:$5:$6}' )
MES_USUARIO_X=$(echo $TEMPO_USUARIO_X|cut -d: -f1)
DIA_USUARIO_X=$(echo $TEMPO_USUARIO_X|cut -d: -f2)
HORA_USUARIO_X=$(echo $TEMPO_USUARIO_X|cut -d: -f3)
MINUTO_USUARIO_X=$(echo $TEMPO_USUARIO_X|cut -d: -f4)
CONTROLE_USUARIO=$(grep $USUARIO_X $MAQUINA)
MES_CONTROLE=$(echo $CONTROLE_USUARIO | cut -d: -f2 )
DIA_CONTROLE=$(echo $CONTROLE_USUARIO | cut -d: -f3 )
HORA_CONTROLE=$(echo $CONTROLE_USUARIO | cut -d: -f4 )
MINUTO_CONTROLE=$(echo $CONTROLE_USUARIO | cut -d: -f5 )
MES_AGORA=$(date xxx)
DIA_AGORA=$(date yyy)
HORA_AGORA=$(date zzz)
MINUTO_AGORA=$(date kkk)
if [ tra-la-la ]; then
if [ tra-la-le ]; then
if [ tra-la-li ]; then
...
...
...
killall -HUP $GRAFICO
...
...
...
fi
fi
rm -rf /var/run/$$controle$$
==
no /etc/controle_sessao.conf apenas variaveis:
SERVIDOR=192.10.0.1
DIRETORIO=controle
MAQUINA=maquina1.conf
GRAFICO=$(/etc/X11/default-display-manager)
no /etc/crontab, adicionar uma linha ou colocar o script dentro de
algum diretorio já existente, de acordo com a periodicidade desejada;
do lado do servidor, pasta do apache contendo:
/var/www/controle/maquina1.conf
/var/www/controle/maquina2.conf
/var/www/controle/maquina3.conf
/var/www/controle/maquina4.conf
(...)
cada arquivo .conf contendo a estrutura:
usuario1:0:0:8:0
usuario2:0:0:8:0
usuario3:0:0:8:0
---
primeiro campo=nome do usuario
segundo campo=meses
terceiro campo=dias
quarto campo=horas
quinto campo=minutos
...
em cada estação, agendaria na cron a periodicidade de execução do
script..
as unicas coisas para serem completadas - e que estou com sono o
bastante para terminar - seriam as datas atuais e os ifs da vida.
---
apenas uma ideia de como montar você mesmo um servidor de controle de
horários. Com um pouco mais de tempo, você até poderia montar um
pacote, escrever uma documentação, e distribuir.. :D :D :D (e talvez
deixasse de ser uma gambiarra. )
Neste caso eu usei wget e bash. Mas poderia ser usado um scp com chaves
pre-definidas, e perl compilado em bytecode, usando lwp para nao ter
que criar diretorios temporarios, ou um bash compilado usando o shc -
Shell script compiler. Algo para que os seus usuários não se sintam
muito felizes em tentar ver como funciona :D :D :D
Ou poderia usar este esqueleto para alterar os arquivos de configuração
do timeoutd de todas as estações, por exemplo. São apenas idéias.
Meus 2 centavos.
[ ]s, e divirta-se
henry
--- Samuel Rios Carvalho [EMAIL PROTECTED] escreveu:
esse timeoutd é legal, mas se tivesse um server pra gerenciar meus
usuarios
seria melhor.
On 3/31/07, oeslei taborda ribas [EMAIL PROTECTED] wrote:
Eu não falei que tinha um solução mais inteligente!!! rsss
apt-cache show timeoutd
depois de instalar você configura o /etc/timeouts e pronto
você pode definir maximo de tempo idle, maximo de tempo
em uma tty, limite por dia, etc... ele é bem completo
At+
Oéslei
Em 31/03/07, oeslei taborda ribas [EMAIL PROTECTED]
escreveu:
talvez tenha uma solução mais inteligente, mais o que eu pensei
seria que você pode colocar um script na cron para rodar de 10 em
10 min
(pode mudar esse tempo) e nesse script vc pega o tempo de inicio
de
sessão
que pode ser obtido com o comando W e diminui do horario atual
logo
você vai ter o tempo de uso daquela sessão depois você pode
colocar
uma condicional, se maior que 8 hrs restart o gdm ou desligue o
pc,
etc...
Como eu disse talvez tenha algo pronto para isso, mais não
conheço...
At+
Oéslei.
Em 31/03/07, Samuel Rios Carvalho [EMAIL PROTECTED] escreveu:
Pessoal,
alguém tem alguma idéia como posso limitar o tempo de uso de um
PC.
por exemplo, se alguém passou mais de 8 horas com o gdm aberto,
ele vai e
fecha sozinho.
num pode ser gambiarra. utilizo servidor PDC/samba e LDAP.
--
Samuel Rios Carvalho
__
Fale com seus