ウェブサイト検索

Ubuntu 24.04でユーザーアカウントを元の状態に自動リセットする


このチュートリアルでは、再起動するたびに Ubuntu でユーザー アカウントを自動的にリセットする方法を示します。すべてのユーザー ファイル、拡張機能、個人のアプリ データ、閲覧履歴は完全に削除されるため、作成時と同じように見えます。

公共で使用するコンピュータに便利です。ユーザー アカウントをリセットすると、前回の起動時の内容が何も残らず、常にすべてがデフォルトのままで Ubuntu にログインするようになります。

すべての個人アプリ データ、ユーザー ファイル、個人設定はユーザーのホーム ディレクトリに保存されます。そのため、通常はホーム ディレクトリを削除して再作成すると、ユーザー アカウントが元の状態にリセットされます。

これを手動で行うには、別の管理者アカウントを使用して、以下の 2 つのコマンドを 1 つずつ実行します (USERNAME は適宜置き換えてください)。

sudo rm -rf /home/USERNAME
sudo mkhomedir_helper USERNAME

また、以下の手順では、起動ごとにプロセスを自動化する方法を説明します。

注: sudo 権限を持つ管理者アカウントで次の手順を実行する必要があります。

ステップ 1: 起動時にユーザー ディレクトリを自動的に削除する

systemd を使用する Debian、Ubuntu、Fedora、および多くの Linux の場合、揮発性ファイルと一時ファイルとディレクトリを自動的に作成、削除、クリーンアップできる systemd-tmpfiles サービスがあります。 。

1. まず、Ubuntu のキーボードで Ctrl+Alt+T を押してターミナル ウィンドウを開きます。開いたら、コマンドを実行して構成ファイルを作成し、Gnome のデフォルトのテキスト エディターを編集します。

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

gnome-text-editor をシステムのテキスト エディタに適宜置き換えるか、代わりにほとんどの場合に機能する nano を使用してください。

2. ファイルが開いたら、以下の行を追加して保存します (nano の場合は、Ctrl+S を押して保存し、Ctrl+X を押して終了します)。

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

「guest」をリセットしたいユーザー名に置き換えてください。覚えていない場合は、ls /home コマンドを実行してリストを表示します。

その後、システムは起動するたびに「/home/guest」ディレクトリを削除してユーザー データをクリアします。 systemd-tmpfiles systemd サービス (systemd-tmpfiles-setup.service、systemd-tmpfiles-clean.service) を無効にしていない限り。

ステップ 2: ユーザーのホーム ディレクトリを再作成するためのスクリプトを作成する

その後、ターミナル ウィンドウで以下のコマンドを実行してスクリプトを作成 (および編集) します。

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

次に、以下の行をそこに書き込みます。

#!/bin/bash
mkhomedir_helper guest

guest を、ホーム ディレクトリを再作成するユーザー名に置き換えます。次に、Ctrl+S を押してファイルを保存し、Ctrl+X を押して終了します。

最後に、コマンドを実行してスクリプトを実行可能にします。

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

ステップ 3: スクリプトを自動実行するサービスを作成する

スクリプトを作成した後、systemd サービスを作成してスクリプトを自動的に実行し、クリーンなユーザー ホーム ディレクトリを再作成できます。

1. まず、ターミナル ウィンドウでコマンドを実行して、サービス ファイルを作成 (および編集) します。

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

2. 次に、次の行をそこに書き込みます。

[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. 次に、Ctrl+S を押してサービス ファイルを保存し、Ctrl+X を押して終了します。最後に、コマンドを実行してサービスを有効にします。

systemctl enable create-guesthome.service

これで、そのユーザー アカウント (私の場合は guest) でログインし、いくつかの変更 (Web ページの閲覧、ファイルの作成/削除、デスクトップ レイアウトの構成など) を加え、最後にコンピューターを再起動して確認できます。

さらに、ユーザー アカウントをリセットしたいが、起動のたびに一部のファイルを永続的に残しておきたい場合は、/etc/skel ディレクトリに対応するファイルを作成してみてください。そのディレクトリ内のすべてのファイルは、生成時にユーザーのホーム ディレクトリに自動的にコピーされます。

元に戻す:

すべての変更を元に戻すには、ターミナル ウィンドウを開くだけです。

次に、次のコマンドを実行してサービスを無効にします。

systemctl disable create-guesthome.service

また、必要に応じてサービス ファイルを削除します。

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

さらに、ユーザーのホーム ディレクトリを自動的にクリアする systemd-tmpfiles 構成ファイルと、クリーンなホームを再作成するスクリプトを削除します。

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

関連記事