Display info about users (UID GID processes terminal)

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Display info about users (UID GID processes terminal)
# 1  
Old 04-24-2015
Display info about users (UID GID processes terminal)

I would like to get an opinion for my solution for this task and get feedback about better approach or mistakes I have made.

1. The problem statement, all variables and given/known data:
The task is to create a script which prints information about users whose names are specified in the parameters between spaces.

Result should display:
  • user name
  • UID
  • GID
  • home path
  • status (logged in or not)
  • if yes specify terminal name and number of processes running
If user is logged in to more than one terminal then it should display info about every terminal separately.

If there is no parameter specified then information displayed should concern the user who run the script


2. Relevant commands, code, scripts, algorithms:
I used simple commands:
grep ps who wc cut
to get necessary information

3. The attempts at a solution (include all code and scripts):
Code:
#!/bin/sh
if [ -z "$*" ]
then
	users=$(who)
else
	users=$*
fi
for name in $users
do
	line=$(grep "^$name:" /etc/passwd)
	if [ -z "$line" ]
	then
		echo "User not found"
	else
		 printf "$line" | cut -f 1,3,4,6 -d:
	
		if [ -n "$(who | grep $name)" ]
		then
			printf " logged in at "
			terminale=$(who | grep $name)
			terminale=`echo "$terminale" | cut -f2 -d" "`
			for terminal in $terminale
			do
				printf "%s " $(echo "$terminal" | cut -f2 -d" ")
				printf "%s processes " $(ps -t $terminal | wc -l)
			done
			printf "\n"
		else
			printf "Not logged in \n"
		fi	

	fi	
done


4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
Wojskowa Akademia Techniczna, Poland
Operating Systems (Systemy Operacyjne)
A.Zieliński
# 2  
Old 04-24-2015
Some comments, as requested:
- Don't use who if parameters are missing (too many fields); use whoami.
- Use a format string for the first printf, and consider abandoning echo in printf's favour.
- Don't use $(who | grep $name) several times; run it once and store its output.
- Use `...` or $(...) consistently.
- Due to possibly different output fields between your and my who, I can't comment on the terminal(e) stuff, but with my who's results that processing looks bizarre
# 3  
Old 04-26-2015
printf "$line" would do special actions on % signs. Better have "%s" as you did it elsewhere.
who | grep "$name" should match the whole word at the beginning. You did it correctly with /etc/passwd.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

UID & GID instead of user name and group name

Hi Everyone, We are encountering the following issue on AIX 5.3. When we do ls -ltr the list displays only user id and group id instead of user name and group name. This is happening for all users except root. Whe we do ls -ltr with root user it shows perfectly fine. When we searched... (25 Replies)
Discussion started by: madhav.kunapa
25 Replies

2. Shell Programming and Scripting

Find users with root UID or GID or root home

I need to list users in /etc/passwd with root's GID or UID or /root as home directory If we have these entries in /etc/passwd root:x:0:0:root:/root:/bin/bash rootgooduser1:x:100:100::/home/gooduser1:/bin/bash baduser1:x:0:300::/home/baduser1:/bin/bash... (6 Replies)
Discussion started by: anil510
6 Replies

3. UNIX for Dummies Questions & Answers

uid ,gid value change

Present /home/dsadm# id dsadm uid=0(root) gid=0(root) ---------------------------------- needs to be /home/dsadm> id dsadm uid=23186(dsadm) gid=16284(gdstage) Please provide the command/steps for the above uid, gid value change Thanks in advance for all your support . ... (3 Replies)
Discussion started by: sridhardwh
3 Replies

4. Shell Programming and Scripting

changing uid,gid

Hi, I am new to scrippting need little help, I would like to change uid, gid of exisisting user, example User A current uid=1,gid=2 would like to change uid=4,gid=5 I know the command to change uid,gid but after changing I have to change permissions on folders also which are belonging... (3 Replies)
Discussion started by: manoj.solaris
3 Replies

5. UNIX for Advanced & Expert Users

Numeric uid and gid in ls -l command

I´m listing the contents of a directory using the command ls -lI get numeric uid and gid for some lines. example: drwxr-xr-x root root 1970-01-01 01:00 sys -rw-r--r-- 501 20 0 2010-08-04 14:54 shutdown.bravo.rc drwxr-x--- 501 20 ... (5 Replies)
Discussion started by: flocki
5 Replies

6. Shell Programming and Scripting

How to display what processes, users have opened at a given time

Hello, What i have to do is make a top 10 list of users sorted by the number of processes opened at a given time. Can anyone help me with finding out for a given moment, for all users how many processes each had opened? (5 Replies)
Discussion started by: gabibyte
5 Replies

7. UNIX for Advanced & Expert Users

GID & UID for HP-UX ?

Hi, can somebody tell me how to make directoriy in which all files will be generated as dir owner ? I'm able to add GID for directory group and files have group id like folder , but when i do same for user files still are created as user which creates them :( drwsrwsrwx 2 flexbul ... (2 Replies)
Discussion started by: pp56825
2 Replies

8. UNIX for Dummies Questions & Answers

UID & GID of the running process

Hi, out of curosity this question just popped in my mind. Is there any way to find out the uid and gid of the running process ? If i do a ls -l of a program then it shows the uid/gid bit (if its set). I want to see as which user/group the program is running ..... is there any way to know this... (2 Replies)
Discussion started by: ankurjain
2 Replies

9. Solaris

NFS Mount UID and GID

I have a truble with NFS mount. When i mount remote dir, then all permissions changes! For example: # mkdir /data # mount 10.1.1.100:/var/data /data # ls -l /data drwxr-xr-x 7 nobody nobody 5632 Oct 22 14:55 file1 drwxr-xr-x 4 nobody nobody 512 Oct 22 14:55... (4 Replies)
Discussion started by: jess_t03
4 Replies

10. UNIX for Dummies Questions & Answers

negative UID/GID?!! I can see 'em but what the hell do they mean?!

Just as the subject asks :) Thanks! hellz (2 Replies)
Discussion started by: hellz
2 Replies
Login or Register to Ask a Question