Linux でのユーザーの削除には、思っている以上に多くの作業が必要です。あなたがシステム管理者であれば、アカウントとそのアクセスに関するすべての痕跡をシステムから削除する必要があるでしょう。手順をご紹介します。
システムからユーザー アカウントを削除するだけで、実行中のプロセスやその他のクリーンアップ タスクの終了を気にしない場合は、以下の「ユーザー アカウントの削除」セクションの手順に従ってください。 Debian ベースのディストリビューションでは
deluser
コマンドが必要で、他の Linux ディストリビューションでは
userdel
コマンドが必要です。
Linux 上のユーザー アカウント
1960 年代初頭に最初のタイムシェアリング システムが登場し 、複数のユーザーが 1 台のコンピューターで作業できる機能をもたらして以来、各ユーザーのファイルとデータを他のすべてのユーザーから分離し、区分化する必要がありました。そして、ユーザー アカウント とパスワードが 誕生しました。
ユーザー アカウントには管理オーバーヘッドがかかります。これらは、ユーザーが初めてコンピューターにアクセスする必要があるときに 作成する 必要があります。アクセスが必要なくなったら、削除する必要があります。 Linux では、ユーザー、そのファイル、およびアカウントをコンピューターから正確かつ系統的に削除するために従う必要がある一連の手順があります。
あなたがシステム管理者であれば、その責任はあなたにあります。その方法は次のとおりです。
アカウントを削除する理由
アカウントを削除する必要がある理由はさまざまです。スタッフ メンバーが別のチームに異動するか、会社を完全に退職する可能性があります。このアカウントは、別の企業からの訪問者との短期的なコラボレーションのために設定された可能性があります。学術界ではチームアップが一般的であり、研究プロジェクトは学部、異なる大学、さらには営利団体にまたがることもあります。プロジェクトの終了時に、システム管理者はハウスキーピングを実行し、不要なアカウントを削除する必要があります。
最悪のシナリオは、誰かが軽犯罪のために雲の下に去ってしまうことです。このような出来事は通常、ほとんど前触れもなく突然起こります。そのため、システム管理者は計画を立てる時間がほとんどなくなり、アカウントのロック、閉鎖、削除を緊急に行う必要が生じ、閉鎖後のフォレンジックに必要な場合に備えてユーザーのファイルのコピーがバックアップされます。
このシナリオでは、ユーザーのエリックが施設からの即時退去を正当化するような行動をとったと仮定します。現時点では彼はそのことに気づいていませんが、まだ仕事をしており、ログインしています。警備員にうなずくとすぐに、彼は建物から護送されます。
すべてが設定されました。みんながあなたに注目しています。
ログインを確認する
彼が本当にログインしているかどうか、ログインしている場合はどれくらいのセッションを使用しているかを見てみましょう。
who
コマンドは
、アクティブなセッションをリストします
。
誰が
エリックは一度ログインしました。彼がどのようなプロセスを実行しているかを見てみましょう。
ユーザーのプロセスの確認
ps
コマンドを使用する
と、このユーザーが実行しているプロセスを一覧表示
できます。
-u
(ユーザー) オプションを使用すると、出力をそのユーザー アカウントの所有権で実行されているプロセスに制限するように
ps
に指示できます。
ps -ユーリック
top
コマンドを使用すると、同じプロセスを詳細情報とともに表示できます。
top
、出力を単一のユーザーが所有するプロセスに制限する
-U
(ユーザー) オプションもあります。今回は大文字の「U」であることに注意してください。
トップ - ユー・エリック
各タスクのメモリと CPU 使用率を確認できるため、疑わしいアクティビティがあるものをすぐに見つけることができます。彼のプロセスをすべて強制終了しようとしているので、少し時間をとってプロセスをすぐに確認し、ユーザー アカウント
eric
のプロセスを終了するときに他のユーザーに迷惑がかからないかどうかを確認するのが最も安全です。
彼は大したことをしているようには見えませんが、ファイルを表示するために使用する
less
だけです。安全に続行できます。ただし、彼のプロセスを強制終了する前に、パスワードをロックしてアカウントを凍結します。
アカウントをロックする
プロセスを強制終了するとユーザーがログアウトされるため、プロセスを強制終了する前にアカウントをロックします。彼のパスワードをすでに変更している場合、彼は再びログインできなくなります。
暗号化されたユーザー パスワードは
/etc/shadow
ファイルに保存されます。通常はこれらの次の手順を気にする必要はありませんが、アカウントをロックしたときに
/etc/shadow
ファイルで何が起こるかを確認できるように、少し回り道をしてみます。次のコマンドを使用して、
eric
ユーザー アカウントのエントリの最初の 2 つのフィールドを確認できます。
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow
awk コマンドは、
テキスト ファイルのフィールドを解析し
、必要に応じてフィールドを操作します。
-F
(フィールド区切り文字) オプションを使用して、ファイルがフィールドを区切るためにコロン「
:
」を使用することを
awk
伝えます。 「eric」というパターンが含まれる行を検索します。一致する行については、最初と 2 番目のフィールドを出力します。これらはアカウント名と暗号化されたパスワードです。
ユーザー アカウント eric のエントリが印刷されます。
アカウントをロックするには、
passwd
コマンドを使用します。
-l
(ロック) オプションを使用し、
ユーザー アカウントの名前を lock に渡します
。
sudo passwd -l eric
/etc/passwd
ファイルを再度チェックすると、何が起こったのかがわかります。
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow
暗号化されたパスワードの先頭に感嘆符が追加されています。最初の文字は上書きされず、パスワードの先頭に追加されるだけです。ユーザーがそのアカウントにログインできないようにするために必要なのはこれだけです。
ユーザーが再ログインできないようにしたので、プロセスを強制終了してログアウトできます。
プロセスを強制終了する
ユーザーのプロセスを強制終了する
にはさまざまな方法がありますが、ここで示したコマンドは広く利用可能であり、いくつかの代替手段よりも最新の実装です。
pkill
コマンドはプロセスを見つけて強制終了します。 KILL シグナルを渡し、
-u
(ユーザー) オプションを使用します。
sudo pkill -KILL -u eric
明らかにクライマックスとは異なる方法でコマンド プロンプトに戻ります。何かが起こったことを確認するために、もう一度
who
確認してみましょう:
誰が
彼のセッションは終了しました。彼はログオフされ、プロセスが停止されました。これにより、状況の緊急性がいくらか取り除かれました。警備員がエリックのデスクまで歩いていくので、少しリラックスして残りの掃討作業を続けることができます。
ユーザーのホームディレクトリのアーカイブ
このようなシナリオでは、将来的にユーザーのファイルへのアクセスが必要になる可能性も考えられます。調査の一環として、あるいは単純に後任が前任者の業績を参照する必要があるためです。
tar
コマンドを使用して
、ホーム ディレクトリ全体をアーカイブします
。
私たちが使用しているオプションは次のとおりです。
- c : アーカイブファイルを作成します。
- f : 指定されたファイル名をアーカイブの名前として使用します。
- j : bzip2 圧縮を使用します。
- v : アーカイブの作成時に詳細な出力を提供します。
sudo tar cfjv eric-20200820.tar.bz /home/eric
多くの画面出力はターミナル ウィンドウでスクロールします。アーカイブが作成されたことを確認するには、
ls
コマンドを使用します。
-l
(長い形式) オプションと
-h
(人間が読める形式) オプションを使用しています。
ls -lh eric-20200802.tar.bz
722MBのファイルが作成されました。これは、後で確認できるように安全な場所にコピーできます。
cron ジョブの削除
ユーザー アカウント
eric
に対してスケジュールされた
cron
ジョブがあるかどうかを確認したほうがよいでしょう。
cron
ジョブは、指定された時間または間隔でトリガーされるコマンドです。
ls
を使用して、このユーザー アカウントにスケジュールされた
cron
ジョブがあるかどうかを確認できます。
sudo ls -lh /var/spool/cron/crontabs/eric
この場所に何かが存在する場合は、そのユーザー アカウントのキューに
cron
ジョブがあることを意味します。この
crontab
コマンドを使用してそれらを削除できます。
-r
(削除) オプションはジョブを削除し、
-u
(ユーザー) オプションは
削除するジョブを
crontab
指示します。
sudo crontab -r -u eric
ジョブはサイレントに削除されます。私たちが知っている限りでは、エリックが立ち退きされそうになっていると疑っていたら、悪意のある仕事を予定していた可能性があります。このステップはベストプラクティスです。
印刷ジョブの削除
おそらくユーザーには保留中の印刷ジョブがあったのではないでしょうか?念のため、ユーザー アカウント
eric
に属するジョブの印刷キューをパージできます。
lprm
コマンドは
、印刷キューからジョブを削除します
。
-U
(ユーザー名) オプションを使用すると、指定したユーザー アカウントが所有するジョブを削除できます。
lprm -ユーリック
ジョブが削除され、コマンド ラインに戻ります。
ユーザーアカウントの削除
/home/eric/
ディレクトリからファイルをすでにバックアップしているので、ユーザー アカウントを削除し、同時に
/home/eric/
ディレクトリを削除できます。
使用するコマンドは、使用している Linux ディストリビューションによって異なります。
Debian ベースの Linux ディストリビューション
の場合、コマンドは
deluser
であり、
その他の Linux 環境では
、コマンドは
userdel
です。
実際、Ubuntu では両方のコマンドが利用可能です。一方がもう一方のエイリアスであることは半分予想していましたが、これらは別個のバイナリです。
タイプデルユーザー
ユーザーデルと入力します
どちらも利用可能ですが、
Debian 派生ディストリビューションでは
deluser
を使用することをお勧めします。
”
userdel
、ユーザーを削除するための低レベルのユーティリティです。Debian では、管理者は通常、代わりに
deluser
(8) を使用する必要があります。”
それは明らかなので、この Ubuntu コンピューターで使用するコマンドは
deluser
です。ホーム ディレクトリも削除したいので
--remove-home
フラグを使用します。
sudo deluser --remove-home エリック
非 Debian ディストリビューションに使用するコマンドは、
--remove
フラグを指定した
userdel
です。
sudo userdel --エリックを削除
ユーザー アカウント
eric
の痕跡はすべて消去されました。
/home/eric/
ディレクトリが削除されたことを確認できます。
ls /ホーム
ユーザー アカウント
eric
が唯一のエントリであったため、
eric
グループも削除されました。
/etc/group
の内容を
grep
にパイプすることで、これを非常に簡単に確認できます。
sudo を省略 /etc/group | grep エリック
それはラップです
エリックは罪を犯したため、この世を去りました。セキュリティはまだ彼を建物から追い出していますが、あなたはすでに彼のファイルを保護してアーカイブし、アカウントを削除し、システムに残っているものをすべて削除しました。
正確さは常にスピードに優先します。実行する前に、各ステップを必ず検討してください。誰かがあなたのデスクに近づいてきて、「いいえ、もう一人のエリックです」と言うのは望ましくありません。





