LinuxでSE時代にuserdelを実行してホームディレクトリが消えた話|現役講師が語る確認習慣が生まれた経緯

HOMEリナックスマスター.JP 公式ブログLinux学習ガイド > LinuxでSE時代にuserdelを実行してホームディレクトリが消えた話|現役講師が語る確認習慣が生まれた経緯
宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
LinuxでSE時代にユーザーアカウントを削除した時、ホームディレクトリごと消えた経験があります。

「退職した社員のLinuxアカウントを削除しておいてほしい」という依頼を受けて、何の疑いもなく打ったコマンドが、大量のファイルを一瞬で消し去りました。あの瞬間の「あ、まずい」という感覚は、20年以上経った今でも忘れられません。

この記事では、20年以上Linuxサーバーを運用してきた経験から、ユーザー削除作業で起きやすいミスと、今も私が必ず続けている作業前の確認習慣をお伝えします。

この記事のポイント

・userdel -r はホームディレクトリも削除する。実行前にオプションを必ず確認すること
・退職者アカウント削除前に、ホームディレクトリを退避してから作業する
・SE2年目の失敗が、20年続く「立ち止まる習慣」の出発点になった
・コマンド1行で取り返しのつかない結果になる操作がLinuxには多くある


LinuxでSE時代にuserdelを実行してホームディレクトリが消えた話|現役講師が語る確認習慣が生まれた経緯
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

「退職者のアカウントを消しておいて」という依頼

SE2年目の夏のことでした。上司から「先月退職した社員のLinuxアカウントを削除しておいてほしい」という依頼を受けました。単純な作業のように思えて、実際には大きなリスクを内包していたことを、私はその時まだ知りませんでした。

セミナーで3,100名以上を指導してきた中でよく聞かれることの一つが、「ユーザー削除ってどうやるんですか?難しいですか?」という質問です。見た目は単純なのに、実は落とし穴がある操作なのです。

私が受けた依頼も、そのような「シンプルに見えて危険な」作業でした。

あの日、何が起きたか

1. 確認せずに打ったコマンド

当時の私は、ユーザーを削除するコマンドとして userdel を知っていました。問題は、オプションをよく調べずに使ったことです。

# ユーザー削除コマンド(-r なしの場合、ホームは残る) $ userdel yamada # -r オプション付き(ホームディレクトリとメールスプールも削除) $ userdel -r yamada

-r オプションは「ホームディレクトリとメールスプールもまとめて削除する」という指定です。私はこの意味を十分に理解していないまま、「削除するんだから -r も付ければ丁寧なのでは」という感覚で実行しました。コマンドは正常終了し、画面には何のエラーも表示されませんでした。

2. データが消えたと気づいた瞬間

コマンドを打った30分後、別の社員から連絡が来ました。

「yamada さんが残してくれた引き継ぎファイルを確認したいんですが、/home/yamada にアクセスできなくて……」

確認すると、/home/yamada のディレクトリがまるごと消えていました。そこには作業ログ、設定ファイルのバックアップ、引き継ぎ資料として残すはずだったファイル群が含まれていたのです。

# 実行後に /home/ を確認したら yamada のディレクトリが消えていた $ ls -la /home/ total 24 drwxr-xr-x. 5 root root 4096 Aug 20 11:47 . dr-xr-xr-x. 18 root root 4096 Mar 15 08:00 .. drwx------. 15 tanaka tanaka 4096 Aug 20 09:15 tanaka drwx------. 12 sato sato 4096 Aug 18 14:22 sato # yamada のホームディレクトリが存在しない

あの瞬間の「あ、終わった」という感覚は、今でも忘れられません。

3. 上司への報告と後始末

上司に状況を報告すると、「なぜ先にバックアップを取らなかったのか」と言われました。当然の指摘でした。テープバックアップからのリストアを試みましたが、最新のファイルは戻すことができませんでした。引き継ぎ資料の一部が永久に失われたのです。

影響が致命的ではなかったのは不幸中の幸いでしたが、「コマンドを打つ前に立ち止まる」という感覚が、あの日から私の中に根付いたのです。退職者のアカウント削除という「ありふれた依頼」が、私にとって最大の反省材料になりました。

あの経験から20年以上変えていない確認の型

あの失敗以来、ユーザー削除作業に限らず「取り返しのつかない操作」の前には必ず同じ手順を踏むようにしています。私が現場でよく見かけるのが、「やったことがある」という慣れから確認を省いてしまうケースです。慣れた頃がいちばん危ない。20年以上の運用経験から言うと、これは間違いない事実です。

1. オプションを使う前に必ず man を開く

userdel -r-r が何をするかを知っていれば、事前にホームディレクトリを確認してバックアップできました。知らなかったことが根本の問題です。

# オプションの意味を確認してから使う $ man userdel # または --help で簡易確認 $ userdel --help Usage: userdel [options] LOGIN Options: -f, --force ログインしていても削除 -r, --remove ホームディレクトリとメールスプールも削除 -Z, --selinux-user SELinux ユーザーマッピングを削除

「このオプション、前にも使ったことがある」という場合でも、改めて man を確認する習慣をつけてください。記憶は意外と曖昧なものです。特にオプションの意味は、ぼんやりした記憶で動かすと必ずしっぺ返しが来ます。

2. ユーザー削除前にホームディレクトリを確認・退避する

退職者のアカウントを削除する場合、ホームディレクトリに重要なファイルが残っていることが少なくありません。私が現場でよく見かけるのが、削除後になって「あのファイルが必要だった」と言われるケースです。必ず事前に内容を確認し、必要であれば退避してから作業します。

# ホームディレクトリの内容と容量を確認 $ ls -la /home/yamada/ $ du -sh /home/yamada/ # 削除前に退避(日付をファイル名に入れると後で管理しやすい) $ cp -rp /home/yamada /backup/home_archive/yamada_20260806 # 退避先に正しくコピーできたか確認 $ ls -la /backup/home_archive/yamada_20260806/

退避先が確認できてから、初めてアカウント削除の作業に入ります。この手順を省くことは、私の現場ではありません。

3. 削除作業の手順を事前に書いてから実行する

「明らかに簡単な作業」ほど、確認が疎かになります。「ユーザー削除くらいすぐできる」という油断が、ミスを生む原因になります。どんなに単純に見える作業でも、実行前に手順を書き出す習慣が大切です。

私が今でも実施しているのは以下の流れです。

・削除対象ユーザーの存在確認(id コマンドで確認)
・ホームディレクトリの内容確認と退避先の決定
・退避作業の実施と確認
・userdel コマンドの実行(-r を使うかどうかを明示的に判断する)
・削除後の確認(/home/ と /etc/passwd への反映確認)

# ステップ1: 削除対象ユーザーの存在確認 $ id yamada uid=1001(yamada) gid=1001(yamada) groups=1001(yamada) # ステップ2: ホームディレクトリ退避後にアカウント削除(ホームは残す) $ userdel yamada # ステップ3: /etc/passwd から消えているか確認 $ grep yamada /etc/passwd # 何も表示されなければ正常に削除済み # ステップ4: ホームディレクトリが残っていることを確認 $ ls -la /home/ | grep yamada drwx------ 2 1001 1001 4096 Aug 06 10:22 yamada

20年以上サーバーを運用してきた経験から言うと、この手順を「面倒くさい」と感じる時こそ、ミスが起きやすいタイミングです。特に忙しい時、急いでいる時。そういう時こそ立ち止まる習慣が、最大の価値を発揮します。

まとめ

作業内容 確認ポイント
オプション確認 man userdel または userdel --help で必ず確認
ホームディレクトリ退避 cp -rp /home/ユーザー名 /backup/退避先 で事前退避
アカウント削除 -r の使用は明示的に判断する(ホームを残すなら -r なし)
削除後確認 grep ユーザー名 /etc/passwdls /home/ で二重確認
SE2年目の夏の失敗は、今も私の中で生きています。あの経験があったからこそ、「コマンドを打つ前に立ち止まる」という感覚が体に染み付きました。

コマンド1行が全てを消す。Linuxはそういうツールです。危険さと同時に、それがLinuxの正直さでもあります。「確認してから打つ」という当たり前のことを、当たり前に続けてください。その習慣こそが、長くエンジニアとして活躍するための土台になります。

「確認してから打つ」を体系的に身につけませんか?

現場で事故を起こさないエンジニアは、コマンドを知っているだけでなく、「何を確認してから実行するか」という型を持っています。ユーザー管理、パーミッション設定、ディスク操作。これらを体系的に学ぶことが、安全な作業習慣への最短経路です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。