Finger, fazer um finger:

O comando finger é uma ferramenta de linha de comando que exibe informações sobre usuários de sistemas Unix-like. Introduzido em 1971 no sistema operacional Unix da Bell Labs, o comando finger foi originalmente desenvolvido para fornecer uma lista de usuários conectados a um servidor remoto. Atualmente, o comando finger é usado para obter informações de contato, como nome, endereço de e-mail e telefone, bem como outras informações sobre o usuário, como status, tempo de conexão, data de login e diretório home.

O comando "finger" é uma ferramenta de linha de comando usada para obter informações sobre usuários em um sistema. Ele foi originalmente desenvolvido para o sistema operacional Unix, mas também está disponível em outros sistemas, como o Linux. O comando "finger" é usado para obter informações sobre usuários, como o nome de usuário, o nome real, o endereço de e-mail, o número de telefone, o endereço de casa, o nome do computador e outras informações.

O comando "finger" é usado para obter informações sobre usuários em um sistema. Ele pode ser usado para obter informações sobre um usuário específico ou para obter informações sobre todos os usuários em um sistema. Para obter informações sobre um usuário específico, você deve usar o comando "finger" seguido do nome de usuário. Por exemplo, se você quiser obter informações sobre o usuário "jsmith", você deve usar o comando "finger jsmith".

Além de obter informações sobre usuários, o comando "finger" também pode ser usado para obter informações sobre arquivos. Para obter informações sobre um arquivo específico, você deve usar o comando "finger" seguido do nome do arquivo. Por exemplo, se você quiser obter informações sobre o arquivo "myfile.txt", você deve usar o comando "finger myfile.txt".

O comando "finger" é uma ferramenta útil para obter informações sobre usuários e arquivos em um sistema. Ele pode ser usado para obter informações sobre um usuário específico ou para obter informações sobre todos os usuários em um sistema. Além disso, ele também pode ser usado para obter informações sobre arquivos. Se você estiver procurando por uma maneira de obter informações sobre usuários e arquivos em um sistema, o comando "finger" pode ser uma ótima opção.

Obter informações sobre um usuário através do programa finger. Finger é um protocolo e comando de troca de informação sobre utilizadores. Descrito no RFC 742, permite aceder à informação sobre utilizadores de uma máquina remota. O RFC usado para implementar este trabalho foi o RFC 1288, escrito em Dezembro de 1991. Este RFC actualiza os RFCs 1196, 1194 e 742.


De uma forma genérica, o funcionamento do Finger resume-se a efetuar uma conexão à porta 79 do servidor, e a realizar um pedido. O servidor envia a resposta de acordo com os dados do pedido. Em técnicas de hackers, o protocolo Finger é usado pra capturar senhas de todos os usários de um sistema para que se possa ter acesso usuário root ao sistema sem a necessidade de quebrar a senha por força bruta. Se o pedido for feito em DotIn no sistema, será retornado um erro provocando a quebra do sistema: eis aí o principal motivo de tal protocolo ser quase inexistente na maioria das redes e sua porta protegida diretamente pelo firewall. Os dados enviados são em formato ASCII com os códigos de CR e LF no final. O buffer que recebe os resultados do Finger pode ser imediatamente impresso na tela sem necessidade de tratamento, uma vez que os dados já se encontram formatados.

O comando finger é executado no terminal do sistema operacional e pode ser usado para obter informações sobre um usuário específico ou sobre todos os usuários do sistema. Para obter informações sobre um usuário específico, o comando é executado como:

finger <username>

Onde <username> é o nome de usuário do usuário para o qual você deseja obter informações.

Para obter informações sobre todos os usuários do sistema, o comando é executado como:

finger

Características:

  • O comando finger pode ser usado para exibir informações sobre usuários locais e remotos.
  • As informações exibidas pelo comando finger são armazenadas em arquivos de banco de dados do sistema, como /etc/passwd e /etc/utmp.
  • O comando finger é amplamente utilizado em ambientes Unix-like, como sistemas operacionais Linux e FreeBSD.
  • O comando finger é usado principalmente por administradores de sistemas para monitorar a atividade do usuário e gerenciar as contas de usuário.

Pontos positivos:

  • O comando finger é fácil de usar e fornece informações úteis sobre usuários do sistema.
  • O comando finger pode ajudar os administradores de sistemas a monitorar a atividade do usuário e detectar possíveis problemas de segurança.
  • O comando finger pode ser personalizado para exibir informações específicas sobre os usuários.

Pontos negativos:

  • O comando finger pode expor informações confidenciais do usuário, como número de telefone e endereço de e-mail.
  • O comando finger pode ser usado para coletar informações sobre usuários, o que pode ser um problema de privacidade.
  • Em alguns sistemas, o comando finger pode não estar disponível ou pode ser desabilitado por razões de segurança.



Exemplos de comandos do cliente Finger no Linux


Sintaxe: finger [opções] usuários   Mostra dados sobre um ou mais usuários, incluindo informações listadas nos arquivos .plan e .project no diretório de base de cada usuário. Você poderá especificar cada usuário como um nome de login ( correspondência exata ) ou como um prenome ou sobrenome (mostra informações sobre todos os nomes correspondentes).     Opções: -m
Suprime a correspondência de nomes reais de usuário.

-p
Omite a exibição de arquivos .plan e .project.

-s
Exibe o formato curto: nome de login, nome real, nome do terminal, status de gravação, tempo de inatividade, localização do escritório e número do telefone comercial.


Exemplo de implementação do cliente Finger

// - 0 finger do ISEP
// para testar - server: gnu.org users: karl, pot
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h> 
#define BUFLEN 30000
main (int argc,char*argv[])
{
 struct sockaddr_in target;
 struct hostent *he;
 struct servent *sp;
 int sock, nread;
 char*tmp, buffer[BUFLEN];
 char server[100], user[20];
 int i;
 if(argc==1){
 puts("Sintaxe do Programa: ifinger [user] server\n");
 printf("Servername: ");
 fgets(server, BUFLEN, stdin);
 tmp = index (server,'\n');
 *tmp ='\0';
 printf("Username: (ENTER=todos) ");
 fgets(user,20, stdin);
 }
 if(argc==3){
 strcpy(server,argv[2]);
 strcpy(user, argv[1]);
 strcat(user,"\r\n");
 }
 if(argc==2){
 strcpy(server,argv[1]);
 strcpy(user,"\r\n");
 }
 if((he = gethostbyname (server))== NULL)
 {
 perror("ERRO: nao encontra server");
 exit(1);
 }
 if((sock = socket (AF_INET, SOCK_STREAM,0))==-1)
 {
 perror("ERRO: nao criou socket");
 exit(1);
 }
 if((sp = getservbyname ("finger","tcp"))== NULL)
 {
 perror("ERRO: nao encontra porta");
 exit(1);
 }
 memset(&target,0,sizeof(target));
 target.sin_family= AF_INET;
// target.sin_port = 79; 
 target.sin_port= sp->s_port;
 target.sin_addr=*((struct in_addr *) he->h_addr);
 if(connect (sock,(struct sockaddr *)&target,sizeof(target))<0)
 {
 perror("ERRO: na conexao");
 exit(1);
 }
 nread =strlen(user);
 nread = write (sock, user, nread);
 nread = read (sock, buffer, BUFLEN);
 printf("Resultado: \n\n %s", buffer);
 close (sock);
 exit(0);
}


Conclusão

 Embora o comando finger tenha sido introduzido há mais de 50 anos, ele ainda é amplamente utilizado em ambientes Unix-like. Embora possa ser útil para administradores de sistemas, é importante ter cuidado ao usar o comando finger para evitar expor informações confidenciais do usuário ou violar a privacidade. Administradores de sistemas devem estar cientes das possíveis implicações de segurança ao usar o comando finger e considerar a possibilidade de desabilitá-lo ou restringi-lo em seus sistemas, dependendo das políticas de segurança da organização.

Fontes: