Tar extract: remap uid gid ?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Tar extract: remap uid gid ?
# 1  
Old 09-01-2015
Tar extract: remap uid gid ?

OK, so simple question here:

Is there anyway to REMAP, while extracting with tar, specific uid's and gid's on extracted files ?

Background: The usual transfer between two servers with same literals username's names, but with different gid and uid. I would like, for example, files owned by user with uid 800 to be remapped to user with uid 900. Is that even possible in line with GNU tar ?

I would guess if this is not possible, one option would be to find those files with the specific uid and change them.

Thanks!
# 2  
Old 09-01-2015
Hi,
You must extract your files with the destination owner.

between, you can change the uid/gid when you create your tar:
Code:
tar --numeric-owner --group=900 --owner=900 -cf file.tar file ...

Regards.
# 3  
Old 09-02-2015
That solution only works with GNU tar.
# 4  
Old 09-02-2015
If you are trying to extract all files from a tar archive with a given user ID (or user name) and group ID (or group name) you could use:
Code:
pax -r -ouid=UID,gid=GID -f tarfile
                     or
pax -r -ouname=USER,gname=GROUP -f tarfile

where UID and GID are the desired user and group IDs and USER and GROUP are the desired user and group names.

But, if the desire is to map several different users and/or groups in the archive to different users and/or groups as they are extracted, I don't know of any standard way to do it.

You could, however, use list mode on the archive to get a list of files with the corresponding user and group recorded in the archive, create lists of files for a given user/group, and then extract files for a given user from the archive with a specified replacement for that user/group.

If you have a BSD version of pax, you could skip the list creation step and just use -G and -U options to specify the group ID(s) or name(s) and user ID(s) or name(s) of files to be extracted on that pass (but you can still only set the user and group to one value for all files extracted on a single invocation).
This User Gave Thanks to Don Cragun For This Post:
# 5  
Old 09-02-2015
Thanks for the suggestion guys.

disedorgue, yeah, I assume I could do it before. In this case, I dont have that option anymore.

Don_Cragun, those options (uid,gid,uname,gname) don't seem to work with the version of pax that came with this RHEL 6.4, which is pax 3.4 (BSD). Also, wouldn't that extract and change all of the files?
# 6  
Old 09-02-2015
Usually only root would have the ability to change UID's and GID's like that, extract as a non root user.
# 7  
Old 09-02-2015
Quote:
Originally Posted by fidodido
Thanks for the suggestion guys.

... ... ...

Don_Cragun, those options (uid,gid,uname,gname) don't seem to work with the version of pax that came with this RHEL 6.4, which is pax 3.4 (BSD). Also, wouldn't that extract and change all of the files?
Yes. I did preface the suggestion with:
Quote:
If you are trying to extract all files from a tar archive with a given user ID (or user name) and group ID (or group name) you could use:
Then I gave you suggestions that should be available on any version of the pax utility that would allow root to extract a subset of files from an archive and change the owner and group to specified values for the files extracted on that invocation.

I should have explicitly stated that none of the given suggestions would work unless you were running with appropriate privileges as Corona688 mentioned. I assumed that you already knew that unprivileged users can't create a file owned by someone else.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

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

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

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

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

8. Shell Programming and Scripting

Rsync - Preserve owner/group with different UID/GID

Dear Folks :-) I want to rsync some files between some servers and preserve files owner and group (not UID or GID), in some machines UID and GID are differents, for example: a) In the rsync server: # stat vbseo.php File: `vbseo.php' Size: 26758 Blocks: 56 IO... (1 Reply)
Discussion started by: Santi
1 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