web-dev-qa-db-ja.com

OS X 10.11(El Capitan)のツール 'codesign'がPythonプロセスごとに "コードオブジェクトはまったく署名されていない"と報告するのはなぜですか?

OS X 10.11(10.11.0または10.11.1)El CapitanでPythonプロセスを開始し、OS組み込みツール 'codesign'を実行してプロセスを確認すると、次のメッセージが表示されます。 「コードオブジェクトはまったく署名されていません」というエラー。

次に例を示します。

  1. Terminal.appを開きます。 「python」と入力します。これで通常のPython REPLコンソールが起動します。
  2. 別のターミナルウィンドウを開きます。 "ps | grep python"を実行して、Python REPLプロセスのプロセスIDを見つけます。それが555だとしましょう。
  3. コマンド「codesign -v 555」を実行します。 codesignは「555:コードオブジェクトはまったく署名されていません」を報告します

ただし、次のコマンドを実行すると、python実行可能ファイルが適切に署名されているようです:

$ which python
/usr/bin/python

$ codesign -dvv `which python`
Executable=/usr/bin/python
Identifier=com.Apple.pythonw
Format=Mach-O universal (i386 x86_64)
CodeDirectory v=20100 size=226 flags=0x0(none) hashes=6+2 location=embedded
Signature size=4105
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=68

PerlまたはRubyプロセスを検証するためにコードサインを使用する場合、それらはすべて問題ありません。また、ヨセミテでは、すべてのPythonプロセスはコードサインによって正しく検証できます。

どうした?

3
Lei L

/usr/bin/pythonにある実行可能ファイルは、アプリケーション/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.appを起動するだけです。このアプリケーションバンドルには独自の署名はありませんが、おそらく親バイナリの署名に便乗しています。

1
rspeed