Пользователи Ubuntu
Тема моей сегодняшней статьи – пользователи Ubuntu. В операционной системе рекомендуется создавать минимум 2 пользователя. Один пользователь – это администратор (он же root) и пользователь с обычными правами. Работать в системе рекомендуется от имени обычного пользователя и в случае необходимости выполнять команды от пользователя с повышенными правами.
Рассмотрим подробнее как создавать, управлять, удалять пользователей. Полезные утилиты по надзору за пользователями и прочее. Начнем с простого, как управлять пользователем используя графический интерфейс.
Управление пользователями через GUI
Управление пользователями через графический интерфейс предельно простое. Без особых изыском можно создать, удалить или изменить пользователя. Нажимаем Обзор -> Настройки -> Пользователи
Тут можно изменить имя, пароль и параметры входа в систему. Удалить пользователя можно только другого, не того под которым зашли. Тут же можно посмотреть активность текущей учетной записи
При добавлении пользователя можно выбрать тип учетной записи: Администратор или Обычная
Управление пользователями в графическом интерфейсе не блещет кучей разных настроек. Если хочется более детального управления нужно использовать консоль.
Управление пользователями через консоль
Использование консоли позволяет значительно расширить возможности по созданию, изменению, удалению пользователей. В дистрибутивах Linux списки учетных данных пользователей хранятся в файле /etc/passwd, рассмотрим его подробнее.
Содержимое файла /etc/passwd
В указанном фале хранятся записи о всех учетных данных пользователей в системе. Вот небольшой пример моего файла passwd с ОС Ubuntu
Формат записи в файл:
login:password:UID:GID:GECOS:home:shell
- login – имя учетной записи
- password – устаревшее поле, вместо пароля стоит x. Хеш пароля хранится в файле /etc/shadow
- UID – идентификатор пользователя
- GID – идентификатор группы
- GECOS – дополнительное поле. Хранит информацию о пользователе: ФИО, номер телефона, адрес и т.п.
- home – домашний каталог пользователя
- shell – оболочка используемая при входе пользователя в систему. Например bash или sh. Также указывают /usr/sbin/nologin если вход пользователя в систему не предусмотрен.
Создание пользователей
В Ubuntu есть две утилиты для создания пользователя useradd и adduser
Создание пользователя используя useradd
sudo su
Создать пользователя можно используя команду useradd. Она работает на более низком уровне позволяя внести большое количество параметров при создании пользователя. Не забывайте запускать терминал с повышенными правами. Чтобы каждый раз не писать sudo я всегда захожу под su (super user – он же root)
Рассмотрим некоторые из возможных параметров при создании пользователя
useradd --help
- -b – базовый каталог для домашнего каталога новой учётной записи
- -d – домашний каталог новой учётной записи
- -D – показать или изменить настройки по умолчанию для useradd
- -e – дата устаревания новой учётной записи
- -f – период неактивности пароля новой учётной записи
- -g – имя или ID первичной группы новой учётной записи
- -G – список дополнительных групп новой учётной записи
- -k – использовать альтернативный каталог с шаблонами
- -l – не добавлять пользователя в базы данных lastlog и faillog
- -m – создать домашний каталог пользователя
- -M – не создавать домашний каталог пользователя
- -N – не создавать группу с тем же именем что и у пользователя
- -p – зашифрованный пароль новой учётной записи
- -r – создавать системную группу
- -U – создать группу с тем же именем что и у пользователя
Создадим пользователя с минимальным набором параметров
useradd vasya
Результатом выполнения команды станет создание пользователя vasya с дефолтными настройками. Давайте посмотрим что добавилось в файл /etc/passwd
vasya:x:1001:1001::/home/vasya:/bin/sh
Был создан vasya с домашней директорией /home/vasya и рабочей оболочкой /bin/sh
Однако, если зайти в каталог /home никакого каталога vasya там не будет. Подразумевается что вы вручную должны создать директорию для Васи и выдать ему доступ к ней. Это конечно все не удобно, поэтому при создании пользователя используйте ключ -m
useradd petya -m
Посмотрим на директорию /home
Каталог для Пети на месте и права на него установлены. Пользователя мы создали, но войти в систему он не сможет пока не задан пароль.
Установить пароль пользователя
Установить пароль пользователя можно с помощью команды passwd
passwd petya
Используя passwd можно делать разные вещи с паролем пользователя. Удалить пароль ключ -d или заблокировать учетную запись -l
Создадим пользователя с рабочим каталогом изменим рабочую оболочку и добавим в нужные группы
useradd -m -G adm,sudo,users -s /bin/bash mark
Разберем подробнее:
- -m – создаем каталог для пользователя
- -G – перечисляем список групп в которые будет добавлен пользователь
- -s – указываем рабочую оболочку
Кстати, список всех групп в системе можно увидеть в файлике /etc/group
Стандартные настройки пользователя
При создании пользователя система автоматически присваивает часть стандартных настроек. Увидеть настройки можно командой useradd -D
useradd -D
Разберем настройки подробнее
- GROUP – номер групп в нашей операционной системе. Практического значения не имеет
- HOME – домашний каталог для пользователей. По умолчанию /home
- INACTIVE – количество дней которые пройдут после устаревания пароля. После этого учетная запись пользователя будет заблокирована
- EXPIRE – указываем дату когда будет заблокирована учетка пользователя. Обычно не указывается.
- SHELL – командная оболочка
- SKEL – каталог содержит файлы по умолчанию. При создании нового пользователя они копируются в домашний каталог.
- CREATE_MAIL_SPOOL – если стоит yes пользователю будет создан каталог для писем в /var/spool/mail/
Данные настройки хранятся в файле /etc/default/useradd изменить их можно редактированием файла. Рекомендую использовать для изменения дефолтных настроек команду useradd -D . Пример изменения стандартной командной оболочки на bash
useradd -D -s /bin/bash
После ключа -D указываем необходимый ключ и задаем новое значение для указанного параметра.
Создание пользователя используя adduser
Вторая утилита позволяющая создать пользователя в Ubuntu называется adduser. Она более дружелюбна и позволяет в интерактивном режиме внести полную информацию по пользователю. Основные данные включая внесение пароля и создание директории. Рекомендую использовать именно adduser для заведения пользователей.
adduser igor
Данные можно заносить как в интерактивном режиме так и с использованием ключей. Их тут конечно не так много как в useradd но практически все что нужно есть.
Изменение пользователей
Изменить данные пользователя можно используя команду usermod. Она имеет множество разных параметров, перечислю некорые из них:
- -c – новое значение поля GECOS
- -d – новый домашний каталог учётной записи
- -e – установить дату окончания действия учетной записи
- -f – установить период неактивности пароля после устаревания учётной записи
- -g – принудительно назначить первичную группу
- -G – указать список дополнительных групп
- -a – добавить пользователя в дополнительные группы указанные в параметре -G не удаляя пользователя из других групп
- -l – новое значение имени учётной записи
- -L – заблокировать учётную запись
- -m – переместить содержимое домашнего каталога в новое место. Данный параметр используется только вместе с -d
- -p – задать новый пароль
- -s – изменить рабочую оболочку
- -U – разблокировать учётную запись
Возьмем пользователя igor и изменим ему рабочую оболочку на sh
usermod igor -s /bin/sh
Добавим пользователя petya в группу sudo
usermod -aG sudo petya
Удаление пользователей
Удалить пользователя можно командой userdel, краткий список ключей ниже
- -f – удалять файлы в домашнем каталоге, даже если они не принадлежат пользователю
- -r – удалить домашний каталог и почтовый ящик
Давайте удалим нашего пользователя igor с домашним каталогом и всеми файлами в нем
userdel igor -r -f
Как видно на скриншоте при удалении Игоря вылезло информационное сообщение что не найден почтовый ящик. Все верно почтового ящика не было, так что смело можно игнорировать данное предупреждение.
Контроль пользователей в системе
Для контроля работы пользователей в Ubuntu есть несколько встроенных утилит. Рассмотрим некоторые из них.
w
Показывает кто из пользователей вошел в систему и что делает. Рассмотрим подробнее команду и ключи к ней
w
- -h – не выводить заголовок
- -s – сокращённый формат
- -f – показать поле имени удалённого хоста
- -o – вывод в старом стиле
- -i – отображать IP-адрес вместо имени хоста (если возможно)
Вывод команды w без указания дополнительных параметров:
В шапке можно увидеть общее время работы системы, количество активных пользователей и среднюю нагрузку. По самому пользователю видно какую команду он выполнил и с какого ip адреса подключился.
last
Показывает историю входа пользователей в систему. Информация формируется на основе файла /var/log/wtmp
Список основных праметров:
- -a – отобразить имена хостов в последней колонке
- -d – перевести IP-адрес обратно в имя хоста
- -f – использовать указанный файл вместо /var/log/wtmp
- -F – показать полное время и дату входа и выхода из системы
- -w – показывать полные имена пользователя и домена
Пример вывода:
lastlog
Командой lastlog можно увидеть дату последнего входа пользователя в систему
Параметры вывода:
- -b – показать записи lastlog за последнее указанное количество дней
- -C – очистить запись lastlog пользователя. Работает только с параметром -u
- -S – поставить в записи lastlog текущее время. Только вместе с -u
- -t – показать записи lastlog за указанное количество дней
- -u – показать запись lastlog для конкретной учётной записи
Давайте поглядим когда последний раз пользователь Вася заходил в систему
lastlog -u vasya
faillog
Показывает записи из файла faillog или задаёт предел неудачных попыток входа в систему. Рассмотрим возможные параметры:
- -a – показать записи faillog для всех пользователей
- -l – заблокировать учётную запись после неудачных попытки входа на указанное количество секунд
- -m – установить максимальное количество неудачных попыток входа
- -r – сбросить счётчик неудачных попыток входа
- -t – показать записи faillog за указанное количество дней
- -u – показать записи faillog только для указанного пользователя
Зададим для Пети максимальное количество неудачных попыток входа равное 10 после чего будет блокировка на 360 секунд
faillog -u petya -m 10 -l 360
Все утилиты прекрасно работают с grep так что их использование становится очень удобным.
Видео к статье: