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?

  • JohnnyMac@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 day ago

    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. )

    • Clot@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      22 hours ago

      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?

      • JohnnyMac@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        13 hours 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
        link
        fedilink
        English
        arrow-up
        2
        ·
        24 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
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 day ago

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

  • sudo
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 day 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.