I was bitten one time too many by Python modifying the Nix store by creating *.pyc files when run as root. On Linux, we can prevent this by setting the immutable bit on files and directories (as in ‘chattr +i’). This isn't supported by all filesystems, so it's not an error if setting the bit fails. The immutable bit is cleared by the garbage collector before deleting a path. The only tricky aspect is in optimiseStore(), since it's forbidden to create hard links to an immutable file. Thus optimiseStore() temporarily clears the immutable bit before creating the link. |
||
|---|---|---|
| .. | ||
| bin2c | ||
| boost | ||
| bsdiff-4.3 | ||
| libexpr | ||
| libmain | ||
| libstore | ||
| libutil | ||
| nix-env | ||
| nix-hash | ||
| nix-instantiate | ||
| nix-log2xml | ||
| nix-setuid-helper | ||
| nix-store | ||
| nix-worker | ||
| Makefile.am | ||