
Wie greppt man alle angemeldeten Benutzer aus einer Benutzerliste in Linux (Ubuntu)?
Bisher habe ich Folgendes erreicht:
cat /etc/passwd | grep "/home" | cut -d: -f1
Antwort1
wie oben kommentiert mit „Wer“ zeigt Ihnen, wer angemeldet ist.
Sie können sich historische/aktuelle Daten auch im Lastlog ansehen.
und lastb für die letzten fehlerhaften Anmeldungen.
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;
Benutzername: xxx ist und ist bei pts/0 angemeldet
Benutzername: xxx ist und ist bei pts/5 angemeldet
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;
Antwort2
Der users
Befehl wird wahrscheinlich hilfreich sein. Aus der Manpage:
users - print the user names of users currently logged in to the current host