いくつかの専用タスクを実行するCentOSサーバーがあり、さまざまなプロセス/ユーザーがお互いのファイルにフルアクセスする必要があります。これらのファイルは本質的に一時的なものであるため、/tmp
ディレクトリに保存されます。
/tmp
ディレクトリには、デフォルトでスティッキービットが設定されています。したがって、私のシナリオでは、スティッキービットを無効にします。そうしないと、プロセス/ユーザーBはプロセス/ユーザーAによって作成されたファイルを削除できません。AはBを提供するだけであり、Bが終了した後にのみ、ファイルを削除できるはずです。削除することができます。
chmod -t /tmp
ここまでは順調ですね!ただし、マシンを再起動するたびに、スティッキービットが自動的に再設定され、もう一度削除する必要があります。
私はこれらのファイル用に別のディレクトリを作成することを考えていましたが、私が言ったように、サーバーはいくつかの専用タスクを実行するため、それは私にはまったく必要ではないようです。 AとBが仕事をしている以外に何も起こっていません。
しかし、どのようにしてスティッキービットを削除して永続化させることができますか? chmod
で実行できない場合は、どうすればよいですか?
/tmp
ではなく別のディレクトリを使用してください。
スティッキービットは、起動時にsystemdによって常に/tmp
に追加され、起動ごとにディレクトリが再作成されます。
スティッキービットを削除すると、他のものが/tmp
を使用できなくなるため、賢明ではありません。そして、他の多くのものは/tmp
を使用しますが、それらの使用は明白ではないかもしれませんし、サーバー上でほとんど実行されていないかもしれません。スティッキービットを取り除くと、遅かれ早かれあなたを噛むために戻ってきます。
本当に必要なのは、Aが作成したファイルをBが削除できるようにすることだけです。ファイルを削除できるかどうかは、含まれているディレクトリの書き込み権限によって制御されるため、必要なのは、AとBの両方が書き込むことができるディレクトリを作成することだけです。 ACLまたはグループメンバーシップを使用してこれを行うことができます。
RHELおよびCentOSでは、/ etc/cron.daily/tmpwatchが毎日トリガーされ、/ tmpをクリーンアップおよび修正します。/tmpのデフォルトの権限を本当に上書きしたい場合は、そのファイルの内容を変更することで上書きできます。
むしろ、/ tmpを直接変更するか、その構成/セットアップを変更し、サブディレクトリを作成して、グループとグループ権限の組み合わせを使用して、それに適切な権限を適用します。データの機密性が低く、リスク回避的でない場合は、アクセス許可を開いて、誰でもファイルを削除できるようにすることができます。