/ tmpはrootが所有する必要がありますか?


3

/ tmpをrootが所有すべきか、それとも誰も所有すべきではないかと思いますか?セーフモードではいくつかの競合が発生しますが、誰にも所有されないようにセキュリティを変更すると心配になります...

アドバイスをいただければ幸いです。

回答:


7

ルートが所有する必要がありますが、1つの重要な要素を持つ誰でも読み取りおよび書き込み可能である必要があります。追加専用ディレクトリにするには、ディレクトリのスティッキービットを設定する必要があります。つまり、/tmpディレクトリ内のファイルを所有し、読み取り/書き込み権限を持つユーザーのみがファイルを削除または名前変更できます。sticky(8)スティッキービットの詳細については、manページを参照してください。


2
それは良い練習があれば、そのサーバー/マルチユーザ的環境にexpecially、「NOEXEC」オプションでそれをマウントすることです
ミスターShunz

@MrShunz:「noexec」を使用する利点はありますか?たとえば、スローアウェイスクリプトを記述するための「スクラッチエリア」として/ tmpを使用するユーザーにとっては、不便です。
-sleske

1
実際、@ sleskeは、それがあなたのパーソナルマシンであればそれほど多くはありませんが、例えばphpスクリプトが書き込み可能なサーバーであれば、/tmp通常はnoexecをマウントする方が安全なので、悪意のあるスクリプトを挿入して実行することはできません。
シュンツ氏

3

誰もファイルを所有できませんか?どのOSを使用していますか?

Linuxでは、/tmprootが所有し、誰でも書き込み可能で、スティッキービットが設定されています。つまり、誰でもファイルを作成できますが、所有者(またはルート)だけがそれらを削除できます。ただし、ほとんどのUnixシステムでは同様のはずです。


1
「nobody」は、典型的なUnixシステム上のアカウントの名前です。どうやら、多くのデーモンを実行するために使用されていたようです。最近では、ほとんどのデーモンに独自のアカウントを与えて、互いに干渉しないようにすることをお勧めします(たとえば、いずれかのデーモンのセキュリティ上の問題により攻撃者がそれを制御できる場合、攻撃者はすぐには攻撃を受けません他のデーモンを制御できるようになります)、「nobody」の主なポイントは、NFSが他のシステムから「root」をマップすることであるように見えます
...-SamB

2

はい、ルートが所有する必要がありますが、他のプログラムが一時ディレクトリとして使用し、そこで作成されたファイルが作成者が所有できるように、スティッキービットで世界的に書き込み可能にする必要があります。最近の標準的な慣行についてはよくわかりませんが、/ tmpをルートパーティションの一部ではなく、独自のパーティションにすることをお勧めします。


また、「/ tmp」はtmpfsの適切な候補です(仮想メモリに完全に存在する)
Vi。

@Vi:興味深いアイデア。ただし、プログラムが/ tmpに大きなファイルを作成しても問題は生じませんか(ビデオの編集/エンコード中の一時ファイルなど)。
-sleske

@sleske、はい、そうだから、時々TMPDIRをオーバーライドします。また、私の/ tmpは「noexec」であり、これも問題を引き起こします。
Vi。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.