-
Notifications
You must be signed in to change notification settings - Fork 85
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
XDG_CONFIG_HOME below /etc doesn't work #726
Comments
This is an instance of the same sort of limitation that means we can't support home directories below
Does this mean you are running Steam as root? (I'm pretty sure that's not intended to be supported.) Normally ordinary users should not be able to write to anywhere below If files and directories below |
Even if you are the system administrator, it's a good principle to use as few privileges as possible at any given time ("least privilege"); and even if you are the only human user of a system, Linux is a multi-user system which uses system user accounts for privilege separation, for example to run system services. Well-behaved implementations of the XDG basedir spec are meant to obey Sometimes there will even be one code path that obeys
You could do the opposite of the symlinks you suggested: move your personal files out of If your personal files are owned by your own uid and the OS distribution's files are owned by root, then that's one easy way to tell which is which: The good news is that if configuration is not found in Because the XDG directories are controlled by environment variables, it would also be possible to move just the saved game data for a particular game (e.g. for Rimworld, move
But I would recommend migrating all of your personal configuration into
The runtime cannot safely bind-mount
This is implemented, in fact. It's experimental and not routinely tested, but you can activate it (at your own risk) by setting the Launch Options to One known limitation is that it's known to break Steam Cloud sync, but as noted above, Steam Cloud sync will often not work on your system anyway (in particular, not for Rimworld). When unsharing the home directory, pressure-vessel always uses |
@kisak-valve: I suggest retitling this issue to something like |
The relevant diagnostic message is:
|
Thank you for the detailed response. I agree that I will probably take your suggestion to heart and move out of there. However, let me make the case for doing something on the runtime side about it anyway. You mention that both steam cloud sync and many games hardcode to |
Not quite: we assume that The problem with |
The runtime could overwrite the value only for reserved paths then. It's not perfect, but would at least be a safe-guard. I understand that this is kind of niche regardless. |
Your system information
steamapps/common/SteamLinuxRuntime/VERSIONS.txt
? enoentsteamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt
?~/.steam/root/ubuntu12_32/steam-runtime/version.txt
? steam-runtime_0.20241024.105847steamapps/common/SteamLinuxRuntime_sniper/VERSIONS.txt
?Please describe your issue in as much detail as possible:
The runtime ignores
xdg_config_home
when under/etc
, which causes games to lose the ability to persist configs/savegames/etc.I don't know what to do short of moving xdg out of etc, which is not an easy task on a years old system. If the runtime instead would mount it read-only, then I could at least setup a symlink to get those games redirected to home or something.
Another option would be to implement Unsharing the home directory, which would circumvent this issue by fully sandboxing this directory per app.
gist of game output: greaka/0c348dd0308d2b51b151d186c19088f8/#file-slr-app294100-t20241217t005138-log
Steps for reproducing this issue:
XDG_CONFIG_HOME=/etc/xdg
The text was updated successfully, but these errors were encountered: