Робота з правами root
OS Navigator .narod.ru
У Вашому / etc / passwd може і не бути httpd або uucp, але користувач з UID (U - user, ID - цифровий код користувача) рівним нулю повинен бути присутнім обов'язково. Як правило, його звуть root. Це скоріше традиція: від зміни імені властивості самого root не змінюються. Втім, з цього не випливає, що його дійсно варто перейменувати. Перейменовуючи його, потрібно віддавати собі, звіт в тому, що наслідки можуть виявитися в найнесподіваніших місцях.
У суперкористувача, як і у будь-якого іншого користувача системи, має бути присутня домашня директорія. Як правило, це / root. He варто її нікуди переносити, намагаючись "навести порядок" в розташуванні домашніх каталогів. У разі серйозного пошкодження системи, коли / usr виявиться недоступний, жалю з приводу педантизму будуть дещо запізнілими: роботи з відновлення системи сильно ускладняться. Що можу? Королі. Відома приказка говорить "Have trouble with Windows - reboot, have trouble with UNIX - be root!" .
Насправді ж привілеї root в недостатньо акуратних руках можуть створити набагато більше проблем, ніж рішень. Зауважте, мова не йде про зломи, атаках і інших зазіханнях на вашу машину з зовнішнього світу - самі користувачі іноді виявляються чи не ефективніше хакерів.
-rw-rw-r-- тагуа editor 248229 Map 30 22:54
Очевидно, що при таких привілеї "захиститися" від суперкористувача виставленням на свій файл прав виду rw неможливо: він може не тільки прочитати його, але і при бажанні стерти всі сліди про рощення до цього файлу. У разі ж, коли пароль root відомий більш ніж одній людині, то з'ясувати, хто саме в конкретний момент їм скористався, буде неможливо. Більш того, згадавши про здатність суперкористувача правити Log-файли, доводиться визнати, що навіть відповідь на питання "коли?" не завжди доступний.
Щоб уникнути спроб з'ясувати, хто і звідки вчора між трьома і п'ятьма годинами ночі видалив весь / home, для початку потрібно визначити, з яких терміналів буде дозволено заходити з правами адміністратора. Для початку вам необхідно відредагувати файл / etc / securetty, в ньому міститься список консолей, на які дозволені адміністраторські логіни. Не маючи можливості входити в систему безпосередньо з правами root, користувачі зможуть скористатися командою su. Запущена без додаткових параметрів, вона спробує запустити командний інтерпретатор з правами адміністратора. Проблем, які виникнуть в процесі, може бути дві. По-перше, команда su запитує пароль того користувача, від імені якого повинен буде запуститися інтерпретатор, а не того, хто запустив su. По-друге, в більшості систем su можуть використовувати тільки члени групи wheel.
Куди більш гнучкою системою розподілу прав є використання команди sudo. Щоб налаштувати її ліміти, необхідно (зрозуміло, суперкористувачем) виконати команду visudo. У файлі / etc / sudoers описується, кому з користувачів (або груп) дозволено виконувати ті чи інші команди. Настільки популярна конструкція виду:
На практиці це обертається тим, що ніхто крім адміністратора не може відкрити raw-socket, змонтувати / демонтувати файлову систему, завантажити або вивантажити модуль ядра.
Крім того, як і у випадку з файлами, тільки root може знищити процес, що належить іншому користувачу, і, зрозуміло, ніхто крім нього не зможе терминировать процес, запущений суперкористувачем.
Проілюструємо Як використовувати SUDO на декількох наочних прикладах:
1. В консолі / терміналі:
$ sudo <команда>
(Запуск команди з правами суперкористувача). Буде запропоновано введення пароля, введіть свій пароль користувача.
Система якийсь час (man sudo) пам'ятає введений пароль (зберігає відкритою sudo-сесію). І тому не виключено, коли запит на введення пароля користувача не буде. Якщо раптом захочеться гарантовано перервати sudo-сесію Ви можете виконати команду:
2. При використанні "Alt + F2":
gksudo <команда>
(Запуск графічних додатків з правами суперкористувача). На запит введіть свій пароль користувача.
Зверніть увагу що в Кубунту замість gksudo використовуйте команду kdesu
Ви можете отримати права адміністратора в терміналі, щоб не вводити кожен раз sudo?
$ Sudo -s -H
(Не забути "-") Термінал з правами root. Пароль користувача при цьому ввести потрібно лише один раз. Наступні команди можна запускати з правами root без необхідності додавати sudo. Термінал перекладається в / root папку. $ Sudo -s або sudo su
Термінал з правами root. Як і попередня команда, але залишає термінал в домашній папці (/ home / your_name)
Якщо Ви захочете більше дізнатися про будь-який з цих команд вам досить буде ввести в терміналі ім'я команди --help, наприклад sudo --help.
Прочитавши вище викладений матеріал або в силу сформованих звичок Ви захочете змінити sudo на традиційний root, то вам для цього буде потрібно:
а) Установка пароля рута: $ sudo passwd root
Ліквідація пароля рута: $ sudo passwd -l root
б) Ви також можете заборонити використання sudo взагалі, і використовувати тільки пароль root:
Встановити пароль root: $ sudo passwd root
Заборонити sudo виконання будь-яких команд під root`ом в / etc / sudoers.
в) При установці Ubuntu в експертному режимі можна самостійно ввести пароль root. Однак тоді звичайний користувач не зможе скористатися командою sudo. Щоб це виправити, достатньо встановити пакет sudo і конфігурувати / etc / sudoers, а також додати користувача до групи wheel.
г) У разі виникнення проблем можна завантажитися в single mode (для цього вибираємо в grub при завантаженні режим recovery mode) і все виправити.
Замов собі Linux на DVD