On 2020/05/29 08:30, Luke Small wrote:
> You mention a lot of files that need to be read, but a program like pkg_add 
> can make it the
> _pkgfetch (57) user which has no directory and I’m guessing not in 
> interactive mode. At the
> very least, in noninteractive mode you could unveil(“/“, “rx”); and change 
> the specified output
> file discover the name of the file that is to be downloaded and unveil it as 
> “cw” !
> --
> -Luke

What problem are you trying to solve?

If you are concerned about writes, use "ftp -o - $URL > somefile", it will
run without cpath/wpath, which is functionally similar to unveil("/", "rx")
(a bit stronger, because a program trying to write will be killed, rather
than just having a file access error).

pkg_add(1) already uses "ftp -o -":

# ktrace -di pkg_add -u moo 
quirks-3.339 signed on 2020-05-27T20:05:28Z

# kdump | grep promise=  
 61644 ftp      STRU  promise="stdio rpath dns tty inet proc exec fattr"
 41938 signify  STRU  promise="stdio rpath wpath cpath tty"
 41938 signify  STRU  promise="stdio rpath"
 24897 ftp      STRU  promise="stdio rpath dns tty inet proc exec fattr"
 54324 signify  STRU  promise="stdio rpath wpath cpath tty"
 54324 signify  STRU  promise="stdio rpath"
  9188 ftp      STRU  promise="stdio rpath dns tty inet proc exec fattr"

Reply via email to