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