Ajuda em criação de scripts [RESOLVIDO]

1. Ajuda em criação de scripts [RESOLVIDO]

Leonardo Rodrigues
NadoLoko

(usa Ubuntu)

Enviado em 02/06/2015 - 10:25h

Gurizada estou iniciando Linux e não sei nada sobre os comandos, estou precisando resolver um determinado exercício e estou tomando um laço. Segue o exercício:
Escreva um script que diga o UID dos usuarios que estão conectados na maquina, qual o IP de origem e a hora que ele conectou.
(Cola: utilize o comando who para ver quais usuários estão logados no momento)

Sei que who exibe os usuários e horários, sei que id exibe os UIDs, mas não consegui criar um script que me solucionasse o problema.
Preciso de ajuda.


  


2. MELHOR RESPOSTA

thinomar
thinomar

(usa Linux Mint)

Enviado em 03/06/2015 - 12:40h

Cara, você nem leu o que eu disse, né? Por que, como eu disse, você só precisa do who e do id para puxar todas as informações que precisa. O restante, como eu disse, é só FILTRAGEM DE CONTEUDO. Mas ok. Fiz o script e comentei ele todo para que você entenda ele na integra. Qualquer dúvida, só perguntar. :)
#!/bin/sh
# Listagem de usuarios ativos
# listusers.sh
# Desenvolvido por: Thiago Martins
# Em: 2015-06-03

# Lista usuarios ativos, substitui espacos em branco
# por virgulas (para evitar problemas no foreach) e
# grava saida em arquivo temporario
who | sed "s/[[:space:]]\+/,/g" > /tmp/usuarios.temp

# Foreach. Joga cada linha do arquivo temporario
# na variavel "u", uma linha por vez, ate
# que nao haja mais linhas no arquivo
# OBS: Como observado, o arquivo corresponde
# a saida do comando who
for u in `cat /tmp/usuarios.temp` ; do
# Filtragem de hora
hora=`echo $u | cut -d "," -f 4`
# Filtragem de data + acrescimo de hora
hora="`echo $u | cut -d "," -f 3` as $hora"
# Filtragem de IP
ip=`echo $u | cut -d "(" -f 2 | cut -d ")" -f 1`
# Filtragem de usuario
usuario=`echo $u | cut -d "," -f 1`
# Execucao do comando id para o usuario filtrado na linha
# anterior. Filtragem de UID
uid=`id $usuario | cut -d "=" -f 2 | cut -d "(" -f 1`
# Impressao dos dados #
echo "Usuário: $usuario"
echo "UID: $uid"
echo "Data/Hora de login: $hora"
echo "IP: $ip"
echo ""
done

# Remocao do arquivo temporario
rm -f /tmp/usuarios.tmp

Você já deve saber, mas, mesmo assim, não esqueça de dar permissão de execução nele assim que o salvar:
chmod +x ./listusers.sh 

--
sudo make me a sandwich

3. Re: Ajuda em criação de scripts

thinomar
thinomar

(usa Linux Mint)

Enviado em 02/06/2015 - 12:54h

Mostre o que já conseguiu fazer e qual, exatamente, é a sua dúvida na criação do script, pois assim fica mais fácil para você receber ajuda, e para nós em ajudar :)
Mas, já pra adiantar, use o who para descobrir usuário, ip e hora, e id usuario para descobrir o uid. O restante é só filtragem.
--
sudo make me a sandwich


4. Re: Ajuda em criação de scripts [RESOLVIDO]

Leonardo Rodrigues
NadoLoko

(usa Ubuntu)

Enviado em 02/06/2015 - 14:36h

Até agora não fiz praticamente nada.
Quando utilizo o who ele mostra todos os usuários. Quando executo o comando id -u ele me mostra o UID.
Gostaria, e o que não estou conseguindo, é que quando eu executar o meu script shell ele mostrasse em tela:

Usuário UID IP de origem Hora da conexão

de todos os usuário conectados. O comando who não mostra o UID, por isso só ele não serve.



5. Re: Ajuda em criação de scripts [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 02/06/2015 - 15:16h


who | grep nomedousuário

id | grep nomedousuário


6. Re: Ajuda em criação de scripts [RESOLVIDO]

Leonardo Rodrigues
NadoLoko

(usa Ubuntu)

Enviado em 02/06/2015 - 16:49h


Infelizmente não ajuda danniel.
O meu script é básico

#!/bin/bash

who -H (aqui mostra os usuário e horários e algumas outras informações)
id -u (mostra o UID do usuário atual, e gostaria de obter de todos os usuários logados)
last -d (mostra o endereço IP que o usuário logou e mais algumas informações)


quando executo mostra o resultado de cada comando por vez, sendo o id -u somente do usuário atual. O que gostaria é que, quando executado, mostrasse algo do tipo:
Usuário UID IP de origem Hora que logou
Adão 1000 192.1.168.1 10:00
Maria 1001 192.1.168.190 10:30

informando cada usuário logado na minha máquina, se for possível, claro.


7. Re: Ajuda em criação de scripts [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 02/06/2015 - 17:15h


tu podes concatenar os comandos


8. Re: Ajuda em criação de scripts [RESOLVIDO]

Leonardo Rodrigues
NadoLoko

(usa Ubuntu)

Enviado em 03/06/2015 - 14:25h


Como havia dito tinomar, sou iniciante, não tenho muita noção quanto a filtragens.
Mas era o que eu precisava, valeu e muito obrigado pelos comentários, facilitou muito o meu entendimento.

Valeu!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts