chconはRHEL6で「共有オブジェクトの要件に応じて実行可能なスタックを有効にすることはできません」エラーを修正できません。

chconはRHEL6で「共有オブジェクトの要件に応じて実行可能なスタックを有効にすることはできません」エラーを修正できません。

私は仕事でアプリケーションをテストしていましたが、SELinuxサポートシステムでインストールが失敗しました。私たちが投稿した回避策には、エラーセンターのライブラリファイルでchconコマンドを実行することが含まれます。

chcon -t textrel_shlib_t /usr/lib/ourfile.so.1.0.20

RHEL5ではこの機能が機能し、SELinuxを完全に無効にすることなくアプリケーションを正常に実行できます。

RHEL6 では、chcon コマンドはエラーを提供しませんが、アプリケーションがデーモンで始まっている場合は、次のように同じエラーが表示されます。/etc/init.d/ourapp

私の主な関心事は、アップデートの回避策を見つけることです(問題のアプリケーションライブラリは外部認証プロセスに送信され、6ヶ月間変更することはできません)。しかし、これがRHEL5からRHEL6に意図的に変更されたことを示すものかもしれません。 。

ベストアンサー1

非公式SELinux FAQの貢献このソリューション

これは Linux という拡張機能が原因です。執行シールド。プログラムがスタック内でコードを実行するのを防ぎ、問題を軽減します。スタックスマッシング攻撃

ほとんどの共有ライブラリは実行可能スタックを必要としないため、次の手順を実行してライブラリに実行可能スタックが必要ないことを示す必要があります。

execstack -c /usr/lib/ourfile.so.1.0.20

使用後実行スタック、プログラムをテストして実行を継続してください。実際にスタックでコードを実行しようとする間違ったコードがあると、競合が発生します。

おすすめ記事