o=rw
とマークされたディレクトリに限定されたファイルとディレクトリにo=rwx
またはo=
を移動するのは安全ではありませんか?
言い換えると、プライベート(g=,o=
)ホームディレクトリが指定されている場合、これらの信頼できるファイルがすべて私の家にある限り、o=rw
またはo=rwx
ですべてを書き込むことは完全に安全ですか?
(私はumask 0000を設定しようとはしていません-それが/tmp
ファイルなどを開くことになると思いますが、これを実行したいプログラムを書いているので、私がそうであるかどうか知りたいのですがm愚かなことをしている。)
これらのファイルとディレクトリが親ディレクトリと同じ所有者である限り、これは直接安全ではありません。親ディレクトリのアクセス許可をバイパスできるハードリンクがなく、親ディレクトリのアクセス許可に例外が設定されていません(たとえば、一部のACL)。
しかし、これは火で遊んでいるので、私はまだこれを賢明ではなくクリーンではないと分類します。将来のある時点で、恐らく無関係なソフトウェアまたはプロジェクトに関連する無関係な変更が原因で、上記の条件が満たされないため、セキュリティの脆弱性が広がってしまいます(そしてマーフィーの法則により、これは最悪の場合に起こると想定できます瞬間)。
ソフトウェアを作成するときは、外側の保護層によって保護されたままであり、そのため「到達不能」であるため悪用できないという想定に基づいて、安全でないコードを作成してはなりません。セキュリティは、すべてのコンポーネントが適切な一般的なセキュリティ体制を確保するためにその役割を果たす必要がある全体として考える必要があります。
だから、私の答えは:
Linuxはドメインソケットのファイル権限を尊重しますが、ソケットファイルの権限を無視するというUnix実装があります(例:BSD、HP -UX)。セキュリティのためにファイルシステムのアクセス許可に依存する移植可能なプログラムは、ソケットファイルにアクセス許可を設定するのではなく、目的のアクセス許可を持つディレクトリにソケットを作成する必要があります。
また、親フォルダにアクセスできなくても、ファイル(およびドメインソケット)にアクセスできる状況もいくつかあります。これらは通常、最初のセットアップに特権を必要としますが、その後特権なしでアクセスすることができます。たとえば、ホームディレクトリ内のフォルダへのバインドマウントへのアクセス権があるユーザーは、バインドマウントパスを介してフォルダにアクセスするため、ホームディレクトリの権限をバイパスできます。別の例としては、システムに代替のアクセス許可メカニズム(ACLなど)が設定されている場合、制限付きのUnixアクセス許可にもかかわらず、他のユーザーはそれらの代替のアクセス許可メカニズムを介してそのファイルへのアクセスを許可されることがあります。