Here's how I created a restricted but not ephemeral guest account on an Ubuntu 18.04 desktop computer that can be used without a password.
Create a user that can login without a password
First of all, I created a new user with a random password (using pwgen -s 64
):
adduser guest
Then following these instructions, I created a new group and added the user to it:
addgroup nopasswdlogin
adduser guest nopasswdlogin
In order to let that user login using
GDM without a password, I added the
following to the top of /etc/pam.d/gdm-password
:
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
Note that this user is unable to ssh into this machine since it's not part
of the sshuser
group I have setup in my sshd
configuration.
Privacy settings
In order to reduce the amount of digital traces left between guest sessions, I logged into the account using a GNOME session and then opened gnome-control-center. I set the following in the privacy section:
Then I replaced Firefox with Brave in the sidebar, set it as the default browser in gnome-control-center:
and configured it to clear everything on exit:
Create a password-less system keyring
In order to suppress prompts to unlock gnome-keyring, I opened seahorse and deleted the default keyring.
Then I started Brave, which prompted me to create a new keyring so that it can save the contents of its password manager securely. I set an empty password on that new keyring, since I'm not going to be using it.
I also made sure to disable saving of passwords, payment methods and addresses in the browser too.
Restrict user account further
Finally, taking an idea from this similar
solution, I prevented the user from
making any system-wide changes by putting the following in
/etc/polkit-1/localauthority/50-local.d/10-guest-policy.pkla
:
[guest-policy]
Identity=unix-user:guest
Action=*
ResultAny=no
ResultInactive=no
ResultActive=no
If you know of any other restrictions that could be added, please leave a comment!