Sponsored Content
Homework and Emergencies Homework & Coursework Questions Display info about users (UID GID processes terminal) Post 302942102 by kornfan on Friday 24th of April 2015 08:15:30 AM
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
 

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
GEARMAN_TASK_DENOMINATOR(3)					     Gearmand					       GEARMAN_TASK_DENOMINATOR(3)

NAME
gearman_task_denominator - Gearmand Documentation, http://gearman.info/ SYNOPSIS
#include <libgearman/gearman.h> gearman_task_st void gearman_task_free(gearman_task_st *task) void *gearman_task_context(const gearman_task_st *task) void gearman_task_set_context(gearman_task_st *task, void *context) const char *gearman_task_function_name(const gearman_task_st *task) const char *gearman_task_unique(const gearman_task_st *task) const char *gearman_task_job_handle(const gearman_task_st *task) bool gearman_task_is_known(const gearman_task_st *task) bool gearman_task_is_running(const gearman_task_st *task) uint32_t gearman_task_numerator(const gearman_task_st *task) uint32_t gearman_task_denominator(const gearman_task_st *task) void gearman_task_give_workload(gearman_task_st *task, const void *workload, size_t workload_size) size_t gearman_task_send_workload(gearman_task_st *task, const void *workload, size_t workload_size, gearman_return_t *ret_ptr) const void *gearman_task_data(const gearman_task_st *task) size_t gearman_task_data_size(const gearman_task_st *task) void *gearman_task_take_data(gearman_task_st *task, size_t *data_size) size_t gearman_task_recv_data(gearman_task_st *task, void *data, size_t data_size, gearman_return_t *ret_ptr) const char *gearman_task_error(const gearman_task_st *task) New in version 0.21. gearman_return_t gearman_task_return(const gearman_task_st *task) New in version 0.21. Link with -lgearman DESCRIPTION
A gearman_task_st represents a task. Work that is sent by a client to a gearman server is seen as a task (a worker recieves a task in the form of a job. Tasks, i.e. gearman_task_st are created by calling either gearman_execute(), gearman_client_add_task(), or gearman_client_add_task_back- ground(). gearman_client_add_task_status() can also create gearman_task_st, these tasks will be used to monitor a previously created gearman_task_st. gearman_task_free() is used to free a task. This only needs to be done if a task was created with a preallocated structure or if you want to clean up the memory of a specific task. gearman_task_set_context() sets the given context of the gearman_task_st. The context can be used to pass information to a gearman_task_st. gearman_task_context() returns the context that was used in the creation of the gearman_task_st (or that was set with gearman_task_set_context(). gearman_task_data() returns the current data that has been returned to the task. gearman_task_data_size() will give you the size of the value. gearman_task_take_data() is the same as gearman_task_data() but the value that is returned must be freed by the client (free(3)). gearman_task_recv_data() can be used with pre-allocated buffers. gearman_task_is_known(), gearman_task_is_running(), gearman_task_numerator(), and gearman_task_denominator(), return values related to the last status update that was made to the gearman_task_st. They do not cause the gearman_task_st to update itself. gearman_task_error() return the last error message that the gearman_task_st encountered. gearman_task_return() return the last gear- man_return_t stored. A value of GEARMAN_UNKNOWN_STATE means that the task has not been submitted to server yet, or that no function was available if the job has been submitted. RETURN VALUE
Various. Values that are returned by gearman_task_take_data() must have free(3) called on them. HOME
To find out more information please check: http://gearman.info/ SEE ALSO
gearmand(8) libgearman(3) AUTHOR
Data Differential http://www.datadifferential.com/ COPYRIGHT
2012, Data Differential, http://www.datadifferential.com/ 0.33 May 04, 2012 GEARMAN_TASK_DENOMINATOR(3)
All times are GMT -4. The time now is 12:50 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy