Let's say I'm logged on to Linux as user1 and I want to install a Flatpak to user2's account. What is the command? These do not work.

flatpak install --user user2 flathub com.skype.Client
sudo flatpak install --user user2 flathub com.skype.Client

Do I have to log on to user2's account and then issue the command

flatpak install --user flathub com.skype.Client

or is the proper command something else? The current documentations doesn't provide examples of the --user argument in use so I'm left to guess.

  • @user535733 Virtually every Linux server allows for a user to become another user. There are many security configurations you can use to change which users get access to which permissions and groups, but becoming other users is a fundamental feature of Unix/Linux permissions. – Kristopher Ives Sep 24 at 13:52
up vote 4 down vote accepted

You can do this using the common Linux command Substitute User (su) or the Substitute User Do (sudo) command. Here are examples:

Installing a FlatPak with su

su user2 -c flatpak install --user com.skype.Client

You will be asked for the password of user2 to become that user.

Installing a FlatPak with sudo

sudo -u user2 flatpak install --user com.skype.Client

Assuming you are an admin user or a user that has "sudoer" rights, you will be asked for your password in which case you will then become user2 to run the command.

Step-by-step

You can also combine the two by becoming root first and then becoming another user:

sudo -s    # you will become root
whoami     # will print root
su user2   # you will become user2
whoami     # will print user2
flatpak install --user com.skype.Client
  • I should have mentioned I explicitly want to use the --user argument, so the Flatpak will only be installed on user2's account. How do you add this --user argument to your commands above? It appears your commands would install the Flatpak to all users. – stackinator Sep 24 at 13:54
  • The commands are the same but simply append the --user option to the flatpak install command. The --user option specifies that the flatpak will be installed as the current user instead of for the entire system. – Kristopher Ives Sep 24 at 13:56
  • @stackinator I have edited my answer to be more specific. – Kristopher Ives Sep 24 at 13:59
  • may I add to use sudo -u user2 -H ? -H force the command to be run from user2 home directory and not from your directory. Maybe it's not relevant for flatpak but I've seen script fail because they try to write in the current directory and as user2 they don't have permissions to do so. – Marco Martinelli Sep 24 at 15:13

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.