Керування користувачами. Ubuntu Server - адміністративні права користувачів Додавання користувача ubuntu

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

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

При цьому ви зможете виконувати адміністративні завдання за допомогою користувача з sudo правами. З цього керівництва ви дізнаєтеся, як створювати користувачів, наділяти їх правами sudo і видаляти їх.

Як додати користувача

# Adduser newuser

Якщо для створення нового користувача ви хочете використовувати користувача з sudo-правами, тоді команда буде виглядати трохи інакше:

$ Sudo adduser newuser

(При цьому замість newuser ви можете вказати якесь інше слово, так як це буде ім'я нового користувача.)

Після введення команди вам потрібно буде послідовно відповісти на кілька запитань, а саме:

  • ввести і підтвердити пароль для нового користувача;
  • написати додаткову інформацію про новий користувача. Робити це необов'язково; якщо не хочете нічого додавати, просто натисніть Enter;
  • нарешті, вам потрібно буде підтвердити коректність всієї введеної до цього інформації - для цього треба натиснути y (yes - так).

Тепер новий користувач створений і готовий до використання! Авторизуватися під ним можна використовуючи пароль, який ви встановили раніше.

Якщо ви хочете наділити користувача адміністративними правами, то читайте наступний розділ.

Як наділити користувача правами sudo

Якщо вам потрібно, щоб новий користувач міг виконувати адміністративні (root) команди, вам потрібно дати цьому користувачеві доступ до sudo. Зробити це можна двома шляхами: або додати цього користувача до створеної групи користувачів, які можуть виконувати команди sudo, або дати це право користувачу шляхом внесення змін в конфігурацію утиліти sudo. Розглянемо обидва варіанти.

Додавання нового користувача в групу sudo

За замовчуванням в Ubuntu 16.04 правами виконувати sudo команди мають всі користувачі, які входять до відповідної групи.

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

$ Groups newuser

В результаті ви побачите на екрані:

Newuser: newuser

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

$ Usermod -aG sudo newuser

(Нагадую, що замість newuser вам потрібно написати своє ім'я користувача, якого ви хочете перемістити в групу з адміністративними правами.)

Ключ -aG потрібен для того, щоб користувач був доданий в одну з уже існуючих в списку груп.

Перевірка наявності sudo-прав

Тепер необхідно перевірити, чи може ваш користувач виконувати адміністративні команди.

$ команда

Ви можете виконати цю ж команду, але з адміністративними правами, якщо напишете на початку sudo:

$ Sudo команда

При цьому вам потрібно буде ввести пароль від аккаунта даного користувача.

Уточнення прав користувача в in / etc / sudoers

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

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

Якщо ви використовуєте користувача з sudo-правами, тоді потрібна вам команда буде виглядати так:

Як правило, команда visudo відкривалася / etc / sudoers в редакторі vi, що могло збентежити не надто досвідчених користувачів. Тому в Ubuntu 16.04 замість vi використовується nano, інструмент, який набагато більше знайомий більшості користувачів. Чи використовуєте стрілки на клавіатурі для того, щоб знайти потрібний рядок. Вона виглядає приблизно так:

Root ALL = (ALL: ALL) ALL

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

Root ALL = (ALL: ALL) ALL newuser ALL = (ALL: ALL) ALL

Для кожного нового користувача необхідно додавати новий рядок. Після того, як ви внесете всі необхідні зміни, збережіть і закрийте файл, натиснувши Ctrl-X, потім Y і Enter для підтвердження.

Як видаляти користувачів

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

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

# Deluser newuser

Якщо ви використовуєте користувача з sudo-правами, тоді команда буде виглядати наступним чином:

$ Sudo deluser newuser

Для того, щоб видалити користувача разом з його домашньої директорією, від імені суперкористувача вам потрібно ввести:

# Deluser --remove-home newuser

Для користувачів з sudo-правами:

$ Sudo deluser --remove-home newuser

А якщо ви хочете позбавити віддаленого користувача sudo-прав, вам потрібно відкрити конфігураційний файл:

(Якщо від суперкористувача)
або

(Якщо від користувача з sudo-правами)

Root ALL = (ALL: ALL) ALL newuser ALL = (ALL: ALL) ALL # Видаліть цей рядок.

Це потрібно для того, щоб в подальшому створений користувач з таким же ім'ям не отримав випадково sudo-права.

висновок

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

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

В основі механізмів розмежування доступу лежать імена користувачів і імена груп користувачів. Ви вже знаєте, що в Linux кожен користувач має унікальне ім'я, під яким він входить в систему (логіруется). Крім того, в системі створюється певна кількість груп користувачів, причому кожен користувач може бути включений в одну або кілька груп. Створює і видаляє групи привілейований користувач, він же може змінювати склад учасників тієї чи іншої групи. Члени різних груп можуть мати різні права щодо доступу до файлів, наприклад, група адміністраторів може мати більше прав, ніж група програмістів.

В індексному дескрипторі кожного файлу записано ім'я так званого власника файлу і групи, яка має права на цей файл. Спочатку, при створенні файлу його власником оголошується той користувач, який цей файл створив. Точніше - той користувач, від чийого імені запущений процес, який створює файл. Група теж призначається при створенні файлу - за ідентифікатором групи процесу, що створює файл. Власника та групу файлу можна поміняти в ході подальшої роботи за допомогою команд chownі chgrp(Докладніше про них буде сказано трохи пізніше).

Тепер давайте ще раз виконаємо команду ls -l. Але задамо їй в якості додаткового параметра ім'я конкретного файлу, наприклад, файлу, що задає саму команду ls. (Зверніть, до речі, увагу на цю можливість команди ls -l- отримати інформацію про конкретний файл, а не про всіх файлах каталогу відразу).

$ Ls -l / bin / ls

Ви бачите, що в даному випадку власником файлу є користувач root і група root. Але нас зараз у висновку цієї команди більше цікавить перше поле, що визначає тип файлу і права доступу до файлу. Це поле в наведеному прикладі представлено ланцюжком символів -rwxr-xr-x. Ці символи можна умовно розділити на 4 групи.

Перша група, що складається з єдиного символу, визначає тип файлу. Цей символ відповідно до можливих типами файлів, розглянутими в попередньому розділі, може приймати такі значення:

    - = - звичайний файл;

    d =- каталог;

    b =- файл блочного пристрою;

    c =- файл символьного пристрою;

    s =- доменне гніздо (socket);

    p =- іменований канал (pipe);

    l =- символічна посилання (link).

Далі йдуть три групи по три символи, які і визначають права доступу до файлу відповідно для власника файлу, для групи користувачів, яка порівняна даного файлу, і для всіх інших користувачів системи. У нашому прикладі права доступу для власника визначені як rwx, що означає, що власник ( root) Має право читати файл (r), проводити запис в цей файл (w), і запускати файл на виконання (x). Заміна будь-якого з цих символів прочерком означатиме, що користувач позбавляється відповідного права. У тому ж прикладі ми бачимо, що всі інші користувачі (включаючи і тих, які увійшли до групи root) Позбавлені права записи в цей файл, т. Е. Не можуть файл редагувати і взагалі якось змінювати.

Взагалі кажучи, права доступу та інформація про тип файлу в UNIX-системах зберігаються в індексних дескрипторах в окремій структурі, що складається з двох байтів, т. Е. З 16 біт (це природно, адже комп'ютер оперує битами, а не символами r, w, x). Чотири біта з цих 16-ти відведені для кодованої записи про тип файлу. Наступні три біта задають особливі властивості виконуваних файлів, про які ми скажемо трохи пізніше. І, нарешті, що залишилися 9 біт визначають права доступу до файлу. Ці 9 біт поділяються на 3 групи по три біта. Перші три біта задають права користувача, наступні три біта - права групи, останні 3 біта визначають права всіх інших користувачів (т. Е. Всіх користувачів, за винятком власника файлу і групи файлу).

При цьому, якщо відповідний біт має значення 1, то право надається, а якщо він дорівнює 0, то право не надається. У символьній формі записи прав одиниця замінюється відповідним символом (r, w або x), а 0 представляється прочерком.

Право на читання (r) файлу означає, що користувач може переглядати вміст файлу за допомогою різних команд перегляду, наприклад, командою moreабо за допомогою будь-якого текстового редактора. Але, підредагувавши вміст файлу в текстовому редакторі, ви не зможете зберегти зміни у файлі на диску, якщо не маєте права на запис (w) в цей файл. Право на виконання (x) означає, що ви можете завантажити файл в пам'ять і спробувати запустити його на виконання як виконувану програму. Звичайно, якщо в дійсності файл не є програмою (або скриптом shell), то запустити цей файл на виконання не вдасться, але, з іншого боку, навіть якщо файл дійсно є програмою, але право на виконання для нього не встановлено, то він теж не запуститься.

Ось ми і дізналися, які файли в Linux є виконуваними! Як бачите, розширення імені файлу тут ні до чого, все визначається установкою атрибута "виконуваний", причому право на виконання може бути надано не всім!

Якщо виконати ту ж команду ls -l, Але в якості останнього аргументу їй вказати не ім'я файлу, а ім'я каталогу, ми побачимо, що для каталогів теж визначені права доступу, причому вони задаються тими ж самими символами rwx. Наприклад, виконавши команду ls -l /, ми побачимо, що каталогом bin відповідає рядок:

Природно, що по відношенню до каталогів трактування понять "право на читання", "право на запис" і "право на виконання" дещо змінюється. Право на читання по відношенню до каталогів легко зрозуміти, якщо згадати, що каталог - це просто файл, який містить список файлів в даному каталозі. Отже, якщо ви маєте право на читання каталогу, то ви можете переглядати його вміст (цей самий список файлів в каталозі). Право на запис теж зрозуміло - маючи таке право, ви зможете створювати і видаляти файли в цьому каталозі, т. Е. Просто додавати в каталог або видаляти з нього запис, що містить ім'я якогось файлу і відповідні посилання. Право на виконання інтуїтивно менш зрозуміло. Воно в даному випадку означає право переходити в цей каталог. Якщо ви, як власник, хочете дати доступ іншим користувачам на перегляд якогось файлу в своєму каталозі, ви повинні дати їм право доступу в каталог, т. Е. Дати їм "право на виконання каталогу". Більш того, треба дати користувачеві право на виконання для всіх каталогів, що стоять в дереві вище даного каталогу. Тому в принципі для всіх каталогів за умовчанням встановлюється право на виконання як для власника і групи, так і для всіх інших користувачів. І, вже якщо ви хочете закрити доступ в каталог, то позбавите всіх користувачів (включаючи групу) права входити в цей каталог. Тільки не позбавляйте і себе такого права, а то доведеться звертатися до суперкористувачеві! (Прімеч.11)

Після прочитання попереднього абзацу може здатися, що право на читання каталогу не дає нічого нового в порівнянні з правом на виконання. Однак різниця в цих правах все-таки є. Якщо задати тільки право на виконання, ви зможете увійти в каталог, але не побачите там жодного файлу (цей ефект особливо наочно проявляється в тому випадку, якщо ви користуєтеся якимось файловим менеджером, наприклад, програмою Midnight Commander). Якщо ви маєте право доступу в якомусь із підкаталогів цього каталогу, то ви можете перейти в нього (командою cd), Але, як то кажуть "наосліп", по пам'яті, тому що списку файлів і підкаталогів поточного каталогу ви не побачите.

Алгоритм перевірки прав користувача при зверненні до файлу можна описати таким чином. Система спочатку перевіряє, чи збігається ім'я користувача з ім'ям власника файлу. Якщо ці імена збігаються (т. Е. Власник звертається до свого файлу), то перевіряється, чи має власник відповідне право доступу: на читання, на запис або на виконання (не дивуйтеся, привілейований користувач може позбавити деяких прав і власника файлу). Якщо право таке є, то відповідна операція дозволяється. Якщо ж потрібного права власник не має, то перевірка прав, наданих через групу або через групу атрибутів доступу для інших користувачів, вже навіть не перевіряються, а користувачеві видається повідомлення про неможливість виконання затребуваного дії (зазвичай щось на кшталт "Permission denied").

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

Для зміни прав доступу до файлу використовується команда chmod. Її можна використовувати в двох варіантах. У першому варіанті ви повинні явно вказати, кому яке право даєте або кого цього права позбавляєте:

$ Chmod wXp назва_пакунка

де замість символу wпідставляється

    або символ u(Т. Е. Користувач, який є власником);

    або g(Група);

    або o(Всі користувачі, що не входять в групу, якій належить даний файл);

    або a(Всі користувачі системи, т. Е. І власник, і група, і всі інші).

замість Xставиться:

    або + (Надаємо право);

    або - (Позбавляємо відповідного права);

    або = (Встановити зазначені права замість наявних),

замість p- символ, що позначає відповідне право:

    r(Читання);

    w(Запис);

    x(Виконання).

Ось кілька прикладів використання команди chmod:

$ Chmod a + x file_name

надає всім користувачам системи право на виконання даного файлу.

$ Chmod go-rw file_name

видаляє право на читання і запис для всіх, крім власника файлу.

$ Chmod ugo + rwx file_name

дає всім права на читання, запис і виконання.

Якщо опустити вказівку на те, кому надається дане право, то мається на увазі, що мова йде взагалі про всіх користувачів, т. Е. Замість $ Chmod a + x file_name

можна записати просто

$ Chmod + x file_name

Другий варіант завдання команди chmod(Він використовується частіше) заснований на цифровому поданні прав. Для цього ми кодируем символ r цифрою 4, символ w - цифрою 2, а символ x - цифрою 1. Для того, щоб надати користувачам якийсь набір прав, треба скласти відповідні цифри. Отримавши, таким чином, потрібні цифрові значення для власника файлу, для групи файлу і для всіх інших користувачів, задаємо ці три цифри в якості аргументу команди chmod(Ставимо ці цифри після імені команди перед другим аргументом, який задає ім'я файлу). Наприклад, якщо треба дати повне право власнику (4 + 2 + 1 = 7), право на читання і запис - групі (4 + 2 = 6), і не давати ніяких прав іншим, то слід дати таку команду:

$ Chmod 760 file_name

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

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

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

Перший з цих атрибутів - так званий "біт зміни ідентифікатора користувача". Сенс цього біта полягає в наступному.

Зазвичай, коли користувач запускає деяку програму на виконання, ця програма отримує ті ж права доступу до файлів і каталогів, які має користувач, що запустив програму. Якщо ж встановлено "біт зміни ідентифікатора користувача", то програма отримає права доступу до файлів і каталогів, які має власник файлу програми (таким чином, розглянутий атрибут краще називати "бітом зміни ідентифікатора власника"). Це дозволяє вирішувати деякі завдання, які інакше було б важко виконати. Найхарактерніший приклад - команда зміни пароля passwd. Всі паролі користувачів зберігаються в файлі / etc / passwd, власником якого є привілейований користувач root. Тому програми, запущені звичайними користувачами, в тому числі команда passwd, Не можуть виробляти запис в цей файл. А, значить, користувач як би не може змінювати свій власний пароль. Але для файлу / usr / bin / passwd встановлений "біт зміни ідентифікатора власника", яким є користувач root. Отже, програма зміни пароля passwdзапускається з правами rootі отримує право записи в файл / etc / passwd (вже засобами самої програми забезпечується те, що користувач може змінити тільки один рядок в цьому файлі).

Встановити "біт зміни ідентифікатора власника" може привілейований користувач за допомогою команди

# Chmod + s file_name

Аналогічним чином працює "біт зміни ідентифікатора групи".

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

Якщо використовується цифровий варіант завдання атрибутів в команді chmod, То цифрове значення цих атрибутів має передувати цифрам, що задає права користувача:

# Chmod 4775 file_name

При цьому ваги цих бітів для отримання потрібного сумарного результату задаються наступним чином:

    4 - "біт зміни ідентифікатора користувача",

    2 - "біт зміни ідентифікатора групи",

    1 - "біт збереження завдання (sticky bit)".

Якщо якісь з цих трьох бітів встановлені в 1, то кілька змінюється висновок команди ls -lв частині відображення встановлених атрибутів прав доступу. Якщо встановлений в 1 "біт зміни ідентифікатора користувача", то символ "x" в групі, яка визначає права власника файлу, замінюється символом "s". Причому, якщо власник має право на виконання файлу, то символ "x" замінюється на маленьке "s", а якщо власник не має права на виконання файлу (наприклад, файл взагалі не виконується), то замість "x" ставиться "S". Аналогічні заміни мають місце при завданні "бита зміни ідентифікатора групи", але замінюється символ "x" в групі атрибутів, які задають права групи. Якщо дорівнює 1 "біт збереження завдання (sticky bit)", то замінюється символ "x" в групі атрибутів, що визначає права для всіх інших користувачів, причому "x" замінюється символом "t", якщо всі користувачі можуть запускати файл на виконання, і символом "T", якщо вони такого права не мають.

Таким чином, хоча у висновку команди ls -lне передбачено окремих позицій для відображення значень бітів зміни ідентифікаторів і біта збереження завдання, відповідна інформація виводиться. Ось невеликий приклад того, як це буде виглядати:

# Ls -l prim1

В. Костромін (kos at rus-linux dot net) - 4.5. Права доступу до файлів і каталогів Май 3, 2016 12:20 пп 27 946 views | коментарів немає

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

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

Даний посібник навчить створювати акаунти нових користувачів, передавати права sudo і видаляти користувачів.

Додавання користувача

Щоб додати нового користувача в сесії root, введіть:

Перебуваючи в сесії не- root користувача з доступом sudo, можна додати нового користувача за допомогою команди:

sudo adduser newuser

Команда запропонує:

  • Встановити і підтвердити пароль.
  • Ввести додаткові дані про користувача. Це опціонально; щоб прийняти інформацію за замовчуванням, просто натисніть Enter.
  • Підтвердити правильність наданої інформації (натисніть Enter).

Останній зареєстрований учасник готовий! Тепер можна підключитися до сервера з його допомогою.

Налаштування прав доступу sudo

Щоб мати можливість використовувати новий аккаунт для виконання завдань адміністратора, потрібно дозволити користувачеві доступ до команди sudo. Це можна зробити двома способами:

  1. Додати користувача до групи sudo
  2. Відредагувати налаштування sudo в файлі / etc / sudoers

Додавання користувача до групи sudo

В системі Ubuntu 16.04 всі користувачі, що входять до групи sudo, за замовчуванням мають доступ до команди sudo.

Щоб дізнатися, в які групи входить новий користувач, введіть:

Команда поверне:

newuser: newuser

За замовчуванням кожен новий користувач системи входить лише до однойменної групи. Щоб додати користувача до групи, введіть:

usermod -aG sudo newuser

Прапор -aG додає користувача в перелічені групи.

тестування налаштування

Тепер потрібно переконатися, що новий користувач має доступ до команди sudo.

За замовчуванням команди в сесії нового користувача запускаються так:

Щоб виконати команду з правами адміністратора, додайте sudo в початок команди:

sudo some_command

При цьому система запросить пароль поточного користувача.

Редагування файлу / etc / sudoers

Альтернативний спосіб розширити привілеї користувача - відредагувати файл sudoers. Для цього використовується команда visudo яка дозволяє відкрити файл / etc / sudoers в редакторі і явно вказати привілеї кожного системного користувача.

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

Якщо ви перебуваєте в сесії root, введіть:

У сесії не-root користувача з доступом до sudo введіть:

Як правило, visudo відкриває / etc / sudoers в редакторі vi, який може здатися складним для новачків. За замовчуванням в нових установках Ubuntu visudo використовує більш знайомий редактор nano. Для переміщення курсору за допомогою клавіш зі стрілками. Знайдіть рядок:

root ALL = (ALL: ALL) ALL

Скопіюйте цей рядок і вставте її нижче, замінивши root ім'ям користувача, якому потрібно передати права суперкористувача.

root ALL = (ALL: ALL) ALL
newuser ALL = (ALL: ALL) ALL

Додайте такий рядок для кожного користувача, якому потрібні розширені привілеї. Збережіть і закрийте файл.

видалення користувачів

Непотрібні акаунти можна видалити.

Щоб видалити користувача, залишивши його файли, введіть:

як root
deluser newuser
як звичайний користувач з розширеними привілеями:
sudo deluser newuser

Щоб видалити користувача разом з його домашнім каталогом, використовуйте:

в сесії користувача root
deluser --remove-home newuser
в сесії користувача з розширеними привілеями:
sudo deluser --remove-home newuser

Якщо віддалений користувач мав правами суперкористувача, необхідно відняти ці права, відредагувавши файл:

visudo
або
sudo visudo
root ALL = (ALL: ALL) ALL
newuser ALL = (ALL: ALL) ALL # видалите цей рядок

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

висновок

Управління користувачами - необхідний навик при адмініструванні сервера Ubuntu 16.04. Він дозволить відокремити користувачів і дати їм тільки необхідний для роботи доступ.

Для отримання додаткових відомостей про настроювання sudo, ознайомтеся з нашим.

Tags:,

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

Де привілейований користувач?

Розробники Ubuntu прийняли свідоме рішення заблокувати адміністративну кореневу обліковий запис (root) за замовчуванням у всіх установках Ubuntu. Це не означає, що обліковий запис root видалена або до неї немає доступу. Їй просто присвоєно пароль, який не збігається ні з одним можливим шифрованих значенням, відповідно, її неможливо використовувати для входу безпосередньо.

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

1. Якщо з якоїсь причини ви хочете дозволити обліковий запис суперкористувача, просто встановіть їй пароль:

Sudo passwd

Sudo запросить ваш пароль, а потім запропонує встановити новий пароль для root як показано нижче:

Password for username: (вводите свій власний пароль) Enter new UNIX password: (вводите новий пароль суперкористувача) Retype new UNIX password: (повторюєте новий пароль суперкористувача) passwd: password updated successfully

2. Для блокування облікового запису root використовуйте наступний синтаксис passwd:

Sudo passwd -l root

Man sudo

За замовчуванням початковий користувач, створений монтажником Ubuntu є членом групи "admin", яка додана в файл / etc / sudoers як авторизовані sudo користувачі. Якщо ви бажаєте дозволити іншого облікового запису повний доступ суперкористувача через sudo, Просто додайте її в групу admin.

Додавання і видалення користувачів

Процес управління локальними користувачами і групами простий і мало відрізняється від більшості інших операційних систем GNU / Linux. Ubuntu і інші дистрибутиви на основі Debian заохочують використання пакета "adduser" для управління обліковими записами.

1. Щоб додати обліковий запис користувача використовуйте наступний синтаксис і слідуйте підказкам для вказівки пароля і розпізнавальних характеристик таких як повне ім'я, телефон та ін .:

Sudo adduser username

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

Sudo deluser username

Видалення користувача не видаляє пов'язаний з ним домашній каталог. Залишено на ваш розсуд чи хочете ви видалити каталог вручну або залишите його відповідно до ваших політиками зберігання.

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

Ви можете захотіти змінити ці значення UID / GID каталогу на щось більш підходяще, як, наприклад, значення суперкористувача і, можливо, перемістити каталог для запобігання майбутніх конфліктів:

Sudo chown -R root: root / home / username / sudo mkdir / home / archived_users / sudo mv / home / username / home / archived_users /

3. Для тимчасового блокування або розблокування використовуйте наступний синтаксис:

Sudo passwd -l username sudo passwd -u username

4. Щоб додати або видалити персональної групи використовуйте, відповідно, наступний синтаксис:

Sudo addgroup groupname sudo delgroup groupname

5. Щоб додати користувача до групи, використовуйте:

Sudo adduser username groupname

Безпека профілю користувача

Коли створюється новий користувач, утиліта adduser створює, відповідно, новий іменний каталог / Home / username. Профіль за замовчуванням формується по вмісту, що знаходиться в каталозі / etc / skel, який включає всі основи для формування профілів.

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

1. Для перевірки прав доступу на домашні каталоги існуючих користувачів використовуйте такий синтаксис:

Ls -ld / home / username

Наступний висновок показує, що каталог / home / username має доступ на читання для всіх:

Drwxr-xr-x 2 username username 4096 2007-10-02 20:03 username

2. Ви можете видалити права читання для всіх, використовуючи наступний синтаксис:

Sudo chmod 0750 / home / username

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

Більш ефективний підхід до даного питання буде в зміні глобальних прав доступу за замовчуванням для adduserпри створенні домашніх каталогів. Просто відредагуйте файл /etc/adduser.conf, змінивши змінну DIR_MODE на щось більш підходяще, після чого все нові домашні каталоги будуть отримувати коректні права доступу.

DIR_MODE = 0750

3. Після виправлення прав доступу до каталогів, використовуючи будь-яку з раніше згадуваних методик, перевірте результати використовуючи наступну команду:

Ls -ld / home / username

Результат нижче показивет, що права на читання для всіх видалені:

Drwxr-x --- 2 username username 4096 2007-10-02 20:03 username

політика паролів

Сувора політика паролів - один з найбільш важливих аспектів вашого підходу до безпеки. Багато вдалих проривів безпеки використовували для атак найпростіший злом (brute force) і підбір паролів по словнику проти слабких паролів. Якщо ви маєте намір використовувати будь-яку форму віддаленого доступу з використанням вашої локальної системи паролів, переконайтеся, що ви призначили адекватні мінімальні вимоги до паролю, максимальний час життя пароля і часто перевіряєте вашу систему аутентифікації.

Мінімальна довжина пароля

За замовчуванням Ubuntu вимагає мінімальну довжину пароля в 6 символів, також як і деякі основні перевірки на розкид значень. Ці параметри управляються файлом /etc/pam.d/common-password і наведені нижче:

Password pam_unix.so obscure sha512

Якщо ви хочете встановити мінімальну довжину в 8 символів, змініть відповідну змінну на min = 8. Зміни наведені нижче:

Password pam_unix.so obscure sha512 min = 8

Базові перевірки на якість і мінімальну довжину пароля не застосовуються до адміністратора, який використовує команди рівня sudo для настройки нового користувача.

Час життя пароля

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

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

Sudo chage -l username

Висновок, наведений нижче, показує цікаві факти про обліковий запис користувача, а саме що немає ніяких застосованих політик:

Last password change: Jan 20, 2008 Password expires: never Password inactive: never Account expires: never Minimum number of days between password change: 0 Maximum number of days between password change: 99999 Number of days of warning before password expires: 7

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

Sudo chage username

Далі також приклад того, як можна вручну змінити явну дату закінчення дії пароля (-E) на 01/31/2008 (американський варіант дати - прим. Пер.), Мінімальний термін дії пароля (-m) на 5 днів, максимальний термін дії (-M) на 90 днів, період бездіяльності (-I) на 5 днів після закінчення терміну пароля і період попереджень (-W) на 14 днів до закінчення терміну пароля.

Sudo chage -E 01/31/2011 -m 5 -M 90 -I 30 -W 14 username

3. Для перевірки змін використовуйте ту ж команду, що і згадувалася вище:

Sudo chage -l username

Висновок команди нижче показує нові політики, які застосовуються до облікового запису:

Last password change: Jan 20, 2008 Password expires: Apr 19, 2008 Password inactive: May 19, 2008 Account expires: Jan 31, 2008 Minimum number of days between password change: 5 Maximum number of days between password change: 90 Number of days of warning before password expires: 14

Інші міркування безпеки

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

Доступ по SSH заблокованими користувачами

Звичайне відключення / блокування не виключає віддаленого підключення користувача до сервера, якщо йому попередньо була встановлена ​​аутентифікація по відкритому ключу RSA. Такі користувачі будуть отримувати доступ до консольної оболонці (shell) на сервері без необхідності введення будь-якого пароля. Не забувайте перевіряти призначені для користувача домашні каталоги на файли, які дозволяють подібний тип авторизації по SSH, наприклад, /home/username/.ssh/authorized_keys.

Видалення або перейменування каталога.ssh / в домашньому каталозі користувача запобіжить подальшу здатність аутентифікації по SSH.

Переконайтеся що перевірили всі встановлені SSH з'єднання заблокованих користувачів, оскільки можуть залишитися вхідні або вихідні сполуки. Убийте всі, які знайдете.

Обмежте SSH доступ тільки для облікових записів користувачів, яким вони потрібні. Наприклад, ви можете створити групу з назвою "sshlogin" і додати ім'я групи в якості значення для змінної AllowGroups, що знаходиться в файлі / etc / ssh / sshd_config.

AllowGroups sshlogin

Потім додайте ваших користувачів, яким дозволений SSH доступ, в групу "sshlogin" і перестартуйте SSH сервіс.

Sudo adduser username sshlogin sudo service ssh restart

Аутентифікація по зовнішній базі даних

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

Опція -c - додати коментар до користувача
опція -g sudo - доабавіть користувача в групу sudo.
Опція -s встановить користувачеві в якості shell "а / bin / bash

опція -d використовується для вказівки домашньої папки користувача
опція -m вкаже на те що папку потрібно створити негайно:

Sudo useradd -c "Comment for user" -g sudo -d / home / NameUser -m -s / bin / bash NameUser

Встановимо пароль для користувача NameUser:

Sudo passwd NameUser

Додаємо пользоваетля командою adduser

sudo useradd -c "Comment for user" -g sudo -d / home / NameUser -m -s / bin / bash NameUser

Вводимо пароль, відповідаємо на всі поставлені питання, отримуємо користувача з паролем і домашньою директорією

Міняємо пароль користувача

sudo passwd NameUser

Додаємо користувача в групу sudo

usermod -a -G sudo NameUser

Додаємо користувача / групу користувачів в Sudores безпосередньо:

відредагуємо файл /etc/sudores.tmpредактором visudo

Sudo visudo

Дамо root-права користувачеві з ім'ям user_name

User_name ALL = (ALL: ALL) ALL

Дамо root-права групі користувачів group_name, Додавши лінію в файл sudoers -

Group_name ALL = (ALL: ALL) ALL

Користувач і його групи

Дивимося доступні групи на хості

Cat / etc / group

Перевіряємо існування групи examplegroup на хості, де examplegroup цікавить вас група

Grep examplegroup / etc / group

Перевіряємо / Дізнаємося в жодних гуртах користувачів учасником (а так само його uid, gid)

Id NameUser

Додаємо існуючого користувача NameUser в існуючу групу examplegroup

Usermod -g examplegroup NameUser

Видалення користувача Ubuntu

Використовуємо команду, папка користувача не буде видалена

Sudo userdel NameUser

Видаляємо папку якщо це необхідно

Sudo rm -r / home / NameUser /

Перевіряємо пішов користувач, якщо виведення не буде значить користувач видалений

Sudo grep -R NameUser / etc / passwd --color

Вивксті список всіх локальних пользоваетелей

sudo cat / etc / passwd sudo cat / etc / shadow

Для більш детального виводу інформації про користувача встановимо пакет finger

Sudo apt-get install finger

Для перегляду інформації про пользоваетеле NameUser виконаємо команду

Finger NameUser

Для виведення інформації про всіх користувачів в файл infoaboutalluser.txtстворимо скрипт finger.sh

#! / Bin / bash n = `cat / etc / passwd | cut -d: -f1` for i in $ n; do echo "=============================================== ================ "finger $ i done

Виконаємо скрипт finger.shі збережемо його вміст в файл infoaboutalluser.txt

./finger.sh infoaboutalluser.txt

Вивести всіх привілейованих користувачів:

egrep ": 0: 0:" / etc / passwd

або НЕ привілейованих

Egrep -v ": 0: 0:" / etc / passwd

Вивести всіх користувачів, імена яких починаються з літер abcd:

Cat / etc / passwd | grep "^. *"

Сподобалася стаття? Поділіться з друзями!