Steam has a great feature called “Family Library Sharing” that allows you to share games that you’ve already downloaded with other users on the same computer.
However, in my experience, in Ubuntu (And most likely in other Linux OSes as well.), other users won’t be able to see any games you have installed, even if you have Family Library Sharing enabled. This is because in Linux, Steam installs the game data in the home directory of the user who is performing the installation of the game. By design, stuff inside one user’s home directory are not typically accessible to other users.
However, Steam allows creating additional “Library Folders” in any place of the filesystem as you desire, as long as you have proper access to that location. Library Folders are places where Steam can install and move game data to.
If you create a directory in a location accessible to all users in Ubuntu, and use that as a new Library Folder in all users’ (At least the ones you need to share games with.) Steam instances, and move the games that you want shared to that Library Folder, everyone will be able to access those games, if you have include those users in your Family Library Sharing settings.
I am using Ubuntu 20.04 LTS and Steam client application built on Nov 22 2021 at 22:12:42 right now. But instructions would apply to other versions and editions of these software as well.
Steps
1. Create a new directory in a place that is equally accessible to any user in Ubuntu. I have a directory named “share” (Note: This is not a standard Ubuntu top level directory; just something I created.) and I will create a directory named “SteamLibrary” in here. So that the full path for the new directory would be /share/SteamLibrary
. Below I am assuming that you are using the same directory, if not change any references to it accordingly.
2. I will then create a new user group in Ubuntu with the name “steam”:
sudo groupadd steam
3. I will then add my user account and any other users that I expect to share Steam games with to that group.
sudo usermod -aG steam <my-user-name> sudo usermod -aG steam <other-user-1-name> sudo usermod -aG steam <other-user-2-name> . . . sudo usermod -aG steam <other-user-n-name>
Be sure to replace <my-user-name>
with your username and <other-user-X-name>
with usernames of other users you want to share games with.
4. After that, change the group ownership of the newly created directory to the newly created user group.
cd /share/SteamLibrary chgrp -R steam .
5. Make any new file created inside this directory inherit the same group ownership.
chmod g+s .
6. At this point reboot your machine to make sure your user account operates with the newly created group. You probably don’t need to reboot, you can use newgrp steam
command to apply new group; but with a reboot you will have the peace of mind that the new group association would work everywhere flawlessly.
7. Open Steam client, and follow this path:
Menu Bar -> Steam -> Settings -> Downloads -> Content Libraries -> Click “STEAM LIBRARY FOLDERS”.
Above will open “Storage Manager” window. Click circular plus button. Use the directory picker to find /share/SteamLibrary
, select it and click “SELECT” button.
8. You’ll see a storage usage chart and at the right hand corner of it, you’ll see a button with three dots. Click that and select “Make Default”.
In my experience, even if we make it the default library location, Steam will still install games into the directory inside installing user’s home directory. You can move games between libraries in this “Storage Manager” window or through each game’s properties window.
9. You’ll be able to switch between the original and the newly created library folders in the “Storage Manager” windows. Select the games you want to share with others, and move them to the new library folder.
10. Close the “Storage Manager” windows, and while still in “Settings” window, click on “Family” option in the left sidebar. Select “Authorize Library Sharing on this computer” and click OK.
11. Switch to the other Ubuntu user account (Let’s call it “Secondary User”.) that you want to access games from. Log in to secondary user’s Steam account in the Steam client under that Ubuntu user account. Follow the steps from Step 7 above to add the same directory as a new library folder for this Steam user as well.
12. If the secondary user was already authorized to use original user’s Steam library, secondary user will be able to play those games immediately. If not, secondary user should see a “Borrow” button to request access from the original user. To grant access, simply switch Ubuntu user accounts and use the Steam client of the original user.
If you are using Steam’s Proton technology to play Windows games on Ubuntu, those games won’t run properly when shared. Refer to the following post to fix that: https://blog.budhajeewa.com/fix-steam-proton-windows-games-not-running-when-accessed-through-family-library-sharing-in-ubuntu-linux/.