Пользователи в Linux
Определяем своего пользователя
Итак, вы подключились к серверу Linux по ssh и скорее всего знаете под каким пользователем, так как использовали это имя для подключения. Если же не знаете, то, скорее всего имя пользователя будет в приглашении командной строки, его ещё называют промтом.

Если у вас приглашение командной строки не содержит имя пользователя, то узнать его можно из системной переменной USER:
$ echo $USER
alex
Или с помощью команды whoami:
$ whoami
alex
Свойства пользователя
А ещё, чтобы узнать под кем вы работаете в данный момент, вы можете выполнить команду id. Она покажет не только имя вашего пользователя, но и группы, в которых он состоит. А также вы увидите уникальный идентификатор вашего пользователя (UID) и уникальные идентификаторы групп (GID).
$ id
uid=1000(alex) gid=1000(alex) группы=1000(alex),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),100(users),106(netdev)
Из вывода понятно что мы работаем под пользователем alex, его uid=1000. Его основная (первичная) группа alex, её gid=1000. И пользователь состоит в других группах, точно также видны их GID.
Чтобы посмотреть информацию о другом пользователе просто укажите его. Например посмотрим на свойства пользователя root:
$ id root
uid=0(root) gid=0(root) группы=0(root)
Список всех пользователей можно посмотреть в файле /etc/passwd. В этом файле каждая строка определяет каждого пользователя, например посмотрим на пользователя alex и root:
$ grep alex /etc/passwd
alex:x:1000:1000:alex,,,:/home/alex:/bin/bash
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
Строка описывает пользователя и состоит из следующих полей:
- Имя пользователя.
- Пароль. Если вместо пароля используется символ «x», значит пароль хранится в виде хэша в файле /etc/shadow.
- Уникальный номер пользователя (UID).
- Уникальный номер основной (первичной) группы (GID).
- Комментарий (произвольное поле, часто используется для ФИО).
- Домашний каталог пользователя.
- Командная оболочка.
То-есть пользователи Linux имеют разные свойства:
- имя пользователя;
- уникальный идентификатор (UID);
- в каких группах он состоит;
- домашний каталог;
- командная оболочка.
Создание нового пользователя
В Linux пользователи создаются с помощью двух команд: useradd и adduser. Они выполняют одну и ту же задачу, но с разным уровнем удобства и автоматизации. Ещё стоит заметить что создание нового пользователя, как и его удаление требует прав администратора.
useradd — это базовая команда, которая просто создаёт учётную запись пользователя без дополнительных настроек. Эта команда имеет следующие особенности:
- требует ручного указания параметров (домашний каталог, оболочка, группа и т. д.);
- не создаёт пароль (нужно отдельно использовать команду
passwd).
Пример использования:
$ sudo useradd -m -s /bin/bash -U username # создаёт пользователя с домашним каталогом и группой
$ sudo passwd username # задаёт пароль вручную
Разбор параметров:
- -m — создать домашний каталог;
- -s <оболочка> — указать командную оболочку;
- -U — создать группу с тем же именем что и у пользователя.
Пароль ещё можно создать с помощью параметра -p <пароль>, но он не будет зашифрованным, поэтому так делать категорически не рекомендуется.
adduser — это Perl-скрипт, обёртка над useradd, который делает процесс создания нового пользователя интерактивным. То есть, при создании нового пользователя у вас будут запрошены: пароль, имя пользователя и другие данные. Скрипт автоматически создаст домашний каталог пользователя, группу. А также копирует файлы из /etc/skel в домашний каталог.
Пример использования:
$ sudo adduser username # запускает интерактивный процесс создания пользователя
Таким образом для создания пользователей используются две команды:
useradd— для скриптов и автоматизации.adduser— для удобства ручного добавления пользователей.
Переключение на другого пользователя
Для переключения на другого пользователя используется команда su (от англ. «switch user»). Эта команда переключает на указанного пользователя, а если мы не укажем пользователя, то переключимся на пользователя root:
$ su username # переключимся на пользователя username
$ su # переключимся на пользователя root
После ввода команды система запросит пароль пользователя. А если мы выполняем su от имени root, то пароль не запрашивается и сразу происходит переключение на указанного пользователя.
Кроме этого, команда su позволяет выполнять команды от имени другого пользователя без входа в сессию:
$ su -c "whoami" username
По умолчанию команда su — сохраняет текущее окружение (переменные, рабочий каталог). То есть выполнив su alice, вы переключитесь на пользователя alice, но останетесь в том каталоге, в котором были, все переменные окружения у вас останутся от старого пользователя. Чтобы изменить это поведение нужно использовать su -. Это создаёт новую сессию с окружением целевого пользователя (как при обычном входе в систему). Примеры:
$ su - alice # переключение на пользователя alice (с заменой всех переменных)
$ su - # переключение на пользователя root (с заменой всех переменных)
Для использования su нужно знать пароль целевого пользователя. Но в некоторых системах (например, Ubuntu по умолчанию) пароль root не задан, и вместо su используют sudo. Про sudo вы можете почитать статью Использование sudo в Linux. Команда su — удобный инструмент для администрирования, но в современных системах часто предпочитают sudo для более гибкого управления правами.
Чтобы отключиться от пользователя на которого вы переключились нужно использовать команду exit:
$ su - alice # переключение на пользователя alice
$ exit # вернулись к предыдущему пользователю
Удаление пользователя
Для удаления пользователя в Linux используется команда userdel. Она часто используется с двумя опциями:
-r— удаляет домашнюю директорию и почтовый ящик пользователя.-f— принудительное удаление (завершает все процессы запущенные под этим пользователем).
$ sudo userdel -rf username
Изменение пароля пользователя
Команда passwd — стандартный способ изменения пароля пользователя в Linux. Для изменения своего пароля не нужно указывать имя пользователя:
$ passwd
Система запросит ваш текущий пароль и затем попросит ввести новый пароль дважды для подтверждения.
Для смены пароля другого пользователя (требуются права root) нужно указать имя этого пользователя:
$ sudo passwd username
При вводе пароля символы не отображаются — это нормально. Система может отвергать слишком простые пароли, но пользователь root может установить любой пароль без проверки сложности.
Помимо пользователей в Linux есть группы, подробнее про них в статье Группы пользователей в Linux.
Если понравилась статья, подпишись на мой канал в VK или Telegram.