私は完全な書き込み可能ファイルを持つことが危険かもしれないことを知っており、多くの人がシステムに完全な書き込み可能ファイルを置かないように助言します。
私のLinuxを「保護」するために使用しますfind / -perm -0002 -type f
。このコマンドのおかげで、root_directoryの下にグローバルに書き込み可能なファイルが見つかりました/root/a_directory/world_writable_file
。私の/root
ディレクトリは700なので、他のユーザーは書き込み可能ファイルを編集できません。
だから私の質問は、他のユーザーがアクセスできない(他のユーザーのx権限が不足している)ディレクトリに誰でも書き込み可能なファイルがある場合、どのようなリスクがありますか?
たとえば、/root/directory1/world_writable_file.sh
777で/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
ディレクトリ権限がとして表示されても770
ACLによって付与されたファイルであるため、ファイルを読み書きすることができます。+
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
ます。