それで本に出てくる練習問題を宿題にしなければなりませんでした。まず、次のようにユーザーを作成する必要があります。
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
新しいユーザーはmjane
sbaxterのすべての古いファイルを持つようになります。どうしたの?
答え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 -ln
uid所有権ファイルの内容を表示するコマンドを実行して、これを確認できます。
私は実際にあなたをお勧めします障害を負うアカウントを削除する代わりに、ほとんどのLinuxディストリビューションでアカウントをロックする方法は、パスワードをロックし、アカウントが今日期限切れになるように設定することで行うことができます(次のようにしてアカウントusermod -L -e today <username>
の有効期限を見ることができます)。chage -l
答え2
削除されたユーザーのUIDは新しいユーザーによって再利用され、ファイルシステムはUIDを使用してユーザー名ではなく所有権を表します。