Blog — by Andrii Dykhlin

[Переклад] Не працюй не під рутом

Переклад статті Fear Not Root. Але щоб почати, треба надати причину його публікації.

Деякий час тому мене попрохали допомогти з установкою GNU/Linux на доволі стару машину, тому вибір спочатку був за Lubuntu (на ній остаточно й зупинилися), проте заради цікавості встановили й PuppyLinux.

Радісним 'woof-woof' нас привітала ОС, яку встановлюють не за принципом Ubuntu: "далі-далі-далі-далі-фініш", та й сама вона здебільшого для справжніх червонооких ґуру. Але ж встановили, проте потім дізналися, що система завантажується виключно під рутом, що є доволі поганим для тих, хто може випадково залізти та видалити якийсь файл з /usr/bin/, або й чого гірше. Рут - суперкористувач, який має абсолютні права на все в системі.

Автор же пише, що під рутом працюють справжні пацани, а під звичайним користувачем - плаксиві курчата, проте давайте подивимось на його аргументи. Оригінальна назва "Fear Not Root" дослівно перекладається як "Бійся не руту", а більш автентично для нас чути фразу "не працюй під рутом", а не "бійся руту", тому й переклад адаптовано під реалії наших країв. Отже, тепер я передаю слово IgnorantGuru:

«Колись давно у нас у всіх був рут. Що б ми не використовували - DOS чи комп'ютер Apple - там був лише один користувач: ТИ. І ти вчився бути обережним. Але все змінилося з тих пір, коли з'явилися багатокористувацькі ОС на кшталт Linux.

Користувачів Linux постійно засипали порадами на зразок "Нічого не запускай під рутом!", "Не працюй під рутом!", "Запускай все під звичайним користувачем наскільки це можливо!". Одна з ОС (Ubuntu) дійшла вже до того, що відключила рут по замовчуванню. Забагато людей мали з цим проблему, тому вони піддались.

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

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

Факт у тому, що якщо ви не вчинили чогось неочікуваного, то вся інформація на вашому ПК має бути з правами читання та запису для нормального користувача. Інакше ви б не змогли записувати та видаляти файли! З цього випливає, що для більшості інформації абсолютно не важливо хто ви: рут чи звичайний користувач - вони так само вразливі. Іронічно, що це, можливо, найбільш цінна інформація на вашій машині: документи та інші персональні файли. А системні файли, у яких є захист від запису, можна завантажити та встановити наново. Можливо, це буде трохи боляче, проте нема реального ризику втратити їх.

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

Потім у нас є можливість нормального користувача виконувати довільний код. Ви можете запустити будь-яку програму на своєму комп'ютері з правами користувача. Для цього не потрібно встановлювати програму від імені суперкористувача. Достатньо просто написати чи завантажити та запустити. Це означає, що будь-який вірус з вашими правами доступу може зробити те саме. Механізм руту не може зупинити віруси від запуску від імені користувача, проте він просто зупиняє віруси від зміни захищених файлів. Якщо ви адмін великої багатокористувацької системи, то вас це може хвилювати. Вам не дуже хотілося б, щоб вірус від одного користувача розповсюдився по всій системі. Але з позиції користувача ПК це не так важливо, як би вірус не запускався: з повними правами доступу на читання та запис майже всіх ваших файлів, з правами для всіх ваших персональних файлів чи повним доступом до мережі.

Давайте створимо невеличку табличку, у які порівняємо можливості звичайного та суперкористувачів.

МожливістьРутЮзер
Читання системних та персональних файлів
Модифікація системних файлів  
Модифікація персональних файлів
Модифікація/видалення файлів інших користувачів деякі
Модифікація налаштувань системи (/home)
Обмін інформацією в Інтернеті
Встановлення/видалення програм  
Запуск встановлених програм
Запуск довільних невстановлених програм
Налаштування програм на автозапуск без сповіщення
Втручатися в програму, яку запустив користувач
Фізичний доступ до машини

Іншими словами, рут надає обмежений захист в найкращому виді. А тепер ви можете сказати: "Ок, то тільки рут й може зіпсувати систему та програми". Спробуйте ще раз. Будь яка програма чи вірус, яку запускають з правами користувача, може змінити чи знищити усі файли в домашній теці, а це включає в себе усі налаштування, конфігурації та інформацію з усього софту, яким ви користуєтесь. Таке призведе до того, що вам доведеться починати спочатку, адже комп'ютером не можна буде користуватись. Звичайно, програми самі по собі будуть у безпеці. І знову ж, це не така цінна інформація - програми дуже просто перевстановити, а ось всі налаштування та файли - продукт вашої діяльності. Для адміна великої системи це добре, оскільки втрачаються лише дані одного користувача, проте для вашого ПК, де користувач лише один, це не сильно допоможе.

Рут - це доволі цінний механізм захисту до певної міри. Це інструмент, який ви можете використовувати для покращення стабільності та захисту вашої системи. Проте важливо роздивитися через завісу міфу, що рут все захищає. Це не так. Не можна навіть сказати, що він захищає найбільш цінну інформацію. Принаймні, у межах ПК.

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

Гірше, що багато запущених користувацьких скриптів спробують виконати суперкористувацькі дії, що призведе для пропозиції ввести пароль. Ви його набираєте, це дозволяє скрипту виконати рутові операції. Взагалі, звідки вам знати, що код не було модифіковано і що він не робить чого іншого від імені рута? Прекрасні умови для трояну щоб вкрасти ваш пароль суперкористувача. А потім у нього дійсно буде повний доступ. Це приклад того, як страх виконувати операції під рутом призводить до зниження рівня безпеки, а не навпаки. Люди все більше й більше використовують sudo в скриптах, який відкриває шлях цілому різноманіттю проблем безпеки. На мою думку, якщо скрипт більшість операцій проводить на системному рівні, його треба створити так, що запустити його може тільки рут. В такому випадку у вас набагато більше можливостей вжити запобіжних засобів. В будь-якому разі, все, що ви захочете запускати на своїй системі, треба зберігати від імені суперкористувача та у теці, яка йому належить. Це захистить файл від втручання та змін

Розповідають багато історій, які застерігають від запуску речей під рутом. Але по факту, враховуючи ваші налаштування захисту даних та приватності, ви так само маєте боятися запускати БУДЬ-ЩО на своїй системі. Це стосується комерційного, "офіційного" софту, більшість з якого шпигує за вашим ПК та користуванням мережею (одразу ж згадується Adobe Flash). Відзначте, вони це роблять як користувач, не рут. Що значить, що для того, щоб їх встановити, потрібен рут? Вони спокійно можуть не бути встановленими, а просто запускатися (інколи так і відбувається). В цьому разі плагіни Mozilla та подібні речі мають викликати занепокоєння станом безпеки, а тому проблема руту здається незначною в порівнянні.

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

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

Коли це буде досягнуто, ви відчуєте, що використовувати сили руту набагато простіше. Linux розроблено щоб перетворити ПК у творчий інструмент. Не треба заганяти себе в пастку залишаючись просто "юзером". Модифікуйте систему, експериментуйте з нею. Очевидно, ви будете щось ламати. Але саме так ви навчаєтесь, а з добре налаштованими бекапами та інструментами відновлення це не таке й велике діло. Зробіть користування рутом, написання скриптів та модифікацію системи зручними та відчуйте силу на кінчиках пальців»




Прокоментуйте!