Насправді не важливо, чи файли в /bin
(або будь-який інший стандартний каталог, де зберігаються виконувані файли), корінні для запису чи ні. На сервері Linux, який я використовую, вони записуються під корінь, але на моїй версії OpenBSD - ні.
До тих пір, поки вони не підлягають запису ні групою, ні "іншими"!
Немає жодних проблем із безпекою, наприклад,
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
Якщо хтось хотів перезаписати його, він повинен був би бути root, а якщо вони є root
і перезаписати його, то вони є або
- встановлення нової версії, або
- незграбний, або
- нападник з правами root вже є .
Ще одна річ, яку слід врахувати, це те, що корінь може записувати у файл незалежно від того, захищений він чи ні, тому що ... root.
Зауважте також, що "скрипт" є настільки ж виконуваним, як і двійковий файл. Сценарій не потребує запису, "оскільки це текстовий файл". У будь-якому випадку, ймовірно, він повинен мати той самий дозвіл, що й інші виконувані файли в тій же папці.
Не продовжуйте змінювати дозволи на все зараз! Це може спричинити загрозу різного роду та потенційно заплутати менеджерів пакетів, які можуть переконатися, що дозволи встановлені правильно. Це також може зробити систему вразливою, якщо ви випадково змінили дозволи невірно в критичному для безпеки додатку.
Просто припустіть, що дозволи на виконані файли встановлені правильно, якщо ви не знайдете те, що виглядає дійсно дивним, і в цьому випадку вам, мабуть, слід звернутися до відповідного сервісного пакета, щоб перевірити, а не починати змінювати речі.
З коментарів та чату пролунав заклик до деякої історії.
Історія дозволів на бінарні файли в Linux - це не все, про що я нічого не знаю. Можливо, можна припустити, що вони просто успадкували дозволи з каталогу або просто з типового umask
Linux, але я справді не знаю.
Що я знаю, це те, що OpenBSD встановлює бінарні файли в базовій системі 1 в режимі дозволу 555 за замовчуванням ( -r-xr-xr-x
). Це вказано в фрагменті Makefile, в /usr/share/mk/bsd.own.mk
якому встановлено BINMODE
555 (якщо це вже встановлено). Пізніше це використовується під час встановлення виконуваних файлів під час make build
в /usr/src
.
Я ознайомився з анотованим журналом CVS для цього файлу і виявив, що цей рядок у файлі незмінний, оскільки він був імпортований з NetBSD у 1995 році.
У NetBSD файл був вперше введений у CVS у 1993 році, з BINMODE
555.
Проект FreeBSD, щонайменше , використовує той самий файл, що і NetBSD, щонайменше з 1994 року , а з більш пізньою версією додає натяк у повідомленні про те, що старі файли походили з версії 4.4BSD версії програмного забезпечення Berkeley Software Distribution.
Крім того, CSRG в Берклі зберігав джерела в SCCS, але їх сховище доступне у Git формі на GitHub 2 . Файл , який ми даємо на forencic тут для просочення , здається, було скоєно по Keith Бостік (або хто - то в безпосередній близькості від нього) в 1990 році.
Так це та історія. Якщо ви хочете чому , то, гадаю, нам доведеться запитати Кіта. Я якось сподівався побачити повідомлення про зміну, яке говорить про " це має бути 555, тому що ... ", але ні.
1 Системи BSD мають більш жорсткий поділ на "базову систему" та "сторонні пакети" (порти / пакети), ніж Linux. Базова система - це цілісний блок, який забезпечує повний набір засобів для роботи операційної системи, тоді як порти або пакети розглядаються як "місцеве програмне забезпечення" і встановлюються під /usr/local
.
2 Також доступне більш вичерпне сховище GitHub Unix-версій з 70-х років .
root
має дозвіл на запис на бінарний файл? Якщо нічого іншого, це допомогло б при оновленні цього пакету.