
ユーザーを削除すると、userdel username
情報漏えいやその他のセキュリティ上の問題が発生する可能性があることがわかります(チュートリアルの本によると、管理者はユーザーオプションを削除する必要があります-r
)。しかし、私はそれを試してみて、何が起こったのか見ました。これで、「所有されていない」ディレクトリが残りました。で削除できますcd /home; rm -r username
。簡単な方法がありますか?
その本はこう言います。
rootユーザーは、次のコマンドを実行して「非所有」ファイルとディレクトリを見つけることができます。
find / -nouser -o -nogroup 2> /dev/null
どのように動作しますか?
答え1
まあ、私は自分で解決しました。あなたの助けを借りて、find / -nouser -o -nogroup 2> /dev/null
システムからリンクされていないか所有されていないすべてのファイルを表示し、システムに残っているすべてのファイルを削除できます。コマンドオプションを
使用しない場合は、次の手順を実行して古いユーザーのファイルをすべて削除できます。-r
userdel
- 削除されたユーザー
home
ディレクトリを削除します。cd /home; rm -r username
- 残りのファイルを探す:
find / -nouser -o -nogroup 2> /dev/null
。 - 前のコマンドの出力からすべてのファイルを削除します。
重要な編集:このステップ3を使用するのではなく、次を使用してください。
find / -nouser -o -nogroup 2> /dev/null | xargs rm -fr
find
コマンドのforce(-f
)およびrecurse()オプションを使用して、-r
コマンドのすべての出力を削除しますrm
。
@Tim Pierceの回答を引用これ質問:
xarg
標準入力の行を読み取り、それをコマンドライン引数に変換することで、データを他のプログラムのコマンドラインに効果的にパイプできます。
編集#2:@roaimaによると、以下を使用する必要があります。
find / \( -nouser -o -nogroup \) -print0 | xargs -0 rm -rf
頑張ってください!
答え2
または現在のディレクトリでより簡単に:
sudo find . -nouser -nogroup | xargs rm -rf
ファイルシステム全体に適用される場合は、.
確認したいフォルダに変更します。/