this post was submitted on 23 May 2025
4 points (100.0% liked)

Nix / NixOS

2204 readers
71 users here now

Main links

Videos

founded 2 years ago
MODERATORS
 

Whenever I run any command line tools without sudo, they take the settings as in ~/.config and work fine. But whenever I run the same CLI tools with same parameters but with sudo, it falls back to default setting. How can I make this behavior consistent?

top 6 comments
sorted by: hot top controversial new old
[–] [email protected] 6 points 23 hours ago* (last edited 23 hours ago) (1 children)

It's because sudo runs as root, so it's looking for /root/.config You can use -E to keep your current users environment vars, but that doesn't do anything with ~/.config

You can try something like sudo -E HOME="$HOME" XDG_CONFIG_HOME="$XDG_CONFIG_HOME" command_to_run

Or see if you can manually set the config path via args for the command command_to_run --help or man command_to_run then if it does do sudo command_to_run --config_path /home/user/.config for example

Or copy ~/.config to /root (don't simlink because root could screw up permissions). Obviously copying is annoying especially if it changes often

(sudo could mess up the ~/.config permissions also if you do the HOME stuff above. )

[–] [email protected] 1 points 15 hours ago* (last edited 9 hours ago) (2 children)

Thanks for the heads up! I will try the given solutions.

but that doesn't do anything with ~/.config

What do you exactly mean by this?

[–] [email protected] 3 points 11 hours ago* (last edited 9 minutes ago)

A lot of times sudo -E will solve these types of issues because it preserves current environments variables. Honestly it might be all that's needed to fix your current issue, because XDG_CONFIG_HOME is probably what the app is looking for, which will get passed with -E without all the extra stuff in my first response.

[–] MadhuGururajan 2 points 11 hours ago

The letter ~ (tilde) is relative to the current user. When you use sudo, you become root. So ~ points to /root. Whereas if you are not using sudo then ~ points to /home/yourname

[–] toyvo 6 points 23 hours ago

Generally define the same config options for the root user in /root/.config

[–] sudo 5 points 23 hours ago

I run commands as the root user so I use the root users configs. Usually that's in /root/.config/ but it might be different in NixOS.

You'll have to either copy your configs over to the root users config dirs. I highly recommend auditing what you copy though for security.