ValveSoftware / ValveSoftware/steam-runtime

SLR creates a var folder that ignores ACL

Open
#845 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
1.5k
Forks
97
PR merge metrics
No merged PRs in 30d

Description

Your system information
  • Steam Runtime Version: 4
  • Distribution (e.g. Ubuntu 18.04):
  • Link to your full system information: https://gist.github.com/Damglador/656ea0fa32b425ca06656ebbe58e19a3
  • Have you checked for system updates?: Yes
  • What compatibility tool are you using?: Proton-GE/Experimental
  • What versions are listed in steamapps/common/SteamLinuxRuntime/VERSIONS.txt?
#Name   Version         Runtime Runtime_Version Comment
depot   1.0.20260618.246542                     # Overall version number
LD_LIBRARY_PATH 1.0.20260618.246542     scout   1.0.20260618.246542     # steam-runtime/
scripts 0.20260618.0                    # from steam-runtime-tools
  • What versions are listed in steamapps/common/SteamLinuxRuntime_soldier/VERSIONS.txt?
#Name   Version         Runtime Runtime_Version Comment
depot   2.0.20260805.254767                     # Overall version number
pressure-vessel 0.20260805.0
pressure-vessel-arm64   0.20260805.0
scripts 0.20260805.0                    # from steam-runtime-tools
soldier 2.0.20260805.254767     soldier 2.0.20260805.254767     # soldier_platform_2.0.20260805.254767/
  • What versions are listed in steamapps/common/SteamLinuxRuntime_sniper/VERSIONS.txt?
#Name   Version         Runtime Runtime_Version Comment
depot   3.0.20260805.254768                     # Overall version number
pressure-vessel 0.20260805.0
pressure-vessel-arm64   0.20260805.0
scripts 0.20260805.0                    # from steam-runtime-tools
sniper  3.0.20260805.254768     sniper  3.0.20260805.254768     # sniper_platform_3.0.20260805.254768/
  • What versions are listed in steamapps/common/SteamLinuxRuntime_4/VERSIONS.txt?
#Name   Version         Runtime Runtime_Version Comment
depot   4.0.20260805.254769                     # Overall version number
pressure-vessel 0.20260805.0
pressure-vessel-arm64   0.20260805.0
scripts 0.20260805.0                    # from steam-runtime-tools
steamrt4        4.0.20260805.254769     steamrt4        4.0.20260805.254769     # steamrt4_platform_4.0.20260805.254769/
Please describe your issue in as much detail as possible:

Folders created in a directory with default ACL should follow that f ACL instead of ignoring it and setting permissions to 700, or the folder shouldn't be created in external library in the first place, as it breaks sharing that library with other users on the system.

┌─[damglador@DamgladorPC][~/.steam/SteamLibrary/steamapps/common/SteamLinuxRuntime_4]
└% getfacl .
# file: .
# owner: damglador
# group: games
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

┌─[damglador@DamgladorPC][~/.steam/SteamLibrary/steamapps/common/SteamLinuxRuntime_4]
└% getfacl var
# file: var
# owner: damglador
# group: games
# flags: -s-
user::rwx
group::--- <- This should be rwx
other::---
default:user::rwx
default:group::rwx
default:other::r-x

SLR Soldier and Sniper do the same thing

Steps for reproducing this issue:
  1. setfacl -R -d -m u::rwX,g::rwX,o::rX steamapps/common/SteamLinuxRuntime_4
  2. rm -r steamapps/common/SteamLinuxRuntime_4/var
  3. Run a game with Proton for SLR4 to recreate the var folder
  4. getfacl steamapps/common/SteamLinuxRuntime_4/var

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the listed setfacl, removal, Proton launch, and getfacl reproduction for SteamLinuxRuntime_4, then inspect the SteamLinuxRuntime startup path that creates var. Compare the resulting permissions with the parent default ACL. Done means var either inherits the expected ACL or is no longer created in the external library, with Soldier and Sniper behavior checked as well.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.