Auto Reset User Account to Original State in Ubuntu 24.04

This tutorial shows how to automatically reset a user account in Ubuntu after every reboot. All user files, extensions, personal app data, browsing history will be completely removed, so it just looks like it was when you created it.

It’s useful for computers for public use. Resetting user account, makes it always logs into Ubuntu with everything as default, without any leftover from last boot.

All personal app data, user files, and personal settings are stored in user’s home directory. So, generally delete the home directory and recreate it will do the job resetting the user account to original state.

To do it manually, you can simply run the 2 commands below one by one using another administrator account (replace USERNAME accordingly):

sudo rm -rf /home/USERNAME
sudo mkhomedir_helper USERNAME

And, the steps below will tell you how to automate the process on every boot.

Advertisements

NOTE: You need to perform following steps with an administrator account with sudo permission!

Step 1: Remove User Directory Automatically on Boot

For Debian, Ubuntu, Fedora, and many Linux that use systemd, there’s a systemd-tmpfiles service that can automatically creates, deletes, and cleans up volatile and temporary files and directories.

1. First, open up a terminal window by pressing Ctrl+Alt+T on keyboard in Ubuntu. When it opens, run command to create a config file and edit the Gnome default text editor:

sudo gnome-text-editor /etc/tmpfiles.d/remove_guest_home.conf

Replace gnome-text-editor with your system text editor accordingly, or use nano instead that works in most cases.

2. When file opens, add the lines below and save it (for nano, press Ctrl+S to save, and Ctrl+X to exit).

#    Path             Mode UID  GID  Age Argument
R    /home/guest       -    -    -    -    -

Replace “guest” with the username you want to reset! In case you don’t remember it, run ls /home command to list.

After that, your system will delete the “/home/guest” directory on every boot to clear the user data. Unless you disabled the systemd-tmpfiles systemd services (systemd-tmpfiles-setup.service, systemd-tmpfiles-clean.service).

Step 2: Create a script for re-creating user home directory

After that, run the command below in a terminal window to create (and edit) a script:

sudo editor /usr/local/sbin/create_guest_home.sh

Then, write the lines below into it:

#!/bin/bash
mkhomedir_helper guest

Replace guest with the username you want to recreate its home directory. Then, press Ctrl+S to save the file, and Ctrl+X to exit.

Finally, run command to make the script executable:

sudo chmod u+x /usr/local/sbin/create_guest_home.sh

Step 3: Create a Service to Auto-Run the script

After created the script, you can now create a systemd service to make the script run automatically to re-create a clean user home directory.

1. First, run command in a terminal window to create (& edit) a service file:

sudo editor /etc/systemd/system/create-guesthome.service

2. Then, write following lines into it:

[Unit]
Description=Create home directory for Guest account
After=systemd-tmpfiles-setup.service
After=systemd-tmpfiles-setup-dev.service
After=systemd-tmpfiles-clean.service

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/create_guest_home.sh

[Install]
WantedBy=multi-user.target

3. Next, press Ctrl+S to save the service file and Ctrl+X to exit. Finally, run command to enable the service.

systemctl enable create-guesthome.service

Now, you can login with that user account (guest in my case), make some changes (e.g., browse web pages, create/delete files, configure desktop layout), and finally reboot computer to verify.

In addition, if you want to reset user account, but leave some files persistent in every boot, try create the corresponding files in /etc/skel directory. All the files in that directory will be automatically copied to user home directory when generated.

Undo:

To undo all the changes, simply open up a terminal window.

Then, disable the service by running command:

systemctl disable create-guesthome.service

Also, remove the service file if you want:

sudo rm /etc/systemd/system/create-guesthome.service

And, delete the systemd-tmpfiles config file that automatically clear user home directory, as well as the script to re-create a clean home:

sudo rm /etc/tmpfiles.d/remove_guest_home.conf /usr/local/sbin/create_guest_home.sh