Linuxでユーザーアカウントとそのホームディレクトリを削除する方法

リナックスでシステム管理者として、ユーザーアカウントが長期間不使用になったり、ユーザーが組織や企業を離れたりするなどの理由で、時々ユーザーアカウントを削除する必要があるかもしれません。

リナックスシステムでユーザーアカウントを削除する際には、新しいシステムユーザーや他のサービスのためにストレージ上のスペースを解放するために、ユーザーのホームディレクトリも削除することが重要です。

このチュートリアルでは、リナックスシステムでユーザーアカウントとそのホームディレクトリを削除するために使用できる手順をご紹介します。

リナックスシステムでユーザーアカウントを作成して管理する方法を学びたい場合は、以下のリンクからの記事を読んでください。

ホームディレクトリ付きのユーザーアカウントを削除/削除する方法

デモの目的のために、まずはtecmintlinuxsayの2つのユーザーアカウントをシステム上に作成し、それぞれのホームディレクトリを/home/tecmint/home/linusayに設定し、adduserコマンドを使用しています。

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay
Create New User Accounts in Linux

上記のスクリーンショットから、Linux上のユーザーアカウントを作成するためにadduserコマンドを使用しています。useraddコマンドも使用できますが、これらのコマンドの主な違いはその意図された使用法とユーザーインターフェイスにあります。

adduser”コマンドは、システムにユーザーを追加するための高水準のインターフェイスであり、必要なセットアップを行い、ユーザーのホームディレクトリをデフォルトの設定で作成します。

一方、“useradd”は、システムにユーザーを追加し、ユーザー情報を更新するための低水準のユーティリティであり、ユーザーのホームディレクトリをデフォルトで作成しません。管理者は手動で追加オプションを指定する必要があります。

次に、deluserDebianおよびその派生系の場合)とuserdelRedHatベースのシステムの場合)コマンドを使用して、Linuxでユーザーアカウントを削除または削除する方法を見てみましょう。

sudo deluser --remove-home username
sudo userdel -r username

上記のコマンドは、ユーザーのアカウントと共にユーザーのホームディレクトリを削除します。

ユーザー削除コマンドdeluseruserdelの設定ファイル内のディレクティブは、コマンドを実行する際にユーザーのファイルやディレクトリをどのように処理するかを決定します。

Debian派生のUbuntu、Kali、Mintではdeluserコマンドの設定ファイルは/etc/deluser.confであり、RHEL/CentOS/Fedoraユーザーは/etc/login.defsファイルを確認できます。

これらの設定の値はデフォルトであり、必要に応じて変更できます。

vi /etc/deluser.conf         [On Debian and its derivatives]
vi /etc/login.defs           [On RedHat/CentOS based systems]
Del User Configuration

ホームディレクトリ付きでユーザーを削除するには、Linuxサーバーマシンでこれらの手順に従って高度な方法を使用できます。ユーザーがサーバーにログインすると、サービスを使用してさまざまなプロセスを実行します。ユーザーがサーバーにログインしていない場合にのみ、効果的にユーザーを削除できることに注意してください。

Linuxでユーザーアカウントをロックする方法

ユーザーアカウントをロックするには、passwdコマンドを使用し、-lまたは--lockオプションとユーザー名を続けます。ユーザーアカウントをロックすると、ユーザーがログインできなくなりますが、アカウントとそれに関連するファイルは保持されます。

sudo passwd -l username
OR
sudo passwd -lock username
Lock User Account Password in Linux

アカウントをアンロックするには、passwdコマンドを再度使用し、-uオプションを指定します。

sudo passwd -u username

Linuxで実行中のユーザーのプロセスを検索して終了する方法

ユーザーが実行しているプロセスをLinuxで検索して終了するには、psコマンドを使用して特定のユーザーに関連するプロセスを検索し、killコマンドを使用してそれらを終了できます。

ユーザーのプロセスの検索

特定のユーザーのプロセスをリストアップするには、psコマンドと-uフラグを使用します。その後、ユーザー名を後に続けます。

ps -u username

次のコマンドを使用して、ユーザー名、PID、PPID(親プロセスID)、使用される端末、プロセス状態、およびコマンドパスを完全なフォーマットでリストアップできます。

ps -f --pid $(pgrep -u tecmint)
Find All Running Processes of the User

ユーザーのプロセスの終了

ユーザーの実行中のプロセスをすべて検索した後、killallコマンドを使用してそれらの実行中のプロセスを終了できます。

killall -9 -u tecmint

-9SIGKILL信号の信号番号で、-KILL-9の代わりに使用することもできます。-uはユーザー名を定義します。

注意: RedHat/CentOS 7.xバージョンやFedora 21+の最新リリースでは、エラーメッセージが表示されます。

-bash: killall: command not found

このようなエラーを修正するには、psmiscパッケージをインストールする必要があります。

yum install psmisc       [On RedHat/CentOS 7.x]
dnf install psmisc       [On Fedora 21+ versions]

ユーザーデータを削除する前にバックアップする方法

リナックスシステムでユーザーアカウントを削除する前にユーザーデータをバックアップするには、次のコマンドを実行してください。

sudo mkdir /backup
sudo cp -r /home/username /backup

オプションで、ユーザーのデータの圧縮アーカイブを作成してストレージスペースを節約することもできます。tarコマンドを使用して、ユーザーのホームディレクトリのバックアップを作成する方法は次のとおりです。

sudo tar -zcvf /backup/username_backup.tar.gz /backup/username
Backup User Home Directory in Linux

Linuxでのユーザーファイルの削除方法

これで、ユーザーとそのホームディレクトリを安全に削除できます。システム上のすべてのユーザーファイルを削除するには、以下のコマンドで--remove-all-filesオプションを使用してください。

deluser --remove-home tecmint      [On Debian and its derivatives]
userdel --remove tecmint           [On RedHat/CentOS based systems]
Delete User Account with Home Directory
まとめ

これで、リナックスシステムからユーザーとそのホームディレクトリを削除する方法については終わりです。このガイドは理解しやすいと思いますが、コメントを残して懸念事項や追加のアイデアを伝えることができます。

Source:
https://www.tecmint.com/delete-remove-a-user-account-with-home-directory-in-linux/