Re: git archive setting user and group

2 messages, 2 authors, 2021-01-22 · open the first message on its own page

Re: git archive setting user and group

From: Junio C Hamano <hidden>
Date: 2021-01-22 22:30:59

René Scharfe [off-list ref] writes:
Am 22.01.21 um 21:40 schrieb Jason Pyeron:
...
quoted
        xsnprintf(header->uid, sizeof(header->uid), "%07o", 0);
        xsnprintf(header->gid, sizeof(header->gid), "%07o", 0);
        strlcpy(header->uname, "root", sizeof(header->uname));
        strlcpy(header->gname, "root", sizeof(header->gname));
Adding support for using a custom user and group should be easy.  Is
this just a cosmetic thing?  Regular users would ignore the user info in
the archive, and root should not be used for extracting, and on systems
that don't have a logwatch user this wouldn't make a difference anyway,
right?
I am not particularly interested in cosmetics, but it probably is OK
to make uname/gname overridable.  I do not see any point in uid/gid
numeric values overridable, though.  Just like user names and group
names do not name the same user and group on every machine, uid/gid
are even less so.

RE: git archive setting user and group

From: Jason Pyeron <hidden>
Date: 2021-01-22 22:53:09

From: Junio C Hamano
Sent: Friday, January 22, 2021 5:29 PM

René Scharfe [off-list ref] writes:
quoted
Am 22.01.21 um 21:40 schrieb Jason Pyeron:
...
quoted
        xsnprintf(header->uid, sizeof(header->uid), "%07o", 0);
        xsnprintf(header->gid, sizeof(header->gid), "%07o", 0);
        strlcpy(header->uname, "root", sizeof(header->uname));
        strlcpy(header->gname, "root", sizeof(header->gname));
Adding support for using a custom user and group should be easy.  Is
this just a cosmetic thing?  Regular users would ignore the user info in
the archive, and root should not be used for extracting, and on systems
that don't have a logwatch user this wouldn't make a difference anyway,
right?
I am not particularly interested in cosmetics, but it probably is OK
to make uname/gname overridable.  I do not see any point in uid/gid
numeric values overridable, though.  Just like user names and group
Interesting. So logwatch(0) vs logwatch(1100) ? I guess it is as good as any value, but tar never uses 0.

On a system without the logwatch user/group tar behaves as follows:

$ tar czf /tmp/logwatch.tgz --owner=logwatch --group=logwatch .

$ tar tvzf /tmp/logwatch.tgz | head -n 1
drwxrwxr-x logwatch/logwatch 0 2020-03-14 15:01 ./

$ tar tvzf /tmp/logwatch.tgz --numeric-owner | head -n 1
drwxrwxr-x 1049681/1049088   0 2020-03-14 15:01 ./

$ id
uid=1049681(myuser) gid=1049088(mygroup) groups=no one cares...

but when the user / group is known...

$ tar czf /tmp/logwatch.tgz --owner=Guest --group=Users .

$ tar tvzf /tmp/logwatch.tgz | head -n 1
drwxrwxr-x Guest/Users       0 2020-03-14 15:01 ./

$ tar tvzf /tmp/logwatch.tgz --numeric-owner | head -n 1
drwxrwxr-x 1049077/545       0 2020-03-14 15:01 ./

$ getent passwd Guest | cut -f 3 -d :
1049077

$ getent group Users | cut -f 3 -d :
545

names do not name the same user and group on every machine, uid/gid
are even less so.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help