Re: git archive setting user and group
- From
René Scharfe <l.s.r@web.de>
- Date
- Jan 22, 2021, 21:00 UTC
- Message-ID
- <cef51cd3-c6b5-ed24-f695-83be3a6743b4@web.de>
- In-Reply-To
- <043f01d6f0fe$d6ad7660$84086320$@pdinc.us>
Am 22.01.21 um 21:40 schrieb Jason Pyeron:
Show 26 quoted lines
>> From: Jason Pyeron <jpyeron@pdinc.us>
>> Sent: Friday, January 22, 2021 3:09 PM
>>
>> I am about to make a release for logwatch tonight. Historically the files are owned by logwatch in the
>> tgz file. When I use git archive it is owned by uid 0, is there an option to set the uid/uname,
>> gid/gname owner of the files?
>
> Answer: not at this time, as it is hard coded in the source.
>
> archive-tar.c:
> static void prepare_header(struct archiver_args *args,
> struct ustar_header *header,
> unsigned int mode, unsigned long size)
> {
> xsnprintf(header->mode, sizeof(header->mode), "%07o", mode & 07777);
> xsnprintf(header->size, sizeof(header->size), "%011"PRIoMAX , S_ISREG(mode) ? (uintmax_t)size : (uintmax_t)0);
> xsnprintf(header->mtime, sizeof(header->mtime), "%011lo", (unsigned long) args->time);
>
> 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));
>
>
> meh.
>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?
René