about summary refs log tree commit diff
path: root/src/libutil/immutable.cc
AgeCommit message (Collapse)AuthorFilesLines
2012-02-15 On Linux, make the Nix store really read-only by using the immutable bitEelco Dolstra1-0/+67
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.