чому НЕ ubuntu 13.10 має version.h?


0

/usr/src/linux-header-3.11.0.12
/usr/src/linux-header-3.11.0.12-generic

Немає файлу version.h у файлі /include/linux/. Чому?

Це перешкоджає встановленню програмного забезпечення.


Перші речі, які я роблю з новою збіркою ubuntu, це встановлення пакунків заголовків, необхідних для збирання та ядер. Однак зауважте, що встановлення компіляторів та ресурсів компіляції на загальнодоступних серверах вважається ризиком для безпеки, тому будьте уважні.
Френк Томас

@FrankThomas Care розробив, як компілятор є ризиком для безпеки? Тому що я не бачу, як це могло бути так.
Даніель Б

Тому що вони дозволяють зловмиснику, який скомпрометував обліковий запис з низьким рівнем конфіденційності, складати код атаки локально. Зазвичай це є необхідною умовою проведення ескалації привілеїв та вкорінення. наприклад, цей CVE описує один набір вразливих місць, для використання якого потрібна компіляція: blogs.oracle.com/ksplice/entry/cve_2013_2224_denial_of . і ще: calculate-linux.org/glsa/show/201009-03 обидва ці ескалації атаки вимагають, щоб зловмисник компілювати на атакується системі. Це найбільш надійний спосіб переконатися, що експлуатаційний код працює у всіх системах.
Френк Томас

Для ubuntu заголовки ядра встановлені в / usr / src за замовчуванням, я підтверджую, а для ubuntu 11.10 я знаходжу version.h у відповідному місці в загальній папці. -
користувач252098

@FrankThomas Це не означає, що встановлення компілятора є ризиком для безпеки. Зловмисник, швидше за все, надасть власного компілятора. Якщо комусь вдалося отримати доступ до встановленого компілятора, це вже пізно на стільки рівнях, що він просто вже не має значення.
Даніель Б

Відповіді:


4

За замовчуванням заголовки ядра не встановлені. Це тому, що вони не потрібні для програмного забезпечення з офіційних сховищ Ubuntu. Вони потрібні лише для складання модулів ядра, що не те, що робить середній користувач.

Інструкції щодо їх установки, взяті звідси :

sudo apt-get install linux-headers-generic

/usr/include/linux/version.hє частиною linux-libc-devпакету. Він є частиною установки за замовчуванням Ubuntu.


Я спробував. Завантажив версію заголовків версії 3.11.0.22, а також загальну, в обох версіях немає версії.h.
користувач252098

@ user252098 Щоправда, але цього варто очікувати. Адже його місце розташування є /usr/include/linux/kernel.hврешті-решт.
Даніель Б

Англійською, будь ласка, бажано цілі речення. Якщо ви не можете скласти свою проблему словами, ми не можемо вам допомогти.
Даніель Б

Вибачте, я просто не можу зрозуміти, чому ви згадуєте kernel.h? це має відношення до версії.h?
користувач252098

Дякую U, я бачу версію.h під / usr / include / linux /, але як ним користуватися?
користувач252098
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.