Firejailで開かれたインターネット接続を一覧表示するには?

Firejailで開かれたインターネット接続を一覧表示するには?

FirefoxをサンドボックスにするためにFirejailを使用しています。使用すると、lsof -i接続は表示されません。 Firejailはプロセスの名前空間分離を実行するので、これを行います。

ps aux | grep firefox | awk ' { print $2} ' | while read p ; do nsenter -t $p lsof -i ; done

各名前空間を入力してlsof -iを使用します。私もnsenter -t <pid> -n lsof -i試してみましたが、何も表示されません。しかし、rootとして実行すると機能します。ユーザーが開いたソケット接続をリストできないようにする必要がありますか?

ベストアンサー1

このps | grep | awkパイプは古くて醜​​いです。非常に古代の)。

さて、grep自分のpidと一致します。だから、ほとんどの亜種はgrepのpidを除外するためにいくつかのトリックを使用します。一般的にps aux | grep command | grep -v grep。最良の方法の1つは、正規表現と一緒に角括弧式にgrepを使用することです。より良いバージョンは、パイピング入力が正規表現パターンマッチングを実行し、次のように終了する可能性があるため、ほとんど常に重複してgrep無意味awkであり、不要または不要であることを認識しています。awkps aux | awk '/[c]ommand/ {print $2}'

とにかく恐ろしいゴミを使用しないでください。 90年代に死ぬ予定でしたが、ゾンビの死体が引き続き復活したり再創造されています。

代わりに、(タイトルなし)、(cmdlist一致)、および(出力形式)オプションでpgrepORを使用してください。これが彼らの目的です。psh-C-o

例えば

pgrep -f firefox | xargs -I {} nsenter -n -t {} lsof -i

または

ps h -C firefox -o pid | xargs -I {} nsenter -n -t {} lsof -i

または以下なしxargs

for pid in $(pgrep -f firefox) ; do
  nsenter -n -t "$pid" lsof -i
done

これは完璧とは離れていますが、現在行っている作業よりはるかに優れた出発点になります。

しかし、pgrep名前空間のすべてのPIDを一覧表示することは可能です。lsns名前空間に関するさまざまな詳細を調べて抽出する機能もあります。psPIDに関連するさまざまな名前空間を一覧表示するオプションもあります。おそらく、これらすべてのマニュアルページを読む必要があります...特に、lsofシステムのlsofおよび/または/usr/bin/の独自のバイナリやマッピングがない名前空間でネットワークに接続されているディレクトリを一覧表示したい場合は、そうです。

残念ながら、lsof独自に組み込まれた名前空間のサポートはないようです。おそらく今後のバージョンでは可能でしょう。

おすすめ記事