Adding delimiter to logged in users


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding delimiter to logged in users
# 8  
Old 09-04-2008
Just one more thing, not really important, but is it possible to display their full name instead of username?

Bascially...

Code:

if who | cut -f1 -d " " | uniq -d | grep -xf user.deny ; then
    echo
    echo "$(cat /etc/passwd | awk -F: '{print $5}') has logged in more than once"
else
    echo
    echo "None found"
fi

I imagine i would need to grep the etc/passwd for with the usernames, but just not quite sure how to get them...

Anyway, thanks for any help!

-Crawf
# 9  
Old 09-04-2008
Code:
users=`who | cut -f1 -d " " | uniq -d | fgrep -xf user.deny`
case $? in
  0) for f in $users; do
      echo "s/^$f"':[^:]*:[^:]*:[^:]*:\([^:,]*\)[:,].*/\1 has logged in more than once/p'
    done | sed -n -f - /etc/passwd
  *) echo None found ;;
esac

The use of fgrep is somewhat faster especially when searching for multiple strings, but the real reason I use it is that it doesn't require special characters to be escaped; everything is treated as a literal string.
# 10  
Old 09-04-2008
Thanks for the help for that, seems to be rather complicated in the middle section with the
Code:
echo "s/^$f"':[^:]*:[^:]*:[^:]*:\([^:,]*\)[:,].*/\1 has logged in more than once/p'

Not quite sure whats going on there, but thanks for the help! I dont suppose there is a dumber way for someone like me? Smilie

-Crawf
# 11  
Old 09-04-2008
It's basically equivalent to awk -v user="$f" -F : '$1 == user { print $5 }' if you prefer that. It prints the fifth field when there is a match on the first. (The sed script additionally prunes anything after the first comma; you can do that with sub in awk.)

Actually this could be a place to finally actually implement the putting of pipes between the values!

Code:
awk -v regex=^`echo -n "$users"*| tr ' ' '|'`$ -F : '
  $1 ~ regex { p=$5; sub (/,.*/, "", p); print p " has logged in more than once" }' /etc/passwd

If your awk doesn't understand -v, see if you have nawk or gawk or mawk

Last edited by era; 09-04-2008 at 07:25 AM.. Reason: Finally implement pipes between values
# 12  
Old 09-04-2008
Ah i see! I guess there is more than one way to do things!

That works perfectly era! Thanks so much for all your help! Really appreciate it!

-Crawf
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Users logged into the system

So I'm trying to write a single line command So I have to use last first in this command and I've figured out the format my professor wants it in, something like thislast | cut -d' ' -f1,15 | sort > check | uniq -c.... and I never can get it right, when I just last command I get something... (2 Replies)
Discussion started by: DoubleAlpha
2 Replies

2. Shell Programming and Scripting

Users not logged in for last 90 days

Hi, How to find the users who did not login into a UNIX box (thru ssh/ftp or any other way) for last 90 days? I think of using "finger" or "last" command to findout each user's last login and then find number of days between today and that day. Is there any other better way or anyone prepared... (1 Reply)
Discussion started by: reddyr
1 Replies

3. Red Hat

Current logged in users

I have 2 systems. (1) RHEL5 and (2) winXP pro from xpPRO putty i ssh into rhel5 : user root from xpPRO i ftp into rhel5 : user abc123 when i run #uptime it only shows 1 user when i do #ps -u abc123 : it shows vsftpd deamon PID is there a command that can be used to show all currently... (4 Replies)
Discussion started by: dplinux
4 Replies

4. UNIX for Dummies Questions & Answers

How many users are logged in?

How do I find this out? I have a feeling its a simple command such as who, but I just don't know what it is. I've had a search on here but either I can't put it into the right search criteria or there isn't a topic on it. Thanks. EDIT: Delete this thread, as I posted it I noticed the... (0 Replies)
Discussion started by: chris_rabz
0 Replies

5. Programming

Get the list of logged in users

How can I get the list of logged in users in the system programmatically? I can get the list with 'who' or 'users' commands but I need to get the list programmatically... May someone help, please? Thanks in advance. (2 Replies)
Discussion started by: xyzt
2 Replies

6. Shell Programming and Scripting

Users Not Logged in

I have searched the forums but have not mangaed to quite find what im looking for. I have used to /etc/passwd command to present me a list of all users the who command to present all users currently logged on, but what i want to know is what command can i use to display users that are registered... (12 Replies)
Discussion started by: warlock129
12 Replies

7. Post Here to Contact Site Administrators and Moderators

logged out users

how to find out users who logged out within 5 minutes (1 Reply)
Discussion started by: roshni
1 Replies

8. UNIX for Advanced & Expert Users

HP-UX users get logged off while idle.

Im "supporting" at least 2500 HP-UX workstations with CAD-related software with the B.11.11 build. I cant say anymore than that because of my companys sligtly paranoid security policy . The last few days a new problem has arised from nowhere. The problem is that users gets logged off when the... (5 Replies)
Discussion started by: Laoinjo
5 Replies

9. Shell Programming and Scripting

how many users logged

in unix what is the syntax to find out how many users are currently logged in (4 Replies)
Discussion started by: trichyselva
4 Replies

10. UNIX for Dummies Questions & Answers

Information about users who have logged.

Hi, Suppose I have a programme called Menu. This menu has various choices as we would expect from a Menu. Now Can you Please help me as I want the details of the Users to be registered to some file , Whoever has entered this particular Program . Basically to see the username and the time that... (2 Replies)
Discussion started by: rooh
2 Replies
Login or Register to Ask a Question