Bloquear a tela de uma estação em rede

Iniciado por Evandro Abu Kamel, 13 de Setembro de 2007, 20:14

tópico anterior - próximo tópico

Evandro Abu Kamel

Seguinte galera, estou com problemas para serem resolvidos urgente sobre isso.

No caso, existe uma rede e um sistema de gerenciamento, feito em PHP, rodando no servidor.

Mas preciso que através do servidor, as estações sejam bloqueadas e desbloqueadas, mas o PHP não executa nenhum comando/programa, como o DCOP... apenas aqueles que retornam alguma coisa.

Mas o PHP consegue escrever em um arquivo! ;)

Andei pensando em criar um script que ficará em execução todo o tempo em que a máquina estiver logada com o "cliente". Então o PHP entra e escreve em um arquivo para permitir ou não o bloqueio, senão, por quanto tempo.

É possível o PHP usar os comando de escrita em arquivo através da rede?
Como ficaria a localização do arquivo?
Como colocar o script em execução o tempo todo e perceber as modificações no tal arquivo?

A idéia do bloqueio é a seguinte:
1 - Para bloquear é só chamar o comando "dcop kdesktop KScreensaverIface lock";
2 - Para desbloquear para tal cliente, estou pensando em alterar a senha do login "cliente" para a senha do tal cliente;
3 - Assim que for desbloqueado, o Linux irá receber o tempo do cliente, que está escrito no arquivo e quando o tempo acabar o bloqueio será chamado e a senha voltará para o padrão.

Bem pessoal, a idéia é essa.
Preciso de ajuda com isso pois não conheço os comandos do Linux para tal e o prazo é curto.
Estarei pesquisando sobre isso aqui.

Desde já, agradeço.


Evandro Abu Kamel

Como ninguém repondeu, vou postar o script que fiz e gostaria dessem uma olhada, ver se tem algum erro...


#! /bin/sh

if [ `who | cut -d " " -f "1"` = "cliente"  ]
then
while [ `who | cut -d " " -f "1"` = "cliente"  ]
do
palavra = cat /usr/local/lanux/.block.txt

if [ $palavra = "livre" ]
then
dcop kdesktop KScreensaverIface lock
elif [ $palavra != "livre" ]
then
cliente = cat /usr/local/lanux/.block.txt | head -1
horas = cat /usr/local/lanux/.block.txt | head -2
minutos = cat /usr/local/lanux/.block.txt | head -3

sleep 15
tempo = $horas + [ $minutos*0.01666666666666666667 ]
sleep $tempo && dcop kdesktop KScreensaverIface lock
fi
done
fi