Root і інші користувачі групи в Linux





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

Root і інші користувачі групи в Linux

Відразу обмовимося, що в якому б дистрибутиві Ви не працювали (будь то Mint, Debian, Ubuntu, Fedora, Mandriva, Slackware, Gentoo і т.д. і т.п. — зараз різних дистрибутивів Лінукса налічується близько 600 або навіть більше, якщо не рахувати зовсім вже дрібні проекти), суть цієї роботи не зміниться. Відрізнятися можуть команди, тому як використовуються різні менеджери пакетів. Сьогодні ми більш детально торкнемося такі поняття як:

Хто ж такий надкористувач,

Що таке користувачі та групи в Linux-системах.

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

Приступимо.

Всяке-різне про багатокористувацької Linux і адміністраторському акаунті Root

1. Розрахована на багато система

Отже, ще раз. Linux є багатозадачного багатокористувацької (скільки багато мног’ов :)) операційною системою. Це означає, що одночасно з системою можуть працювати кілька користувачів, та й кожен з них може запускати кілька додатків. І при цьому, наприклад, Ви можете зайти в систему локально, а інший користувач — віддалено, скориставшись протоколами віддаленого доступу (telnet, ssh, ftp).

Це дуже зручно. Наведемо приклад, щоб було зрозуміло, про що йде мова. Припустимо, Вам знадобилося роздрукувати документ, який є на робочому комп’ютері, а на домашньому його немає. При наявності інтернету і комп’ютера, налаштованого відповідним чином, це не складе особливих труднощів, бо Ви спокійно зайдете в систему, скопіюєте потрібний Вам файл і роздрукуєте його там, де вам це зручно. І навіть якщо хтось у момент Вашого підключення вже працює з системою, то таки Ви не будете заважати один одному. У Windows така можливість теж є, але тільки після установки відповідного програмного забезпечення, і при цьому Ви не зможете увійти в систему, щоб «не перешкодити» іншому користувачу, який вже в ній знаходиться. Разом ви працювати не зможете, бо будете заважати один одному. Все, що Ви будете робити, буде відображатися на моніторі користувача (тобто робочий стіл вийде як би загальний), і якщо не попередити користувача, що Ви віддалено зайшли в систему, він подумає, що з його комп’ютером щось не так (випадок, звичайно, не 100%, але в більшості своїй це факт).

Висновок:

В Linux-системах кілька користувачів можуть працювати з системою і навіть не підозрювати про існування один одного, поки не скористаються командою (наприклад, who). Linux спочатку розроблялася як багато користувачів система з можливістю віддаленого підключення як у текстовому, так і в графічному режимі. Windows в основі своїй завжди була (і, напевно, довго залишиться) системою персонального, ні з чим зовсім сильно не пов’язаного комп’ютера, а засоби взаємодії по локальній мережі завжди йшли у вигляді свого роду «доважку». Крім того, Linux завжди спиралася на відкриті протоколи, велика частина яких є стандартом у світі Unix-систем. Microsoft, навпаки, робить ставку на власні протоколи, природно, закриті і не завжди сумісні зі своїми попередніми версіями.

2. Суперкористувач (root)

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

Умовно і «сленгові» кажучи — це цар і бог :). Користувач root володіє ВСІМА повноваженнями в системі, аж до її повного і безповоротного видалення, тобто це, так би мовити, системний адміністратор в окремо взятій операційній системі.

Будь-яка команда, введена в терміналі, таки буде виконана беззастережно і безповоротно. Так що працювати під root-ом в будь-яких Linux (unix) -системи не вітається і навіть, можна сказати, не прийнято. Наприклад, хтось вирішив «пожартувати» і виклав в інтернеті шкідливу програму, а Ви взяли і завантажили її, та ще й почали встановлювати її на своєму комп’ютері (важко уявити собі таких екстремалів, але все ж — а раптом знайдуться такі Root і інші користувачі групи в Linux ). Якщо запуск цієї програми буде зроблений через суперкористувача, то Ваша система може бути легко знищена, а ось запуск цієї програми від імені простого користувача ні до чого не приведе — система просто відмовиться виконувати її, пославшись на те, що у Вас не вистачає повноважень. Це зайвий привід придивитися, а чи потрібно Вам взагалі це встановлювати. Ось тому в Linux (unix) -Системи вхід під ім’ям користувача root заборонений.

В одних дистрибутивах Ви не зможете увійти як root в графічному режимі, але зможете зайти через консоль (грубо кажучи, термінал) комбінацією клавіш Ctrl + Alt + F2 (як, наприклад, в Fedora), а в інших дистрибутивах Ви взагалі не зможете увійти як root — ні через графічний режим, ні через комбінацію клавіш, ні через консоль (до такого дистрибутива, наприклад, відноситься Ubuntu). Постає питання — а як тоді встановлювати потрібні програми, минаючи цього суперкористувача? Для цього існує «тимчасовий дозвіл» на виконання потрібних операцій у вигляді команд sudo або su. Чим же відрізняються ці команди один від одного?

Давайте почнемо з sudo. Ця команда дозволяє запустити будь-яку команду з привілеями root. Але використовувати цю команду можуть не всі користувачі, а тільки ті, які внесені у файл / etc / sudoers (в цьому файлі в доступній формі розписується — яким користувачам або групам можна виконувати команду sudo, а це означає, що пересічний користувач, який не внесений до цей файл, навіть при сильному своєму бажанні не зможе скористатися правами root).

Відступ

Про каталог / etc ми поговоримо іншим разом — бо це окрема тема. Але хочеться сказати, що в цьому каталозі містяться майже всі налаштування системи (крім призначених для користувача, для користувача настройки зберігаються в домашньому каталозі користувача / home), при цьому в каталозі / etc знаходиться безліч текстових файлів. А оскільки файли текстові, то їх можна редагувати будь-яким текстовим редактором, що дуже спрощує роботу з системними файлами і підвищує надійність системи. До слова, навіть якщо видалити один з конфігураційних файлів каталогу / etc, система продовжить роботу як ні в чому не бувало! Звичайно, вона буде працювати не так, як до видалення цього файлу, але все ж вона, на відміну від Windows, працюватиме.

Теорія це, звичайно, добре, але давайте трохи попрактікуемся. Наприклад, вам потрібно відредагувати файл / etc / sudoers, для чого заходимо в термінал і вводимо:

sudo gedit / etc / sudoers

Root і інші користувачі групи в Linux

Відкриється вікно програми gedit:

Root і інші користувачі групи в Linux

..Де ми виробляємо потрібне редагування, зберігаємо і закриваємо цей файл. В Linux-системах дуже багато текстових редакторів, за допомогою яких можна редагувати файли, — це і вищезгаданий gedit, і nano, і vi, і багато інших, — тому Ви можете скористатися будь-яким. Ось як виглядатиме відкриття файлу через редактор nano:

Root і інші користувачі групи в Linux

Якщо ми введемо без sudo ту ж команду:

gedit / etc / sudoers

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

Root і інші користувачі групи в Linux

Бачите, кнопка «Зберегти» неактивна.

Тепер про команду su.

Команда su дозволяє отримати доступ до консолі (терміналу) root ЛЮБОМУ користувачеві (навіть якщо цей користувач не внесений до списку файлу / etc / sudoers), але за умови, що він знає пароль root. Різницю відчули?

Висновок:

Команда su призначена для адміністраторів системи, а sudo — для інших користувачів, яким тільки іноді потрібні права root.

Відступ:

Для багатьох користувачів команда su — отримання прав суперкористувача. Це не зовсім вірно. Команда su викликає оболонку іншого користувача в системі, тобто дозволяє отримати права ІНШОГО користувача, який повинен бути вказаний аргументом до цієї команди. Спробуйте ввести команду su root або su [імя_вашего_пользователя] і подивіться як зреагує ця команда. Я б рекомендував використовувати один важливий параметр «-» (тире), який суттєво змінює її роботу. При виконанні команди «su -» викликається оболонка реєстрації в системі. Це часто збиває з пантелику новачків: «su» надає Вам тільки права іншого користувача, «su -» дозволяє увійти під ім’ям іншого користувача. Друге означає, що разом з наданням прав у вас зміниться поточний робочий каталог, домашній каталог і змінні оточення. Використання команди su без параметра «-» загрожує проблемами — запущена таким чином програма зберігає свої налаштування в каталозі викликає, а не викликається користувача (пам’ятаєте, Вам надаються тільки права). Якщо цей користувач root — Ви отримаєте у своєму домашньому каталозі файли налаштувань програми, до яких не будете мати доступу. Чи слід говорити, що запустивши надалі ту ж саму програму з-під свого аккаунта, Ви, в кращому випадку, не зможете зберегти свої настройки, в гіршому — програма взагалі не запуститься. Краще взагалі не використовувати команду su для запуску програм зі своїми змінними оточення, для цього більш підходить команда sudo. Чи не заплутав я вас ще? Root і інші користувачі групи в Linux

І, тим не менш, заходити в систему під суперкористувачем можна завжди, навіть якщо ця обліковий запис обмежена або відключена, наприклад, в Ubuntu потрібно просто задати пароль для користувача root командою sudo passwd root. Спочатку система запросить ваш пароль користувача, потім новий пароль і його підтвердження. Обліковий запис root в ubuntu можна потім відключити командою sudo passwd -l root, але .. Після закриття облікового запису можуть бути проблеми з входом в систему в режимі відновлення. На мій погляд, в ubuntu суперкористувача краще не включати, а користуватися командою

sudo -i.

Трохи практики.

Давайте додамо нового користувача в систему. Для цього потрібно від суперкористувача ввести всього 2 команди:

# Adduser lt; ім’я пользователяgt; (Додає користувача)

# Passwd lt; ім’я пользователяgt; (Задає / змінює пароль)

Зверніть увагу на знак # перед командою. Таким знаком позначається, що команду віддає надкористувач (він же root, він же бог і володар, якщо перед командою стоїть значок $ — то команда буде виконуватися від простого користувача).

Root і інші користувачі групи в Linux

Ось він, наш новий користувач системи Dron. Ми його створили і завели пароль на цей обліковий запис.

Якщо пароль заданий занадто простий, то Вам вдасться попередження, що пароль занадто доступний:

Root і інші користувачі групи в Linux

І так буде до нескінченності, поки Ви не створите нормальний і таки зламостійкий пароль.

При створенні нового користувача для нього в системі створиться каталог / home lt; ім’я пользователяgt ;, куди скопіюється вміст каталогу / etc / skel (в ньому знаходиться весь «джентльменський» набір, який повинен бути в будь-якому користувальницькому каталозі).

Крім цього у файлі / etc / passwd створюється запис, коротше, наш новий користувач Dron буде повноправним користувачем системи.

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

# Userdel lt; ім’я пользователяgt; (Дивіться себе не видалите) :).

Root і інші користувачі групи в Linux

3. Групи користувачів

Іноді, для зручності роботи, користувачів об’єднують в групи. За замовчуванням один користувач не має доступу до домашнього каталогу іншого користувача (наприклад, користувач galina не матиме доступ до домашнього каталогу Dron і навпаки, Dron не матиме доступу до домашнього каталогу galina). Але якщо декількох користувачів об’єднати в одну групу, то у кожного з них буде доступ не тільки до свого домашнього каталогу, але й до домашніх каталогів інших користувачів. Корисність таких об’єднань очевидна. Зазвичай додавати / видаляти / змінювати облікові записи прийнято через командний рядок, але хотілося б торкнутися графічні Конфігуратором (це маленькі утиліти, які спрощують життя користувачам-або тим, хто любить працювати в графічному інтерфейсі). З іншого боку, я хочу показати, що працювати в linux (unix) -системи можна різними способами: можна через командний рядок, а можна використовувати графічний інтерфейс — кому що більше до душі. У кожному дистрибутиві є свої Конфігуратором, і вони можуть відрізнятися. Наприклад, у Fedora для редагування користувачів і груп служить конфигуратор system-config-users.

Root і інші користувачі групи в Linux

Ще раз поверніться до малюнка, де ми видаляли користувача Dron з системи. В системі залишився один користувач — galina. Виділіть його, натисніть на кнопку «Властивості» і Ви дізнаєтеся багато цікавого :). Наприклад, зверніть увагу на вкладку «Групи», де можете включити користувача в ту чи іншу групу, просто поставивши галочку:

Root і інші користувачі групи в Linux

З кожним новим користувачем створюються і нові групи. Якщо у користувача galina на вкладці «Групи» поставити галку на групі «Dron», то у galina буде доступ до домашнього каталогу користувача Dron (а ось у Dron таких повноважень не буде).

Хочу звернути Вашу увагу на один момент — з кожним новим виходом релізу Конфігуратором з системи потихеньку пропадають (що, на мій погляд, сумно). Їх або замінюють на інші, або взагалі прибирають з дистрибутива за непотрібністю. Деякі з них можуть бути встановлені за замовчуванням, деякі треба встановлювати самим, це залежить від Ваших потреб. Якщо при введенні команди запуску конфігуратора система скаже, що такої команди немає, скоріше за все цей конфигуратор у Вас не встановлений і можна спробувати встановити його.

Давайте спробуємо потренуватися на іншому дистрибутиві (всі попередні картинки відносяться до дистрибутива Fedora 16), наприклад, на ubuntu 12.10 (цей дистрибутив теж популярний серед населення). Відволічуся і нагадаю, що в якому б дистрибутиві Ви не сиділи, сенс роботи буде ідентичний, відрізнятися будуть тільки команди. У даному конкретному випадку в ubuntu є конфігуратор gnome-system-tools, і він за замовчуванням не встановлений в системі. Щоб скористатися всіма принадами цього конфігуратора, для початку встановіть його командою:

sudo apt-get install gnome-system-tools.

Root і інші користувачі групи в Linux

Пішов процес установки даної утиліти:

Root і інші користувачі групи в Linux

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

Потім в пошуку можна набрати «групи» або «користувачі» і з’явиться іконка утиліти gnome-system-tools

Root і інші користувачі групи в Linux

Або запускаємо утиліту командою users-admin з терміналу (командного рядка):

Root і інші користувачі групи в Linux

І нашому погляду представляється графічний інтерфейс налаштувань користувачів і груп в ubuntu:

Root і інші користувачі групи в Linux

Всі сучасні дистрибутиви Linux непогано русифіковані, а тому більш детально зупинятися на розгляді цієї утиліти ми не будемо, але головні моменти висвітлимо.

Зрозуміло, що щоб додати нового користувача, потрібно натиснути кнопку «Додати», щоб видалити створеного користувача — натиснути кнопку «Видалити». Щоб змінити тип облікового запису — потрібно клацнути по кнопці «Змінити», навпроти поля «Тип облікового запису». Існує 3 види облікового запису:

Адміністратор (root) — користувач може адмініструвати систему

Користувач — користувач може працювати в системі, але не може адмініструвати її (використовувати команду sudo, встановлювати програми, управляти користувачами і т.д., т.п.)

Інше — ця обліковий запис з особливими параметрами доступу, які встановлюються вручну. Для цього потрібно скористатися вкладкою «Додаткові параметри». На вкладці «Привілеї користувача» можна задати, які операції може виконувати користувач, а які — ні.

Root і інші користувачі групи в Linux

На вкладці «Додатково» Ви можете відключити обліковий запис, змінити групу, ID користувача, можете навіть вибрати інший інтерпретатор та домашній каталог.

Root і інші користувачі групи в Linux

Якщо Вам необхідно дозволити користувачеві використовувати sudo, то у вікні «Параметри користувачів» виділіть обліковий запис користувача, натисніть кнопку «Додаткові параметри» і на вкладці «Привілеї користувача» дозвольте «Адміністрування системи».

Щоб управляти групами — потрібно скористатися кнопкою «Управління групами».

Root і інші користувачі групи в Linux

Ви побачите список груп і кнопки «Додати» (ну зрозуміло ж, що ця кнопка додає нову групу), «Видалити» (видаляє групу) і «Властивості» (за допомогою цієї кнопки Ви легко додасте / виключіть членів групи). Все дуже просто і інтуїтивно зрозуміло.

На цьому ми закінчимо нашу чергову лекцію :). Сподіваюся, що я Вас не втомив? Погодьтеся, що в принципі не так вже й страшна ця система, як про неї говорять. Якщо є що доповнити (додати), ласкаво прошу, додавайте у своїх коментарях.

Післямова

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

Мало-помалу будемо рухатися далі. Залишайтеся на зв’язку, читайте статті в цій рубриці, коментуйте, пропонуйте теми і все таке інше.

P.S. За існування даної статті спасибі члену команди Pantera