web-dev-qa-db-ja.com

ユーザーに割り当てられていないファイルがセキュリティリスクと見なされるのはなぜですか?

Linux聖書第9版から:

ユーザー名が割り当てられていないファイルは、セキュリティ上のリスクがあると見なされます。

これはどのようにして可能であり、どのように悪用される可能性がありますか?

編集:私の質問は最小特権の原則に焦点を当てるのではなく、ユーザー作成プロセスに焦点を当てているため、私の質問は上記の質問の複製ではありません。

86
AXANO

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が割り当てられているため、彼は自動的にファイルの所有者になります。

120
Arminius