ウェブサイト検索

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


Linuxのシステム管理者として、ユーザーアカウントが長期間休止状態になった場合や、ユーザーが組織や会社を他の理由で離れる場合などには、アカウントを削除しなければならないことがあります。

Linuxシステムでユーザーアカウントを削除する際には、新しいシステムユーザーや他のサービスのためにストレージデバイスの空きスペースを確保するために、ホームディレクトリも削除することが重要です。

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

Linuxシステムでユーザーアカウントを作成し、管理する方法を学ぶには、以下のリンクから以下の記事をお読みください:

ユーザーアカウントをホームディレクトリと共に削除/除去する方法

デモンストレーションの目的で、最初に私のシステム上でユーザーアカウントを2つ作成します。ユーザーtecmintとユーザーlinuxsayで、各々のホームディレクトリは/home/tecmintと/home/linuxsayです。それをadduserコマンドを使用して行います。

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay

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

"adduser"コマンドは、システムにユーザーを追加するための高レベルのインターフェースであり、必要な設定を実行し、デフォルト設定を使用してユーザーのホームディレクトリを作成します。

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

では、deluser(Debianおよびその派生版用)およびuserdel(RedHatベースのシステム用)コマンドを使用して、Linuxでユーザーアカウントを削除または取り除く方法を見ていきましょう。

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

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

deluserおよびuserdelコマンドの構成ファイル内の指示は、コマンドを実行したときにすべてのユーザーファイルとディレクトリをどのように処理するかを決定します。

deluser コマンドの設定ファイルを見てみましょう。そのファイルは、Ubuntu、Kali、MintなどのDebian系ディストリビューションでは /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]

ホームディレクトリを持つユーザーを削除するには、Linuxサーバー上で次の手順に従って高度な方法を使用できます。ユーザーがサーバーにログインしているとき、彼らはサービスを利用し、さまざまなプロセスを実行しています。ユーザーはサーバーにログインしていないときにのみ、効果的に削除できることに注意することが重要です。

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

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

sudo passwd -l username
OR
sudo passwd -lock username

アカウントを解除するには、passwd コマンドを -u オプションとともに再度使用できます。

sudo passwd -u username

Linuxでユーザーの実行プロセスを見つけて終了させる方法

Linuxでは、psコマンドを使って特定のユーザーに関連するプロセスを見つけ、killコマンドを使用してそれらを終了させることで、ユーザーが実行しているプロセスを見つけて停止させることができます。

ユーザープロセスの検索

ps コマンドに -u フラグとその後にユーザー名を付けて、特定のユーザーのプロセスをリストします。

ps -u username

次に、次のコマンドを使用して、ユーザー名、PID、PPID(親プロセスID)、使用される端末、プロセスの状態、コマンドパスの観点からプロセスを一覧表示できます。

ps -f --pid $(pgrep -u tecmint)

ユーザープロセスの終了

ユーザーのすべての実行中のプロセスを見つけると、次のようにkillallコマンドを使用してそれらの実行中のプロセスを終了させることができます。

killall -9 -u tecmint

強調された-9はSIGKILLシグナルの信号番号であり、代わりに-KILLを使用することができ、-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]

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

Linuxシステムでユーザーアカウントを削除する前にユーザーデータをバックアップするには、次のコマンドに従うことができます。

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

オプションとして、ユーザーのデータの圧縮アーカイブを作成してストレージスペースを節約することができます。以下のように、tarコマンドを使用してユーザーのホームディレクトリのバックアップを作成しました:

sudo tar -zcvf /backup/username_backup.tar.gz /backup/username

Linuxでユーザーファイルを削除/除去する方法

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

deluser --remove-home tecmint      [On Debian and its derivatives]
userdel --remove tecmint           [On RedHat/CentOS based systems]

要約

これは、Linuxシステムからユーザーとそのホームディレクトリを削除することに関するすべてです。ガイドは十分に簡単に従えると思いますが、懸念を表明したり、コメントを残すことでさらにアイデアを追加することができます。

関連記事: