ユーザーがLinux権限でファイルを変更するのを防ぐ方法

ユーザーがLinux権限でファイルを変更するのを防ぐ方法

ユーザーがファイルを生成できますが、後で編集または削除できないようにLinux権限スキームを使用できますか?私の言葉は、ユーザーがアーティファクトを入れる配信フォルダがあり、配信後にこれらのアーティファクトを変更、編集、または削除したくないことです。

答え1

これはできません。ユーザーがファイルを作成できる場合、そのファイルはそのユーザーの所有になり、ユーザーはそのファイルを変更して削除できます。

私は簡単なシナリオを思い出して、準備ディレクトリ(ユーザーが望むことができる場所)と着信ディレクトリ(ユーザーがアクセスできないディレクトリ)を持ち、小さな権限を持つプログラムを使用して準備ディレクトリからファイルを移動する予定です。ディレクトリディレクトリを渡します。しかし、正しく実行するのは本当に難しいです。何よりも、特権プログラムがファイルを別のディレクトリに移動しないように注意し(競合条件、シンボリックリンクに注意)、既存のファイルを上書きしないように注意する必要があります../rename(3)アトミックですがターゲットを削除する)、ユーザーはファイル記述子を開いたままにします。保存してファイルを移動した後にファイルを変更することはできません(したがって、移動するよりもコピーする方が良いです)。代わりに、既存の強力なソリューションを使用することをお勧めします。

  • ユーザーはHTTP経由でファイルをアップロードできます。
  • ユーザーがバージョン管理システムを使用できるようにします。彼はまた新しいバージョンを提出することができます。

答え2

ユーザーがファイルを生成できますが、後で編集または削除できないようにLinux権限スキームを使用できますか?

いいえ

しかし、あなたの質問に対するコメントで@Fredrikが提案した他のオプションがあります。ねえ。

答え3

理論的には、これが可能なアプローチです。概念証明を開発することさえ、私にとってはあまりにも多くの努力になります。同じ理由で拒否することもできます。そして厳密に言えば、これは「Linux権限システムを使用すること」ではありません。

  • オープンソースファイルサーバーを入手してください。
  • 必要なルールを適用するには、それを編集してください。つまり、ユーザーは書き込みアクセス権を持つディレクトリにファイルを作成でき、ファイルが作成されたらすぐにファイルに書き込むことができますが、その後はルート以外のファイルを開いて書き込むことはできません。または接続を解除してください)。
  • 変更されたサーバーソフトウェアを実行するサーバーホストを設定します。理論的にはローカルホストかもしれません。作業中のディレクトリがパブリックにアクセスできないことを確認してください。
  • NFSはファイルをマウントし、/mnt/deliveryユーザーにファイルをここに保存するように指示します。

答え4

簡単な答えは、選択した特定の時間間隔(たとえば15分ごと)でスクリプトを実行して、「アップロード」ディレクトリ内のすべてのファイルの所有権を意図した「管理者」ユーザーに再割り当てし、権限を「644」に設定することです。 。これにより、すべてのユーザーがアップロードしたファイルを含む、アップロードディレクトリ内のすべてのファイルへの読み取り専用アクセスが許可されます。もちろん、最初の実行後にスクリプトを最適化して、スクリプトが最後に実行された日付(過去17分など)以降に生成された日付を含むファイルのみを検索できます。

関連情報