In the latest Steam Beta Client for Linux, Valve have added a new way to run Linux games through a special container.
This is something that was being hinted, as we noticed when the new Steam Library was rolled out (noted at the bottom) you could briefly install the Steam Linux Runtime from the Tools menu before it was hidden again. Now we know why!
It's a new experimental feature, allowing you to better isolate games from the host system as detailed in a post on Steam from developer Timothee Besset. As the post from Besset states, it can help Valve support older titles on newer distributions, allow developers to test directly against it reducing QA time, other runtimes can be added using newer compilers and libraries, allow you to isolate your Home folder and a whole lot more.
How to use it
In the Tools menu on Steam, make sure you have the Steam Linux Runtime installed:
Then force it onto a game in the Properties. The same way you would force a particular version of Proton. Right click a game, Properties, then at the bottom you will see this:
Note: You will probably need to restart Steam to have it show up
Seeing issues? Not all games will run, if they don't open a bug report here. See the full post for all the details.
Hat tip to dumpBikes.
Quoting: NeverthelessAnother solution is starting Steam with firejail --private=/another-directory steam
, which then uses "another-directory" as home dir for Steam. Or you could use the Flatpak Steam install.
Is using flatpak Steam producing the same behavior as setting the HOME env variable?It certainly limits the Steam app, but is it true as well for the games launched from it?
Quoting: CreakQuoting: NeverthelessAnother solution is starting Steam withIs using flatpak Steam producing the same behavior as setting the HOME env variable?firejail --private=/another-directory steam
, which then uses "another-directory" as home dir for Steam. Or you could use the Flatpak Steam install.
It certainly limits the Steam app, but is it true as well for the games launched from it?
Flatpak is a container solution that installs programs into sandbox directories and isolates them from your system. It provides programs with everything they need, from dependencies to all needed system files. From your system it only sees the kernel, drivers and directories you configure it to see and use. It does even provide 32bit libraries on pure 64bit systems.
More here: flatpak.org
Quoting: ShmerlIs it using lxc?
It sounds from their blog post like they're using bubblewrap - or possibly even Flatpak. (which would also mean bubblewrap)
Don't get me wrong, I love steam. But it is a security nightmare.
Any app can grab your / and send it to $someoneelse because there is 0 checks on that.
They don't even have to hide the scripts.
There are so many developers on steam, you can't keep them in check.
But containerizing it is what's really necessary, and it has a lot of benefits.
I use firejail for that right now, but sadly some games don't like that and don't work anymore. It's just some of them. Would be awesome if Valve would make Steam run itself in a proper container that doesn't lead to problems with games.
Quoting: NeverthelessFlatpak is a container solution that installs programs into sandbox directories and isolates them from your system.Flatpak does not sandbox applications *unless* the flatpak requests it. It would be interesting once it starts enforcing it.
I don't know how steam flatpak is packaged though. With or without a request for containerizing.
Quoting: ShmerlIs it using lxc?If you mean the kernel side of LXC, yes. Those are called namespaces and containergroups.
LXC is a userspace commandline interface to the kernel API.
For instance: you don't have to use LXC to setup a second seperate IP stack with it's own firewalling, all you need is to use ip (from iproute(2)).
Quoting: ArdjeFlatpak does not sandbox applications *unless* the flatpak requests it. It would be interesting once it starts enforcing it.It's the other way around: Everything is sandboxed & the application requests (at install time) access to resources. By using Portals access can also be handled at runtime, but this is limited to the available portals:
I don't know how steam flatpak is packaged though. With or without a request for containerizing.
Flatpak Sandboxes
Flatpak Sandbox Permissions
Steam requires a lot of access but not to the whole root- or home-folder (Steam Flatpak manifest.
See more from me