ユーザー名が割り当てられていないファイルは、セキュリティ上のリスクがあると見なされます。
これはどのようにして可能であり、どのように悪用される可能性がありますか?
編集:私の質問は最小特権の原則に焦点を当てるのではなく、ユーザー作成プロセスに焦点を当てているため、私の質問は上記の質問の複製ではありません。
Linuxシステムでは、ユーザーが所有しているファイルを削除することなく、ユーザーを簡単に削除できます。このようなファイルはそのまま残り、ファイルの所有者のユーザーID( inode の属性として保存されます)は変更されません。このようにして、ファイルは事実上無所有者になることができます。
その後、同じIDを持つユーザーを作成すると、そのユーザーは自動的に以前に孤立したファイルの所有者になります。新しいユーザーが意図せずに(または悪意を持って)所有してはならないファイルの所有者になる可能性があるのはこのためです。これは明らかにセキュリティに悪影響を及ぼします。
userdel
にはファイルと一緒にユーザーを削除する追加のスイッチがありますが、someの固定場所からのみファイルを削除することに注意してください。ホームディレクトリなど:
-r, --remove
Files in the user's home directory will be removed along with
the home directory itself and the user's mail spool. Files
located in other file systems will have to be searched for
and deleted manually.
find
と-nouser
存在しない所有者のファイルを検出するためのスイッチ:
-nouser
No user corresponds to file's numeric user ID.
こちらがArch Linuxの簡単なデモです。
ユーザーalice
を追加して、ファイルfoo
の所有者にします。
[root @ box /]#useradd alice [root @ box /]#touch foo [root @ box /]#chown alice foo [root @box /]#ls -l foo -rw-r--r-- 1 alice root 0 Jan 5 02:59 foo
では、alice
を削除しましょう。
[root @ box /]#userdel alice [root @ box /]#ls -l foo -rw-r--r-- 1 1001 root 0 Jan 5 02:59 foo
ls
は所有者名を特定できず、数値の所有者IDを表示するだけです1001
。次に、新しいユーザーbob
を追加します。
[root @ box /]#useradd bob [root @ box /]#ls -l foo -rw-r--r-- 1 bob root 0 Jan 5 02:59 foo
bob
には次の空きユーザーIDが割り当てられているため、彼は自動的にファイルの所有者になります。