On 2024-09-11 11:52, Ludovic Courtès wrote: > Hi, > > Nicolas Graves <ngra...@ngraves.fr> skribis: > > Is it that clear-cut? It can be viewed as config rather than state too, > no?
Possibly, though I'm not sure which use-case will make more sense using this file as config rather than state. In my use-case I tried to have an as-much-as-possible immutable home config, and since I don't think it makes sense to run a guix home reconfiguration after `echo X > ~/wherever/guix-shell-authorized-directories`, I had to make a uggly trick/exception for this file. > >> WDYT? Should we implement this change? The tricky thing might be the >> migration for those files. > > Right, migration in itself is difficult. Not to mention that we’d have > to account for people who use ‘time-machine’ to run a pre-migration > shell. Question is, is that worth it ? Probably not for only file relocation, but I now think we need more, see next answer. > >> Maybe we should also add a --allow argument to guix shell to make it >> easier to add files. > > That option would add a line to ‘shell-autorized-directories’? Yes. Actually I would like to develop a little more after thinking about that. Let's say you git pull code from a guix-shell-authorized repo and the pull includes some potentially harmful / dangerous code. The assumption of direnv is that the user has to allow the code to run again in this case, putting more emphasis on security. This is not the case in Guix, IIRC. I think it should be done in Guix too. Implementing that kind of additional security will indeed need such an option, for this will need to actually include the hash of the file of something like that. It's actually quite simple in direnv, they take a sha256 hash of the absolute filename + the content of the file. (See https://github.com/nicolas-graves/python-direnv/blob/f8f0967a9772f0775ffe75a68d868c75076f5af4/direnv.py#L36) That hash makes a simple file-based database where a file is allowed based not only on its location but on its location+content. We could have two options to interact with such a database : --allow --revoke > > Thanks, > Ludo’. -- Best regards, Nicolas Graves