35
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 01 Apr 2026
35 points (92.7% liked)
Linux
13143 readers
1104 users here now
A community for everything relating to the GNU/Linux operating system (except the memes!)
Also, check out:
Original icon base courtesy of lewing@isc.tamu.edu and The GIMP
founded 2 years ago
MODERATORS
At the risk of being serious, there's really no good way to set user environment variables. (It's been a while since I last checked, so I might be wrong)
PAM used to have an equivalent to their
/etc/environmentfor users, but that was deprecated or maybe removed last I checked.Systemd user environment variables don't apply in a shell context
.bashrc only works if you use bash as login shell and I'm not sure if it applies everywhere. Sure, I can set stuff in the shell I use, but it feels weird to modify my shell in order to change global environment variables.
Yeah it's such a mess. Last I tried I had to set my variable in like 3 different places and it still didn't apply everywhere I expected it to.
It sounds like you've looked into this before, so I'll ask you: what is the use-case for per-user environment variables that can't be achieved trivially through
~/.bashrcor/etc/profile?It sounds to me like the problem they want to solve is that there is some piece of information which needs to be present in the environment for every process that a user runs regardless of the context it was executed from (eg.
DBUS_SESSION_BUS_ADDRESS)?In which case it would surely be served better by being contained in a config file in a standard location where it can be read by every process that needs that info instead of the executing process having to know the information and pass it in the environment, for every possible caller and calling context.
/etc/profilealso needs root to edit. I agree that there should be a config file in a standard location, my issue is that using$(your local shell config)is barely a standard.For this purpose PAM's
/etc/environmentworks great in the global context, but there's no PAM equivalent for each user.Systemd has global and per user environment stuff, but last I checked this only worked for systemd services