Чому ви не повинні входити в систему Linux як кореневу систему
У Linux користувач Root еквівалентний користувачеві Administrator у Windows. Однак, у той час як Windows вже давно має культуру середніх користувачів, які входять до системи як адміністратор, ви не повинні входити в систему як root на Linux.
Microsoft намагалася покращити безпеку Windows за допомогою UAC - ви не повинні входити в систему як root на Linux з тієї ж причини, чому ви не повинні відключати UAC у Windows.
Чому Ubuntu використовує Sudo
Збентеження користувачів від запуску як root є однією з причин, чому Ubuntu використовує sudo замість su. За промовчанням пароль root заблокований на Ubuntu, тому середні користувачі не можуть увійти в систему як кореневий, не виходячи зі свого шляху, щоб знову ввімкнути обліковий запис root.
На інших дистрибутивах Linux історично можна було входити як коренева з графічного екрана входу в систему і отримувати кореневий робочий стіл, хоча багато програм можуть скаржитися (і навіть відмовляються працювати як root, як VLC). Користувачі, що надходять з Windows, іноді вирішили увійти в систему як кореневий, так само, як вони використовували обліковий запис адміністратора в Windows XP.
За допомогою sudo ви запускаєте певну команду (з префіксом sudo), яка отримує права root. Якщо ви використовуєте su, ви повинні використовувати команду su, щоб отримати кореневу оболонку, де ви повинні виконати команду, яку ви хочете використовувати, перш ніж (сподіваюся) вийти з кореневої оболонки. Sudo допомагає застосувати кращі практики, запускаючи лише команди, які потрібно запускати від імені користувача (наприклад, команди інсталяції програмного забезпечення), не залишаючи вас в кореневій оболонці, де ви можете залишитися в системі або запустити інші програми як root.
Обмеження шкоди
Коли ви входите в систему як власний обліковий запис користувача, запущені програми обмежені вписуванням у решту системи - вони можуть писати лише у вашу домашню папку. Не можна змінювати системні файли без отримання кореневих дозволів. Це допомагає захистити комп'ютер. Наприклад, якщо у браузері Firefox є отвір безпеки, і ви працювали як коренева, шкідлива веб-сторінка зможе записувати всі файли у вашій системі, читати файли в домашніх папках інших облікових записів і замінювати системні команди на скомпрометовані. ті. Навпаки, якщо ви ввійшли в обліковий запис з обмеженим доступом, зловмисна веб-сторінка не зможе виконати жодного з цих дій - вона зможе завдати шкоди лише вашій домашній теці. Хоча це може викликати проблеми, це набагато краще, ніж втрата всієї системи.
Це також допомагає захистити вас від шкідливих або просто нестандартних програм. Наприклад, якщо ви запускаєте програму, яка вирішує видалити всі файли, до яких він має доступ (можливо, він містить неприємну помилку), програма буде стерти вашу домашню папку. Це погано, але якщо у вас є резервні копії (які вам слід!), Відновити файли у вашій домашній теці досить просто. Проте, якщо програма має кореневий доступ, вона може видалити кожен окремий файл на жорсткому диску, що вимагає повної переустановки.
Дозволу дрібнозернистих
Оскільки старі дистрибутиви Linux виконували всі програми системного адміністрування як кореневі, сучасні настільні системи Linux використовують PolicyKit для ще більш точного керування дозволами, які отримує програма.
Наприклад, програма для управління програмним забезпеченням може бути надана лише дозволу на встановлення програмного забезпечення у вашій системі за допомогою PolicyKit. Інтерфейс програми працюватиме з правами обмеженого облікового запису користувача, лише частина програми, яку встановлює програмне забезпечення, отримуватиме підвищені дозволи - і ця частина програми зможе встановлювати лише програмне забезпечення.
Програма не матиме повного доступу до всієї системи, що може захистити вас, якщо в додатку буде знайдено отвір безпеки. PolicyKit також дозволяє обмежувати облікові записи користувачів, щоб змінити деякі системні адміністрації, не отримуючи повного доступу до кореневого ресурсу, що полегшує роботу як обмежений обліковий запис користувача з меншими витратами.
Linux дозволить вам увійти в графічний робочий стіл як кореневий - так само, як це дозволить вам видалити кожен файл на жорсткому диску, коли ваша система працює або записувати випадковий шум безпосередньо на жорсткий диск, що знищує вашу файлову систему - але це не Хороша ідея. Навіть якщо ви знаєте, що ви робите, система не призначена для роботи як коренева - ви оминаєте більшу частину архітектури безпеки, що робить Linux настільки безпечним.