Що поганого в тому, щоб завжди бути root?


83

У мене таке відчуття, що це дурне питання, але це щось, про що я замислювався.

У мене VPS, і це моє перше велике підприємство Linux. Я єдина людина, яка має доступ до нього. Моє запитання полягає в тому, що не так у тому, щоб просто увійти в систему як root, а не робити обліковий запис та надавати їм доступ до sudo? Якщо судер може зробити все, що може, root, то в чому різниця? Якщо хакер міг зламати мій пароль до мого стандартного, некорінного акаунта, то він також може виконувати команди sudo, тож як хакер, який зламає мій кореневий рахунок, має значення більш-менш?


28
Я б також прокоментував, що якщо ви не знайомі з "Шляхом Unix", це не дурне питання. Вам слід отримати бонус за роздуми, щоб поставити питання в першу чергу як новому адміністратору Linux.
Барт Сільверстрім

І я хотів би прокоментувати деякі відповіді. Особливо ті, що говорять про те, що "можна викрутити речі, коріння". Я не думаю, що це суть ... "rm -rf /" робить те саме, що "sudo rm -rf /". Сенс полягає в тому, що такі речі, як "sudo rm", не працюють, але "sudo startMyApp на низькому порту" працює.
Златко

що поганого в тому, щоб ніколи не бути?
ostendali

Відповіді:


70

Якщо ви ввійшли в систему як root, ви можете легко стерти каталоги або зробити щось, що в ретроспективі дійсно неміє в системі пальцем, тоді як користувачеві зазвичай потрібно вкласти кілька додаткових ментальних циклів у те, що ви набираєте текст, перш ніж робити щось небезпечне.

Також будь-яка програма, яку ви запускаєте як root, так і root права, тобто якщо хтось або щось змушує вас запускати / компілювати / переглядати веб-сайт, який є небезпечним і хоче пошкодити вашу систему, наприклад, троянський або інший зловмисне програмне забезпечення, він має повний доступ до вашої система і може робити все, що завгодно, включаючи доступ до портів TCP нижче 1024 (так що вона може перетворити вашу систему в залишок без вашого відома, наприклад).

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

РЕДАКТИРУВАННЯ: Існує також проблема того, що корінь є найбільш відомим, таким чином, легкою ціллю для скриптів і хаків. Системи, які вимикають обліковий запис і замість цього змушують користувачів використовувати sudo, означає, що будь-яка спроба зламати корінь з ssh або локального використання в обліковий запис, стукає головою об стіну. Їм доведеться відгадати / зламати пароль та ім’я користувача. Це безпека через невизначеність до певної міри, але важко стверджувати, що це не збиває більшості сценарій дитячих атак.


25
+1 - Використання "sudo" робить виконання програм як корінних явних дій. Справа не в тому, щоб "зупинити хакерів", це в тому, щоб ви звикли працювати як непривілейований користувач і зробити виклик кореневих привілеїв задуманим, відкритим актом.
Еван Андерсон

2
Я починаю замислюватися, чи справді Еван є ШІ.
Барт Сільверстрім

11
Судо також додає аудиторський слід. Як хто, що і коли реєструється, коли запускається як sudo. Який файл журналу може змінюватися в залежності від distro, але RedHat дистрибутивні, як правило, використовують / var / log / secure, а Ubuntu використовує /var/log/auth.log ... Я не впевнений, що це правда для всіх дистрибутивів на основі Debian.
3вплив

3
+1 - справа не лише в правах створювати речі чи робити речі, а й у правах на знищення. Увійти як root (або еквівалент в будь-якій іншій ОС для цього питання) - це як ходити навколо носіння пістолета з вимкненою безпекою. Ви ніколи не можете навмисно торкнутися цього спускового механізму, але чи довіритесь ви самі зробити це все одно
Максим Мінімус

3
mh: / мені надягає ковбойський капелюх, клацає запобіжник на своєму пістолеті, відкриває пиво, бурмоче в низькому бурчанні щось про панци, а потім увійде як корінь.
Кайл Брандт

29

Якщо ви не дозволите ідіоту ввійти на свій сервер як root, то не завжди запускайте як root. Якщо ви не можете подати серце, скажіть, що ви ніколи не були ідіотом. Насправді ні? Ти впевнений? :)

Вигода: зменшує можливість одночасного корінства та ідіота.


6
+1 - "Користь: зменшує ймовірність того, що ви будете одночасно корінцем та ідіотом". Я це абсолютно люблю.
Еван Андерсон

+1 за філософію Скотта Адамса про те, що всі - ідіот. :) Так, це означає і ти, і я теж.
Ерні

Абсолютно - це одне з моїх ключових питань на співбесіді з роботи - коли ти востаннє викручувався? У кожного є, вам потрібно лише прочитати тут теми про "найвеселіший сисадмін фубар" чи що завгодно. Якщо хтось не визнає, що принаймні один раз у житті допустив справжню тупу помилку, мабуть, є кілька причин, з якими ви не хочете працювати з ними.
Том Ньютон,

9

Основна причина - помилки. Якщо ви завжди корінь, простий друк може дійсно накрутити систему. Якщо ви входите лише як root або використовуєте sudo, щоб робити речі, які цього вимагають, ви мінімізуєте ризик зробити небезпечну помилку.


9

Коли ви користуєтеся корінгом, ви лінуєтеся щодо дозволів, оскільки у вас постійно є доступ до всього, вам не байдуже, коли це 777 чи 644 чи інше. Тож якщо ви коли-небудь дозволите комусь іншому в своїй системі, що ви не хочете мати доступ до всього, це раптом стає справжньою проблемою, щоб зробити машину безпечною для використання іншими людьми.


5
Це називається «коренева гниль».
kmarsh

1
Мені подобається цей термін «коренева гниль». Дійсно, весь час роботи під управлінням root може перетворити * nix-машини на вигадливі машини Windows 95, що не мають бездротової захисту користувачів. (Я пам'ятаю машину ШОС, кілька років тому, де кожен користувач на загальному облікової додаток було запущено з правами адміністратора , тому що «він зробив вирішення питань йдуть»> зітхати <..)
Evan Anderson

Я пам’ятаю, як отримував таке пояснення - у них був інструмент розсилки розсилки, що працює як root, а також sendmail. Моя відповідь була "Проблеми з дозволом пішли і для хакерів".
duffbeer703

7

Існує кілька основних принципів, за якими не входити в систему як root: 1) Корінний пароль ніколи не надсилається по всій мережі під час входу 2) Ні в якому разі не можна сказати, хто щось робив, якщо кілька користувачів входять в один і той же обліковий запис (root або інший). 3) Випадково робите щось "дурне"


3

Це більше для захисту від себе, щоб у вас був другий шанс переглянути команди вищих привілеїв, які ви намагаєтеся запустити, аналогічні UAC в Windows. Це досить легко випадково зробити щось на кшталт rm -rf /під час входу в систему як root.

Крім того, у вас є простежуваність. Це не є великою проблемою у вашій ситуації, коли ви єдиний (теоретично) видає команди, але здатність здійснювати реєстрацію та відслідковувати особу є ключовою складовою багатьох форм аналізу.


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

Я це робив у п’ятницю. замість видалення "/ dump / folder /" Я видалив папку /. Один смердючий зворотний кут нагадав мені, чому ми не входимо як корінь.
oneodd1

2

Різниця полягає головним чином у
тому, що ви не можете нічого поганого зробити випадково.
що "злий" код не може перейняти систему.
Зауважте: злий код не обов'язково означає, що хтось уже має доступ до системи.


Я помітив, що в цей час злий код зазвичай означає спам-ботів, які можуть працювати як будь-який користувач.
Ерні

Якщо ви думаєте про вірус (намагаючись щось знищити) або руткіт, то зловмисне програмне забезпечення набагато складніше, якщо ви не root.
StampedeXV

2

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

Також пам’ятайте, що зламання пароля - це лише один компромісний сценарій - і це не найпоширеніший сценарій. Ви, швидше за все, станете жертвою вразливості браузера або вразливості деяких демонів, які працюють у вашій системі.

Подумайте про код, який ви використовуєте, не думаючи. Наприклад, Linux-порт Adobe Flash, що представляє собою розпарювальну купу, яка стала корисною лише у відносно недавньому минулому. Наскільки безпечним ви вважаєте цей код? Ви хочете, щоб це могло здійснювати повний контроль над вашою системою?


2

Це може запобігти атакам грубої сили SSH. Кожен unix має "root" рахунок. Однак ззовні незрозуміло, яким буде ваше ім'я 'sudo'. Отже, якщо хтось захоче спробувати пробитися, вони знають, що є кореневий рахунок, і, ймовірно, спробують це. Однак вони не знають, з чого почати, якщо ви використовуєте судо.



1

Моя порада полягає в тому, щоб спробувати весь час користуватися root; ти скоро дізнаєшся, чому ти не повинен :)


1

Навіть якщо я не довіряю "безпеці від незрозумілості", безумовно, є перевага використовувати користувальницький логін замість колишнього існуючого кореневого входу. Таким чином, ви також можете налаштувати SSH для запобігання входу в систему.

Як і інші сказали, root може робити все без будь-якого підтвердження. Тож використання непривілейованого користувача може запобігти дурній помилці та помилкам друку.

Ще один аргумент на користь декількох облікових записів користувачів - це запуск різних програмних програм у різних користувачів. Здійснюючи це, якщо недолік безпеки використовується в одній програмі, експлуататор може отримувати доступ лише до файлів і ресурсів, доступних для його працюючого користувача.

Останнє питання щодо невикористання root: споживання ресурсів. Root не обмежує кількість пам'яті, часу обробки, обробників файлів або дискового простору, який він може використовувати. У багатьох файлових системах є блоки даних, які зарезервовані лише для root. Тож звичайний користувач ніколи не може використовувати їх для заповнення вашого диска. Команда ulimit також може бути використана для обмеження кількості пам'яті та номера обробника файлів, який користувач може споживати. Але якщо ви root (або програма, запущена як root), нічого не заважає вам змінити цю межу.


0

Так, я згоден з вами, і я думаю, що це питання захисту від людських помилок, а іноді і від шкідливих програм. Погано, що я ніколи не бачив - це використання root як облікового запису gnome за замовчуванням.
Я думаю, що більшість користувачів, які роблять це, є користувачами Windows, нещодавно перейшли на Linux або Unix. Спробуйте скопіювати використання права доступу адміністратора до root.


0

Немає нічого поганого в тому, що ви ввійшли як root. Це допомагає розвивати м’язову пам’ять лише для введення безпечних команд і сприяє точності думки при виконанні дій з великими наслідками. Я настійно рекомендую працювати як root, щоб покращити адміністрування системи.

ви також можете робити класні речі, як ping -i 0.2 -c 1000 example.com

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