グローバルに書き込み可能なファイルのリスク

グローバルに書き込み可能なファイルのリスク

私は完全な書き込み可能ファイルを持つことが危険かもしれないことを知っており、多くの人がシステムに完全な書き込み可能ファイルを置かないように助言します。

私のLinuxを「保護」するために使用しますfind / -perm -0002 -type f。このコマンドのおかげで、root_directoryの下にグローバルに書き込み可能なファイルが見つかりました/root/a_directory/world_writable_file。私の/rootディレクトリは700なので、他のユーザーは書き込み可能ファイルを編集できません。

だから私の質問は、他のユーザーがアクセスできない(他のユーザーのx権限が不足している)ディレクトリに誰でも書き込み可能なファイルがある場合、どのようなリスクがありますか?

たとえば、/root/directory1/world_writable_file.sh777で/directory1/700なら安全ですか?この状況では危険はありませんか?

ベストアンサー1

権限の理解は正しいようですが、完全ではない可能性があります。

ファイルにアクセスするには、要求するユーザーがファイルのすべてのパス要素にアクセスする必要があります。ディレクトリの場合、xディレクトリを参照するには権限が必要であることを意味します。

777したがって、権限のあるディレクトリにある権限を持つファイルには、そのディレクトリの所有者以外の人がアクセスできません。700

たとえば、

$ sudo ls -al XX
total 40
drwx------  2 root root  4096 Dec 21 07:43 .
drwxrwxrwt 13 root root 36864 Dec 21 07:43 ..
-rwxrwxrwx  1 root root     0 Dec 21 07:43 yy

ディレクトリを参照できないyyため、ファイルを読み書きできません。XX

$ cat XX/yy
cat: XX/yy: Permission denied
$ echo test >> XX/yy
/bin/ksh: XX/yy: cannot create [Permission denied]

ただし、既存の権限がファイルへのアクセスを許可する唯一の方法ではありません。持つ返品ACL...

$ sudo setfacl -m u:sweh:rwx XX
$ ls -ld XX        
drwxrwx---+ 2 root root 4096 Dec 21 07:43 XX/
$ echo test >> XX/yy
$ cat XX/yy         
test

ディレクトリ権限がとして表示されても770ACLによって付与されたファイルであるため、ファイルを読み書きすることができます。+ACL は権限リストの最後に表示されます。

drwxrwx---+ 2 root root 4096 Dec 21 07:43 XX/

場合によっては、ACLと既存の権限が重複する方法が重複します。このsetfaclコマンドはモードをに設定します770。リセットすると700...

$ sudo chmod 700 XX
$ ls -ld XX
drwx------+ 2 root root 4096 Dec 21 07:43 XX/

これで、ACL はまだ存在しますが有効です。いいえアクセス許可:

$ getfacl XX
# file: XX
# owner: root
# group: root
user::rwx
user:sweh:rwx                   #effective:---
group::---
mask::---
other::---

#effective:---項目を参照してください。これは、グループ値を設定するとmask値が変更されるためです。chmodこれはACLとファイル権限の間の微妙な対話です。

だから..

$ cat XX/yy        
cat: XX/yy: Permission denied

簡単に言えば、700ディレクトリ内のすべての書き込み可能ファイルは安全でなければなりませんが、ディレクトリ内の同様のファイルは安全ではない可能性があり770ます。

おすすめ記事