You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was configuring this to try it in my workflow, and I ran into a few problems following from my somewhat elaborate shell configuration. In particular, I use the executable starship to render my prompt, so I needed to expand the base permissions so starship had permissions to run and read its configuration files.
However it's still not working because, apparently, the base configuration does not allow reading from file descriptor pipes generated by zsh process substitution. This strikes me as a potentially more general problem.
As you can see, sandboxtron lets me run cat, and it lets me source myscript, but it doesn't let me source an ad-hoc pipe file created from the output of calling cat on myscript.
Obviously the above example is silly since cat doesn't do anything. But starship's initialization has a line where it's less trivial
I suppose I could workaround this by dumping that output to a static file, assuming the output doesn't change between invocations.
I noticed zsh also supports a =() syntax in addition to <(). This is supposed to create a temporary file on disk rather than using a pipe. When I tried this, it not only gave the same operation not permitted" error but also crashed zsh, dropping me back to the unsandboxed host shell.
So I guess the question is: is there a way to setup a permission declaration that encompasses pipes and other such transient file descriptors?
The text was updated successfully, but these errors were encountered:
Did you try running Console.app and recording the interaction?
If you search for "sandbox" you'll see log lines about what the sandboxing system has denied, and that provides a good place to start for specific permissions that need to be added.
Howdy!
I was configuring this to try it in my workflow, and I ran into a few problems following from my somewhat elaborate shell configuration. In particular, I use the executable starship to render my prompt, so I needed to expand the base permissions so starship had permissions to run and read its configuration files.
However it's still not working because, apparently, the base configuration does not allow reading from file descriptor pipes generated by zsh process substitution. This strikes me as a potentially more general problem.
You can see the issue by trying the following
As you can see, sandboxtron lets me run
cat
, and it lets me sourcemyscript
, but it doesn't let me source an ad-hoc pipe file created from the output of callingcat
onmyscript
.Obviously the above example is silly since cat doesn't do anything. But starship's initialization has a line where it's less trivial
I suppose I could workaround this by dumping that output to a static file, assuming the output doesn't change between invocations.
I noticed zsh also supports a
=()
syntax in addition to<()
. This is supposed to create a temporary file on disk rather than using a pipe. When I tried this, it not only gave the same operation not permitted" error but also crashed zsh, dropping me back to the unsandboxed host shell.So I guess the question is: is there a way to setup a permission declaration that encompasses pipes and other such transient file descriptors?
The text was updated successfully, but these errors were encountered: