Sponsored Content
Full Discussion: Append users if GID exists
Top Forums Shell Programming and Scripting Append users if GID exists Post 302706519 by MaindotC on Thursday 27th of September 2012 01:02:49 AM
Old 09-27-2012
Append users if GID exists

I have thousands of users assigned various roles. The role header defines the GID that they should have. If I can get all the GID information into /etc/group format I can upload the output file and easily assign all users into the desired GID. Right now I can get an output file like this:
Code:
oracle:x:4579:user1
oracle:x:4579:user2
sybase:x:9475:user1
sybase:x:9475:user2
oracle:x:4579:user3
oracle:x:4579:user4
sybase:x:9475:user5

There's nothing wrong with uploading the file like this, but it's pretty big. The way I produce this is via the following function:
Code:
for i in $(cat $tmp_gid_file)
do
TMP_GID=`grep -w $i master_group_list | sed 's/:/:x:/'`
echo $TMP_GID:$USER_ID >> gid_file

tmp_gid_file has a list of GID's line by line. I have to search the GID in a master file instead of getent group (it's a long story) and it returns <group_name>:<GID> so that's why I have to replace the colon with a :x:

I'd like to produce a GID file that has only 1 GID entry per line and does not duplicate. I would like it to look like this:
Code:
oracle:x:4579:user1,user2,user3,user4
sybase:x:9475:user1,user2,user5

I started with an if statement but I have a problem appending the user's ID to the end of the line where the GID is found:
Code:
GID_EXISTS=`grep -iw $i gid_file`
if [ ! -z $GID_EXISTS ] 
then
   sed '/$i/s/$/:$USER_ID/' gid_file  ##This seems to print the line, not append 
                                      ##the user's ID to the line where the GID is found
else
...

I'm using GNU/Linux (that's what I get from uname -a...not sure if it's rhel or suse or what) and my shell is bash.

Last edited by vbe; 09-27-2012 at 05:27 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

append 3 users in /etc/passwd

I am looking to add 3 lines in /etc/passwd via a script. Can you please give me an idea on how to write a script that can do that? (3 Replies)
Discussion started by: melanie_pfefer
3 Replies

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

3. UNIX for Dummies Questions & Answers

rm: Unable to remove directory /mnt/users/test/logs/: File exists

rm: Unable to remove directory /mnt/users/test/logs/: File exists ls -latr total 191208 drwxrwxrwx 6 test echo 4096 Jul 3 22:36 .. -rwxrwxrwx 1 test echo 97692804 Jul 3 22:36 .nfsDFA4 drwxrwxr-x 2 test echo 4096 Jul 3 23:00 . M not able to delete... (4 Replies)
Discussion started by: solitare123
4 Replies

4. Shell Programming and Scripting

find, if exists then append for file with same name

I will have to process multiple files with same name everyday. My requirement is: If on a certain day I see that filename.txt exists then the contents of the filename.txt would be added/append to the former file contents.Each time it sees the file the content would be added.But the header ... (8 Replies)
Discussion started by: RubinPat
8 Replies

5. AIX

script for finding all the users with GID 0 ( admin group )

Hi Friends, I am trying to write a script for finding all the users with the GID 0 i.e. Admin users. can you please help me on this. (1 Reply)
Discussion started by: anoopraok
1 Replies

6. UNIX for Dummies Questions & Answers

Get the gid from a group name

Hi there, One can easily retrieve the uid from a username : id -u $username But how can we easily retrieve the gid from a group name? I mean is there a command without using sed? sed -nr "s/^$groupname:x:(+):.*/\1/p" /etc/group Thanks for your help Santiago (7 Replies)
Discussion started by: chebarbudo
7 Replies

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

8. Shell Programming and Scripting

File exists, but cannot be opened.How to check- whether it could be opened to read when it exists

Hi #Testing for file existence if ; then echo 'SCHOOL data is available for processing' else echo 'SCHOOL DATA IS NOT AVAILABLE FOR PROCESSING' : i wrote a script, where it begins by checking if file exists or not. If it exists, it truncates the database... (2 Replies)
Discussion started by: rxg
2 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. Homework & Coursework Questions

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... (2 Replies)
Discussion started by: kornfan
2 Replies
SSS_GROUPADD(8) 						 SSSD Manual pages						   SSS_GROUPADD(8)

NAME
sss_groupadd - create a new group SYNOPSIS
sss_groupadd [options] GROUP DESCRIPTION
sss_groupadd creates a new group. These groups are compatible with POSIX groups, with the additional feature that they can contain other groups as members. OPTIONS
-g,--gid GID Set the GID of the group to the value of GID. If not given, it is chosen automatically. -h,--help Display help message and exit. THE LOCAL DOMAIN
In order to function correctly, a domain with "id_provider=local" must be created and the SSSD must be running. The administrator might want to use the SSSD local users instead of traditional UNIX users in cases where the group nesting (see sss_groupadd(8)) is needed. The local users are also useful for testing and development of the SSSD without having to deploy a full remote server. The sss_user* and sss_group* tools use a local LDB storage to store users and groups. SEE ALSO
sss_groupdel(8), sss_groupmod(8), sss_groupshow(8), sss_useradd(8), sss_userdel(8), sss_usermod(8). AUTHORS
The SSSD upstream - http://fedorahosted.org/sssd SSSD
03/04/2013 SSS_GROUPADD(8)
All times are GMT -4. The time now is 11:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy