Como receber todos os usuários logados?

Como receber todos os usuários logados?

Como fazer grep para todos os usuários logados de uma lista de usuários no Linux (Ubuntu)?

Até agora consegui:

cat /etc/passwd | grep "/home" | cut -d: -f1

Responder1

como comentado acima w ou who mostra quem está logado..

Você também pode consultar os dados históricos/atuais no lastlog

e lastb para os últimos logins incorretos.

w|grep pts|awk '{print $1}'



for ids in $(w|grep pts|awk '{print $1"_"$2}'); do id=${ids%%_*}; pts=${ids##*_}; actualperson=$(getent passwd $id|awk '{print $5}'); echo "Username: $id  is $actualperson and is logged into $pts";  done;

Nome de usuário: xxx está e está logado em pts/0

Nome de usuário: xxx está e está logado em pts/5

 for ids in $(w|grep pts|awk '{print $1"_"$2}'); do 
   id=${ids%%_*};
   pts=${ids##*_}; 
   actualperson=$(getent passwd $id|awk '{print $5}'); 
   # echo to your console the persons details
   echo "Username: $id  is $actualperson and is logged into $pts"; 
   # Send a message to person logged in telling them you know their logged in
   echo "I know your logged in $actualperson"|tee /dev/$pts 2>&1>/dev/null;  
 done;

Responder2

O userscomando provavelmente será útil. Na página de manual:

users  -  print the user names of users currently logged in to the current host

informação relacionada