JavaRush /Курси /Docker SELF /Керування користувачами: команди adduser, usermod, passwd...

Керування користувачами: команди adduser, usermod, passwd

Docker SELF
Рівень 2 , Лекція 1
Відкрита

1. Чому важливо розуміти управління користувачами?

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

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


2. Створення користувача за допомогою adduser

Linux надає команду adduser, яка є дружнім варіантом команди useradd. Вона дозволяє легко і швидко створювати нових користувачів:

Основний синтаксис

adduser ім'я_користувача

Що відбувається при створенні користувача?

  1. Створюється новий запис у файлі /etc/passwd для користувача.
  2. Генерується домашня директорія (наприклад, /home/ім'я_користувача).
  3. Налаштовуються базові параметри (наприклад, shell за замовчуванням).
  4. Вас попросять ввести пароль та додаткову інформацію (наприклад, ім'я, номер телефону — але ці дані необов'язкові).

Приклад

Давайте створимо нового користувача dev_user:

sudo adduser dev_user

Після вводу цієї команди вам буде запропоновано:

  1. Вказати пароль для користувача.
  2. Ввести додаткову інформацію, яку можна пропустити, просто натиснувши Enter.

Перевірка

Щоб переконатися, що користувач створений, можна переглянути файл /etc/passwd:

cat /etc/passwd | grep dev_user

Ви побачите рядок, що містить інформацію про користувача dev_user.


3. Налаштування користувача за допомогою usermod

Коли користувача вже створено, може виникнути необхідність змінити його параметри. Наприклад, змінити ім'я, вказати інший shell або додати до групи.

Зміна імені користувача

Спочатку переконайтесь, що користувач не увійшов у систему. Потім виконайте команду:

sudo usermod -l нове_ім'я старе_ім'я

Приклад:

sudo usermod -l developer dev_user

Тепер користувач dev_user називатиметься developer. Однак його домашній каталог поки залишиться старим.

Зміна shell за замовчуванням

Допустимо, тобі потрібно змінити shell користувача на /bin/zsh. Для цього виконай:

sudo usermod --shell /bin/zsh developer

Перевір, що shell змінився, за допомогою команди:

cat /etc/passwd | grep developer

Зміна домашнього каталогу

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

sudo usermod -d /новий/шлях developer
Важливо:

якщо каталог ще не існує, використовуй опцію -m, щоб він був створений, а вміст старого каталогу був переміщений:

sudo usermod -d /home/new_developer -m developer

4. Управління паролями за допомогою passwd

Встановлення та зміна пароля

Для встановлення (або зміни) пароля користувача застосовується команда:

sudo passwd ім'я_користувача

Приклад:

sudo passwd developer

Система попросить вас двічі ввести новий пароль, щоб переконатися, що ви не помилилися.

Примусова зміна пароля при наступному вході

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

sudo passwd -e developer

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


5. Практика

Задача 1: Створіть нового користувача

  1. Додамо користувача tester:

    sudo adduser tester
    
  2. Переконайтеся, що користувач створений:

    cat /etc/passwd | grep tester
    

Задача 2: Налаштуйте параметри користувача

  1. Змініть ім'я користувача:

    sudo usermod -l test_user tester
    
  2. Змініть домашню директорію користувача:

    sudo usermod -d /home/test_user -m test_user
    
  3. Переконайтеся, що зміни застосовані:

    ls -l /home/
    
  4. Змініть shell користувача:

    sudo usermod --shell /bin/zsh test_user
    
  5. Перевірте оновлені дані користувача:

    cat /etc/passwd | grep test_user
    

Задача 3: Встановіть новий пароль користувачеві

  1. Встановіть пароль для користувача:

    sudo passwd test_user
    
  2. Змусьте користувача змінити пароль при наступному вході:

    sudo passwd -e test_user
    

6. Знайомство з пайпами | у Linux

Пайпи | — це механізм в Unix/Linux, який дозволяє передавати вивід однієї команди (stdout) як ввід (stdin) для іншої команди. Це потужний інструмент, що дозволяє об'єднувати команди, створюючи "конвеєри" обробки даних.

Як це працює?

Коли ти використовуєш пайп між командами, Linux спрямовує стандартний вивід першої команди в стандартний ввід наступної. Це дозволяє ефективно обробляти великі обсяги даних без тимчасових файлів.

Синтаксис:

команда1 | команда2 | команда3
  • команда1 генерує дані.
  • команда2 обробляє отримані дані.
  • команда3 виконує подальшу обробку або зберігає результат.

Приклад:

Вивести список файлів та відфільтрувати за шаблоном:

ls -l | grep ".txt"

Тут ls -l виводить список файлів, а grep фільтрує тільки файли з розширенням .txt.

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

cat file.txt | grep "Linux" | wc -l

Послідовно виводиться вміст файлу, шукаються рядки з "Linux", а потім підраховується їх кількість.

Переваги пайпів:

  • Спрощення складних операцій.
  • Мінімізація використання тимчасових файлів.
  • Можливість об'єднання потужних утиліт Linux для автоматизації задач.

7. Знайомство з grep у Linux

grep (Global Regular Expression Print) — це утиліта командного рядка в Unix/Linux для пошуку рядків у файлах, що відповідають заданому шаблону. Вона широко використовується для фільтрації та пошуку даних, завдяки підтримці регулярних виразів і гнучким налаштуванням.

Як працює grep?

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

Приклади

Вивести список файлів і відфільтрувати за шаблоном:

ls -l | grep ".txt"
  1. Спочатку відпрацьовує команда ls -l, яка виводить список файлів у поточній директорії
  2. Вивід першої команди ls за допомогою пайпа | перенаправляється як вхід для другої команди grep
  3. Друга команда фільтрує рядки надіслані їй і видає лише рядки, що містять ".txt"

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

cat file.txt | grep "Linux" | wc -l
  1. Спочатку відпрацьовує команда cat file.txt, яка виводить на екран вміст файлу file.txt
  2. Вивід першої команди cat за допомогою пайпа | перенаправляється як вхід для другої команди grep
  3. Друга команда фільтрує рядки надіслані їй і видає лише рядки, що містять Linux
  4. Потім вивід другої команди grep за допомогою пайпа | перенаправляється як вхід для третьої команди wc
  5. Третя команда рахує кількість надісланих їй рядків і відображає його

8. Типові помилки та нюанси

  1. Помилка "user is currently logged in" при зміні імені користувача. Якщо користувач увійшов у систему, ви не зможете змінити його ім'я. Переконайтеся, що користувач вийшов.

  2. Помилки при зміні домашнього каталогу. Якщо забути вказати -m, вміст старого каталогу не перенесеться в новий. Користувач може втратити свої дані.

  3. Забули встановити пароль користувачу. Після створення користувача через adduser обов'язково перевірте, чи встановлений у нього пароль. Без пароля він не зможе увійти.

  4. Значення UID і GID. Іноді адміністратори хочуть вказати значення UID (ідентифікатор користувача) і GID (ідентифікатор групи) при створенні користувача. Для цього використовується команда useradd, але це тема для поглибленого вивчення Linux.


9. Практичне застосування

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

  • Створювати користувачів і розподіляти їм необхідний доступ.
  • Налаштовувати оточення (наприклад, shell) залежно від їхніх вподобань.
  • Керувати паролями і слідкувати за безпекою.

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


Шпаргалка: основні команди

Команда Опис
sudo adduser ім'я_користувача Створює нового користувача.
sudo usermod -l нове старе Змінює ім'я користувача.
sudo usermod --shell шлях ім'я Задає shell за замовчуванням.
sudo usermod -d шлях ім'я Змінює домашню директорію.
sudo passwd ім'я Встановлює новий пароль.
sudo passwd -e ім'я Примушує змінити пароль під час наступного входу.
chage ім'я_користувача Змінює інформацію про термін дії пароля користувача. У команді chage -l developer опція -l використовується для відображення (лістингу) інформації про термін дії пароля для вказаного користувача (developer).

Попрактикуйтесь! Linux — це завжди робота руками. Чим більше ви експериментуватимете з командами, тим легше вам стане працювати з реальними системами.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ