新しいユーザーが削除されたユーザーからファイルを継承するのはなぜですか?

新しいユーザーが削除されたユーザーからファイルを継承するのはなぜですか?

それで本に出てくる練習問題を宿題にしなければなりませんでした。まず、次のようにユーザーを作成する必要があります。

useradd -c "Steven Baxter" -s "/bin/sh" sbaxter

/home/sbaxter次に、そのディレクトリにいくつかのファイルを追加する必要があります。

touch /home/sbaxter/ some.txt new.txt files.txt

その後、そのユーザーを削除し、sbaxter名前の新しいユーザーを作成する必要がありますmjane。驚くべきことに、実行すると、find /home/ -user mjane新しいユーザーはmjanesbaxterのすべての古いファイルを持つようになります。どうしたの?

答え1

悪魔は詳細とuseraddマニュアルページにあります(実行してこれを見ることができますman 8 useradd):

   -u, --uid UID
       The numerical value of the user's ID. This value must be unique,
       unless the -o option is used. The value must be non-negative. The
       default is to use the smallest ID value greater than or equal to
       UID_MIN and greater than every other user.

したがって、デフォルトはパスワードファイルで使用されていない最小のuid、つまり他のユーザーのuidよりも大きい値です。 sbaxterを削除するとpasswdファイルから削除されるため、彼のuidは「無料」で、mjaneに割り当てられます(useraddこのコマンドを使用すると、2人のユーザーが選択したuidが同じであるため)。useradd

ディスク上のファイルはユーザー名変換ではなくuidのみを保存します(この変換はパスワードファイルで定義されているため)。ls -lnuid所有権ファイルの内容を表示するコマンドを実行して、これを確認できます。

私は実際にあなたをお勧めします障害を負うアカウントを削除する代わりに、ほとんどのLinuxディストリビューションでアカウントをロックする方法は、パスワードをロックし、アカウントが今日期限切れになるように設定することで行うことができます(次のようにしてアカウントusermod -L -e today <username>の有効期限を見ることができます)。chage -l

答え2

削除されたユーザーのUIDは新しいユーザーによって再利用され、ファイルシステムはUIDを使用してユーザー名ではなく所有権を表します。

関連情報