i think u need to do as root or configure doas to perform privleged operation...
On Thu 13 Jan 2022, 17:26 Rob Whitlock, <rwhitloc...@gmail.com> wrote: > Attempting to extract xenocara.tar.gz while avoiding root proviliges as > described here https://www.openbsd.org/faq/faq5.html#wsrc, I ran into an > error, shown below: > > 0 thinkpad$ pwd > /usr/xenocara > 0 thinkpad$ ls -a > > . .. > 0 thinkpad$ tar xzf /home/rob/openbsd_files/7.0/xenocara.tar.gz > > tar: Access/modification time set failed on: .: Operation not permitted > 1 thinkpad$ ls -a > . 3RDPARTY Makefile data doc font share > .. CVS README dist driver lib util > .gitignore MODULES app distrib etc proto xserver > 0 thinkpad$ cd .. > 0 thinkpad$ ls -ld xenocara > drwxrwxr-x 16 root wsrc 512 Jan 12 21:43 xenocara > 0 thinkpad$ id > uid=1001(rob) gid=1001 groups=1001, 0(wheel), 9(wsrc) > 0 thinkpad$ > > Running ktrace on tar shows that tar is trying to set the mtime of ., which > corresponds to /usr/xenocara, with the function futimens, which fails. > According to the man page for futimens, if the times argument is non-NULL, > which is the case here, then the caller must be the owner of the file or > the superuser. For an unprivileged user, this is not the case, as, although > /usr/xenocara has group wsrc, it has owner root. > > Running tar tzf xenocara.tar.gz shows an entry for . which seems to be > causing this problem. If you instead run tar xzf xenocara.tar.gz -s > '/^\.$//' to omit only the . entry when extracting, there is no more error. > There is a side effect to adding this -s option, which is that > /usr/xenocara's mtime gets updated to the time the tarball extraction took > place, as opposed to the time that was recorded for . in the tarball. I > don't know whether updating /usr/xenocara to the mtime that was recorded in > the tarball was intentional behavior or not. > > If updating the mtime of /usr/xenocara was not intentional behavior, it > would seem to me that the fix for this problem would be to not include the > . directory when making the tarball xenocara.tar.gz. I was unable to locate > any code that was responsible for creating xenocara.tar.gz so I have not > included a diff. If anybody could tell me where that code is then that > would be appreciated. > > As another issue, extracting ports.tar.gz as a non-privileged user in /usr, > as described in the document whose address is given above, results in > failure due to lack of permission, as a normal user does not have access to > create the /usr/ports directory. > > I am running a snapshot of OpenBSD 7.0 that is only a few days old. >