セキュリティホールで "ls /tmp"が機能しない理由を学びます

セキュリティホールで

私はexecve("/bin/sh")Apacheプロセスのセキュリティトレーニングを正常に実行しました。たとえば、ls コマンドは root および in では正しく動作します/binが in では動作せず/tmp、ディレクトリが誰でも読めるにもかかわらず何も出力しません。また、fooにファイルを作成し、/tmp所有者をに変更しwww-dataましたが cat: /tmp/foo: No such file or directory

何が問題なのでしょうか?

ベストアンサー1

PrivateTmp=trueArtemが述べたように、Apacheまたはphp-fpmは、ここで述べたようにシステムサービスとして実行できます。https://www.freedesktop.org/software/systemd/man/systemd.exec.html

これにより、Webサーバーはシステムの他の部分/tmpとは別に独自のマウントネームスペースで実行されます。/var/tmp

nsenterこれが他のプロセスの名前空間でスクリプトを実行するために使用できると仮定します。プロセスID 1は、ほとんどのシステムと同じ名前空間になければなりません。

nsenter -mt 1 /bin/sh

おすすめ記事