Autor: Koji
Data: 14/08/2001
Espionando terminais em FreeBSD
Espionar terminais em FreeBSD é uma tarefa fácil e singela, tão só precisámos compilar um novo kernel com alguma opção de mas e fazer uso do comando watch
Compilando o kernel
Antes de compilar temos que adicionar a nosso kernel o pseudo-device snp, supondo que meu kernel se chama meu-kernel faremos:
vi /usr/src/sys/i386/conf/meu-kernel
(me situo ao final do arquivo e adiciono o que segue)
pseudo-device snp 3
(Os espaços em alvo de separação devem ser tabuladores)
Gravamos e isto é todo. Agora vamos à compilação:
cd /usr/src/sys/i386/conf
config meu-kernel
cd ../../compile/meu-kernel
make depend;make;make install
(Se todo tem ido bem reiniciámos)
NOTA: Se não tendes um kernel personalizado usai de nome GENERIC. Também tendes que vos assegurar de que instalastes os fontes do kernel (seção src/sys). Podeis instalá-los posteriormente mediante /stand/sysinstall seção Distributions)
Agora precisámos criar o dispositivo do que faz uso o watch, assim que poremos:
cd /dev
sh MAKEDEV snp0
Aqui acaba a parte de configuração. Agora já podemos fazer
uso do comando watch para espionar terminais.
É importante criar o dispositivo snp0 já que se não estivesse criado e
ao usar o watch nos diria algo do estilo:
watch: fatal: cannot open snoop device
A sintaxe de watch é a que se costuma usar comunmente, é
dizer, watch %[-opções ] terminal
Não faz defeituosa especificar a rota /dev à hora de pôr o nome
de terminal, é optativo. O que se é obrigatório é executar watch como
root
Não há demasiadas opções em watch . Comentarei as mas significativas pondo um exemplo.
Imaginar-vos que estais em vossa maquina e depois de fazer um who veis o seguinte:
root ttyv0 Aug 12 10:20.
chuck ttyp0 Aug 12 16:49 (62.36.110.46)
O usuário chuck a conectado remotamente a nossa maquina, e vemos que usa o terminal ttyp0. O outro usuário somos nós em consola. Para espionar-lhe podemos teclear watch ttyp0. A partir desse momento todo o que teclee e veja o usuário chuck o veremos nós. Se pelo contrário lhe dá por fazer um exit e finaliza sua sessão veremos uma mensagem do estilo:
Snoop stopped due to tty close. Reconnecting.
Enter device name %[/dev/ttyp0]:
Como o usuário em questão já não está, watch nos convida a teclear outro terminal para espionar a outro usuário.
Isto diríamos que é ao usar o comando tal qual, sem nenhum tipo de opção. Vejamos algumas teclas e opções interessantes:
Teclas que nos podem interessar
<controle-G>
Para sair do programa watch
<controle-W>
Para limpar a tela
<controle-X>
Para espionar a outro terminal
Outras opções que nos podem interessar
Para meu as opções mas interessantes são estas:
-c
Serve para que watch se ponha em modo espera se o usuário teclea exit
ou finaliza sua sessão. É dizer, quando o usuário acabe sua sessão na
maquina nós veremos o clasido login: e quando se volte a usar esse
terminal watch seguirá espionando
-W
Permite escrever no terminal do usuário ao que espionamos, como se dele
nos tratássemos.
Para um maior detalhe das opções remeter-vos ao manual do watch tecleando man watch