В прошлом материале нашего цикла мы рассмотрели теоретические аспекты системы управления пользователями в Linux и теперь, располагая багажом необходимых знаний, можно переходить к практике. Несмотря на то, что мы традиционно рассматриваем работу в системах основанных на Debian, данный материал будет полезен пользователям любого Linux-дистрибутива, так как работа с учетными записями пользователей везде построена одинаково. Именно поэтому мы будем рассматривать только работу в командной строке, так как она предоставляет единый и универсальный интерфейс вне зависимости от используемого окружения.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Создание пользователей
Для создания пользователей используется команда useradd, но не будем спешить с ее применением, сначала ознакомимся с используемыми по умолчанию параметрами, для этого выполните:
useradd -D
Здесь мы можем увидеть место размещения домашних каталогов, оболочку по умолчанию и каталог с шаблоном домашней директории /etc/skel. Эта директория будет полностью скопирована в директорию нового пользователя и содержит базовые настройки окружения пользователя. Вы можете воспользоваться этим, если вам нужно формировать определенную структуру домашних каталогов или применять какие-либо специфичные настройки. При этом не рекомендуется вносить изменения в оригинальный /etc/skel, рекомендуется сделать его копию (можно и не одну) в которую внести все необходимые изменения.
Также обратите внимание на параметр:
GROUP=100
Но как нам известно в Debian пользовательские группы начинаются с 1000, а в RHEL c 500, поэтому в современных системах этот параметр игнорируется. Все параметры, кроме SKEL, могут быть изменены, но практический смысл это имеет только для HOME и SHELL.
Скажем вы настраиваете многопользовательский веб-сервер и хотите создавать домашние директории в каталоге веб-сервера, в этом случае можно выполнить:
useradd -D -b /var/www/home
А для изменения командной оболочки:
useradd -D -s /bin/bash
Чтобы добавить нового пользователя введите:
useradd -m ivan
Ключ -m предписывает создать домашний каталог пользователя. Это самый простой вариант использования, но при использовании дополнительных ключей мы можем сразу задать или переопределить многие параметры пользователя. Получить их список можно командой:
useradd -h
Приведем некоторые из них:
- -b - задает домашний каталог пользователя
- -c - комментарий к учетной записи
- -g - задает основную группу пользователя
- -G - задает дополнительные группы
- -m - создать домашний каталог пользователя
- -N - не создавать группу с именем пользователя
- -k - путь к каталогу шаблона домашней директории (по умолчанию /etc/skel)
- -s - командная оболочка
Например:
useradd -m -b /var/www/ivanov -g webuser -G www-data -k /etc/myskel -s /sbin/nologin ivanov
Этой командой мы создадим пользователя ivanov, которому назначим домашнюю директорию в /var/www/ivanov, для которой будет использован шаблон из /etc/myskel, включим его в основную группу webuser и дополнительную www-data. Также запретим ему интерактивный вход в систему, назначив оболочкой /sbin/nologin.
Созданная учетная запись будет заблокирована до тех пор, пока мы не установим для нее пароль, это можно сделать следующей командой:
passwd ivan
которая установит пароль к учетной записи ivan. Для блокировки пароля используйте:
passwd -l ivan
Но учтите, что данная блокировка распространяется только на вход по паролю, если у пользователя настроены иные способы входа, скажем по SSH-ключу, то доступ в систему с их помощью сохранится. Поэтому данный способ следует использовать в тех случаях, когда есть подозрение на компрометацию пароля, но в полной блокировке учетной записи нет необходимости. Для разблокировки потребуется заново установить пароль.
Изменение пользователей
Для того, чтобы изменить параметры уже существующей учетной записи используется команда usermod, для ознакомления с ее возможностями получим список ключей командой
usermod -h
Приведем некоторые из них:
- -c - изменить комментарий
- -d - новый домашний каталог
- -g - новая основная группа
- -G - новые дополнительные группы
- -a - добавить пользователя в дополнительные группы, не удаляя из других групп, используется совместно с ключом -G
- -l - новое имя учетной записи
- -L - блокировать учетную запись
- -m - переместить содержимое домашнего каталога, используется только вместе с -d
- -U - разблокировать учетную запись
Например:
usermod -c "Ivanov Ivan" -aG sudo ivan
Данная команда создаст новый комментарий к учетной записи и добавит пользователя ivan в дополнительную группу sudo.
Удаление пользователей
Для удаления учетной записи пользователя используется команда userdel, например:
userdel vasya
которая удалит учетную запись vasya.
Команда имеет дополнительные ключи, которые также можно просмотреть, запустив ее с ключом -h, практическую пользу представляют два из них:
- -r - удалить домашний каталог пользователя
- -f - удалять файлы, даже если они не принадлежат пользователю
На практике оба ключа обычно используются совместно, но будьте осмотрительны и перед удалением убедитесь, что удаляемые данные не нужны другим пользователям. Чтобы удалить пользователя вместе со всеми данными выполните:
userdel -rf vasya
При этом будет удален не только рабочий каталог, но и сообщения электронной почты пользователя, если таковые были в системе.
Управление группами пользователей
Для управления группами используется аналогичный набор команд: groupadd, groupmod и groupdel. Их ключи также можно посмотреть, запустив их с параметром -h.
Для создания группы используйте:
groupadd office
Из дополнительных ключей имеют практический смысл:
- -g - использовать указанный GUID
- -f - завершить команду без ошибки если группа с таким именем уже существует и отменить действие -g, если указанный GUID уже используется.
При помощи команды usermod мы можем изменить GUID и наименование группы, скажем:
groupmod -n sales office
Данная команда переименует группу office в группу sales. Используемые ключи:
- -g - изменить GUID группы
- -n - изменить наименование группы
Ну и наконец groupdel, который используется для удаления групп:
groupdel office
Из параметров можно использовать:
- -f - удалить группу, даже если она является основной для пользователя
При удалении групп всегда нужно проявлять осмотрительность и не следует удалять группы, в которых состоят пользователи. Если же такая необходимость существует, то следует предварительно вывести из группы пользователей и изменить группу для всех объектов, которыми владела удаляемая группа.
Управление членством пользователей в группах
Управлять членством пользователей в группах можно различным образом. Выше мы уже приводили примеры с использованием usermod, для изменения основной группы пользователя используйте:
usermod -g office ivan
Данная команда изменит основную группу пользователя ivan на office. Для добавления в дополнительные группы следует выполнить команду:
usermod -aG office, sales ivan
Которая добавит пользователя ivan в группы office и sales.
Также существует и другая команда gpasswd, которая позволяет не только добавлять, но и удалять членство пользователей в группах. Для добавления пользователя в группу используйте:
gpasswd -a ivan office
Данная команда добавить пользователя ivan в группу office. Для удаления членства выполните:
gpasswd -d ivan office
Для того, чтобы проверить членство пользователя в группах используйте команду:
groups ivan
где ivan - имя пользователя.
Чтобы быстро удалить пользователя из всех дополнительных групп используйте:
usermod -G "" ivan
Как видим, управление пользователями и группами в Linux не такое уж и сложное дело, особенно когда вы понимаете, что значит тот или иной параметр и для чего вы это делаете.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии