-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Default cacheDir causing some minor problems when rekeying #9
Comments
Thanks for bringing this up, that's a very good point.. The issue is that the parent directory needs to have the sticky bit set (chmod 1777) so that only the owner of a directory may delete it. That is the case for The only possible solutions I can see are:
The third solution is basically what you are proposing and what I've done in my own config, but it requires creating a directory with 1777. So the downside is that you have to manually do that or write an activation script that does it. Alternatively, if you are using impermanence you can do the following: age.rekey.cacheDir = "/var/tmp/agenix-rekey/\"$UID\"";
environment.persistence."/state".directories = [
{ directory = "/var/tmp/agenix-rekey"; mode = "1777"; }
]; I've corrected the example in the readme and linked here for future readers. If you have any other suggestions on making this more accessible let me know! |
Thank you for the answer, I was fully expecting this just to be a stupid mistake of mine somewhere in my config (due to my inexperience with nix and linux as a whole). systemd.tmpfiles.rules = [
"d /var/tmp/agenix-rekey 1777 root root"
]; So that might be another solution depending on the setup :) |
@Freakmiko I can confirm that your solution does the trick for me as well! Thank you! |
Something that tripped me up for a bit after updating my flake was the new cacheDir.
This new cacheDir is currently defined as
default = "/tmp/agenix-rekey.\"$UID\"";
.This creates new directories for each user running rekey (as far as I understand). However, if you don't add the users explicitly to trusted-users and simply follow the readme and add
nix.settings.extra-sandbox-paths = ["/tmp/agenix-rekey"];
to the configuration, rekeying will always fail.My suggestion would be to change the default cacheDir to
default = "/tmp/agenix-rekey/\"$UID\"";
. This would create the uid-directories under the agenix-rekey cacheDir and make setting the extra-sandbox-paths easier.The text was updated successfully, but these errors were encountered: