ファイルを読み取ることはできますが、コピー、移動、または削除できないように、Linuxシステムまたは特定のディレクトリ(私の場合はScientific Linux)に対する権限を設定できますか?
修正する:私のシナリオは、私たちが作るのに多くの時間と労力を費やしたいくつかの画像を含むGUIプログラムを開発することでした。私たちのディレクトリ構造は次のとおりです。
/GUI/program/GUI.exe
/GUI/images/A/A1.jpeg A2.png .... A200.png
/GUI/images/B/B1.png B2.png .... B200.png
.
.
/GUI/images/I/I1.png I2.png .... I200.png
./GUI.exe
ユーザーが対話する必要がある画像を呼び出すことは言うまでもありません。
今隠す必要があります/GUI/images/*
。
解決策は何ですか?
答え1
ファイルが読めればコピーも可能です。ただし、ファイルがあるディレクトリに書き込み権限を付与しないと、ファイルが削除または移動されるのを防ぐことができます。
質問が修正された後、追加情報で編集されました。
これで、質問に追加したシナリオを考慮すると、次のことができます。
- このプログラム専用のユーザーを作成してください。
guiuser
- /GUI/images ディレクトリの所有権を次のように変更します。
guiuser
guiuser
読み取り権限のみを持つようにディレクトリとその中のファイルに対する権限を変更します。- プログラムGUI.exeの所有者を次のように変更します。
guiuser
- プログラム setuid(
chmod u+s /GUI/program/GUI.exe
) の実行権限を変更します。
ユーザーがプログラムを実行すると、プログラムにアクセス権が付与されるため、guiuser
通常のユーザーが権限を持っていなくても、プログラムはファイルを読み取ることができます。
答え2
コピーは魔法ではありません。ただ、ファイルを読み込んだ内容を他の場所に保存するだけです。したがって、デフォルトでファイルを読み取ればコピーできます。
しかし、何をするかによっては、データを作成して目標を達成することもできます。一般ユーザーは読めません。、特別なプログラムを介してのみアクセスできます(過去にはsetuidプログラムでしたが、最近はWebアプリケーションがより適切である可能性があります)。プログラムは要求時にファイル全体ではなく部分データを配布します。本質的な問題がまだ存在するため、これは不可能です。防ぐ複製は可能ですが、要求速度を制限するロジックがある可能性があるため、より困難になる可能性があります。または、次のようにデータをレンダリングできます。損失が多い元の情報を提供するよりも、たとえばソースがHTML形式の場合、レンダリングされたプレーンテキストが送信されます。意志のあるユーザーは元のコンテンツを推測して再構成できますが、正確な結果を得る可能性はほとんどありません。
答え3
これらの画像を表示するには読み取り可能である必要があります。読めばコピーできます。コピーには何かを読み、他の場所に書き込むことが含まれているためです。カスタムアプリケーションまたはWeb経由で表示するかどうかmattdmが提案したもの。 Webブラウザが画像を表示するときは、まず画像をダウンロードする必要があります(画像をダウンロードしないと何を表示するのかわかりません)。
以下のように、プログラムに追加の権限を付与し、これらの追加権限を使用してのみ画像にアクセスできるようにすることができます。Jenny Dが提案したもの。しかし、最初から安全なアプリケーションを設計しない限り、そうすることはできません。さらに、システム管理者はとにかくこれらのイメージにアクセスできます。
あなたは技術を通して社会問題を解決しようとしていることがほぼ確実です。私たち全員が知っているように、これはうまくいきません。ユーザーが画像をコピーしないという契約に署名するようにしてください。これをライセンスといいます。
答え4
コピーとは何の関係もありません。ファイルをコピーするツールはファイルを読み取るだけで、システムは読み取りの目的を決定できません。
ユーザーの書き込み能力を完全に削除しない限りどこかに、合理的に能力のあるユーザーは、ファイルを読むことができれば、ファイルをコピーする方法を見つけるでしょう。