web-dev-qa-db-ja.com

再起動するたびにスティッキービットがリセットされます

いくつかの専用タスクを実行するCentOSサーバーがあり、さまざまなプロセス/ユーザーがお互いのファイルにフルアクセスする必要があります。これらのファイルは本質的に一時的なものであるため、/tmpディレクトリに保存されます。

/tmpディレクトリには、デフォルトでスティッキービットが設定されています。したがって、私のシナリオでは、スティッキービットを無効にします。そうしないと、プロセス/ユーザーBはプロセス/ユーザーAによって作成されたファイルを削除できません。AはBを提供するだけであり、Bが終了した後にのみ、ファイルを削除できるはずです。削除することができます。

chmod -t /tmp

ここまでは順調ですね!ただし、マシンを再起動するたびに、スティッキービットが自動的に再設定され、もう一度削除する必要があります。

私はこれらのファイル用に別のディレクトリを作成することを考えていましたが、私が言ったように、サーバーはいくつかの専用タスクを実行するため、それは私にはまったく必要ではないようです。 AとBが仕事をしている以外に何も起こっていません。

しかし、どのようにしてスティッキービットを削除して永続化させることができますか? chmodで実行できない場合は、どうすればよいですか?

1
kasimir

/tmpではなく別のディレクトリを使用してください。

スティッキービットは、起動時にsystemdによって常に/tmpに追加され、起動ごとにディレクトリが再作成されます。

スティッキービットを削除すると、他のものが/tmpを使用できなくなるため、賢明ではありません。そして、他の多くのものは/tmpを使用しますが、それらの使用は明白ではないかもしれませんし、サーバー上でほとんど実行されていないかもしれません。スティッキービットを取り除くと、遅かれ早かれあなたを噛むために戻ってきます。

本当に必要なのは、Aが作成したファイルをBが削除できるようにすることだけです。ファイルを削除できるかどうかは、含まれているディレクトリの書き込み権限によって制御されるため、必要なのは、AとBの両方が書き込むことができるディレクトリを作成することだけです。 ACLまたはグループメンバーシップを使用してこれを行うことができます。

6
Michael Hampton

RHELおよびCentOSでは、/ etc/cron.daily/tmpwatchが毎日トリガーされ、/ tmpをクリーンアップおよび修正します。/tmpのデフォルトの権限を本当に上書きしたい場合は、そのファイルの内容を変更することで上書きできます。

むしろ、/ tmpを直接変更するか、その構成/セットアップを変更し、サブディレクトリを作成して、グループとグループ権限の組み合わせを使用して、それに適切な権限を適用します。データの機密性が低く、リスク回避的でない場合は、アクセス許可を開いて、誰でもファイルを削除できるようにすることができます。

0
Iyad K