1. Почему важно понимать управление пользователями?
Сегодня мы углубимся в управление пользователями, так как это ключевая часть администрирования Linux. Создавать пользователей, настраивать для них окружение и управлять их паролями — всё это станет важным инструментарием для вашей работы. Поехали!
Зачастую в Linux на сервере работает множество пользователей. Система предоставляет каждому из них определённые права, чтобы защитить данные и избежать хаоса. Вам нужно знать, как добавлять новых пользователей (например, разработчиков в вашей команде), настраивать их окружение (например, менять shell) и при необходимости ограничивать доступ.
2. Создание пользователя с помощью adduser
Linux предоставляет команду adduser, которая является дружественным вариантом команды useradd. Она позволяет легко и быстро создавать новых пользователей:
Основной синтаксис
adduser имя_пользователя
Что происходит при создании пользователя?
- Создаётся новая запись в файле
/etc/passwdдля пользователя. - Генерируется домашняя директория (например,
/home/имя_пользователя). - Настраиваются базовые параметры (например, shell по умолчанию).
- Вас попросят ввести пароль и дополнительную информацию (например, имя, номер телефона — но эти данные необязательны).
Пример
Давайте создадим нового пользователя dev_user:
sudo adduser dev_user
После ввода этой команды вам предложат:
- Указать пароль для пользователя.
- Ввести дополнительную информацию, которую можно пропустить, просто нажав
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: Создайте нового пользователя
Добавим пользователя
tester:sudo adduser testerУбедитесь, что пользователь создан:
cat /etc/passwd | grep tester
Задача 2: Настройте параметры пользователя
Поменяйте имя пользователя:
sudo usermod -l test_user testerПоменяйте домашнюю директорию пользователя:
sudo usermod -d /home/test_user -m test_userУбедитесь, что изменения применены:
ls -l /home/Измените shell пользователя:
sudo usermod --shell /bin/zsh test_userПроверьте обновлённые данные пользователя:
cat /etc/passwd | grep test_user
Задача 3: Установите новый пароль пользователю
Установите пароль для пользователя:
sudo passwd test_userПринудьте пользователя сменить пароль при следующем входе:
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"
- Сначала отрабатывает команда
ls -l, которая выводит список файлов в текущей директории - Вывод первой команды
lsс помощью пайпа|перенаправляется как вход для второй командыgrep - Вторая команда фильтрует строки присланные ей и выдает только строки содержащие ".txt"
Подсчитать строки, содержащие определённое слово:
cat file.txt | grep "Linux" | wc -l
- Сначала отрабатывает команда
cat file.txt, которая выводит на экран содержимое файла file.txt - Вывод первой команды
catс помощью пайпа|перенаправляется как вход для второй командыgrep - Вторая команда фильтрует строки присланные ей и выдает только строки содержащие Linux
- Затем вывод второй команды
grepс помощью пайпа|перенаправляется как вход для третей командыwc - Третья команда считает количество присланных ей строк и отображает его
8. Типичные ошибки и нюансы
Ошибка "user is currently logged in" при смене имени пользователя. Если пользователь вошёл в систему, вы не сможете изменить его имя. Убедитесь, что пользователь вышел.
Ошибки при смене домашней директории. Если забыть указать
-m, содержимое старой директории не перенесётся в новую. Пользователь может потерять свои данные.Забыли установить пароль пользователю. После создания пользователя через
adduserобязательно проверьте, установлен ли у него пароль. Без пароля он не сможет войти.Значение
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 — это всегда работа руками. Чем больше вы будете экспериментировать с командами, тем легче вам станет работать с реальными системами.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ