ディレクトリAのファイルのコピーをディレクトリBのシンボリックリンクにし、元のファイルからシンボリックリンクへの読み取り権限のみを保持するだけです。この例と同じです。元のファイルにがあり、–rwx-wxr-x
リンクにがあるはずです。–r-----r--
コマンドではなく、LinuxのコードCでこれを行う必要があります。 umaskと関係があるようですが、どのように機能するのかわかりません。
答え1
シンボリックリンクには権限の概念がないため、シンボリックリンクを渡すときに最終ファイルにアクセスするときとは異なる権限を適用することはできません。本質的に他のファイルへのパスを保存します(またはシンボリックリンクがぶら下がっている可能性があるため)。
シンボリックリンク自体に権限の概念がない理由は、これを行うユースケースを考えるのが難しいからです。シンボリックリンクを逆参照して最終ファイルに正常にアクセスできる場合は、readlink
シンボリックリンクで(2)を使用して元の権限で読みます。最終ファイルを入手してください。したがって、最も簡単で合理的な答えは「あなたはできません」です。 :-)
これを行うことにした場合、1つのオプションは、eBPF、ptraceなどを使用してファイルパスへの呼び出しを傍受し、一部の権限を偽造することです(ただし、プログラムが正しく予期しない場合はエラーを回避するために)シンボリックリンクではなくふりをする必要があるかもしれません)。これが問題です)。繰り返しますが、シンボリックリンクがある場合、人々は最終目的地までこれを解決するので、ここで達成したい目標が何であるかわかりません。