Создание и управление пользователями в Linux

В отличие от архитектуры MS-DOS, этой предшественницы Windows, архитектура Linux изначально разрабатывалась как многопользовательская. И даже сегодня, когда Windows проделала немалый путь в своем развитии, создание пользователей и назначение им прав в Linux отличается большей логичностью и прозрачностью. В только что установленной Ubuntu или Mint имеются два пользователя — вы и root, присутствующий в системе как-бы неявно.

Но обладающий полными правами на выполнении любых операций и могущий делегировать свои права вам как администратору по первому же требованию. Есть еще системные пользователи, так называемые демоны — запускаемые системой процессы, аналогичные службам в Windows, но это отдельная тема.

Создание пользователя в графическом интерфейсе

Использование для создания пользователя Linux в графическом конфигураторе — самый простой, но и наименее гибкий способ.

Вот пример с Ubuntu.

Откройте настройки системы, перейдите в раздел «Пользователи» и нажмите «Разблокировать»,

Пользователи

чтобы приступить к работе с учетными записями.

Как только вы это сделаете, появится кнопка добавления нового юзера.

Добавление нового юзера

Возможности конфигурирования нового пользователя невелики: вы можете лишь присвоить ему имя, установить пароль и назначить администратором.

Конфигурирование нового пользователя

Новый пользователь

Администратор в Ubuntu может делать всё то же самое, что и root, запросив у последнего разрешение командой sudo, тогда как права обычного пользователя ограничены. Так, обычный пользователь не сможет изменять важные системные настройки и управлять другими пользователями, ему не будет доступна команда sudo. Как и в Windows, для нового юзера создается отдельный каталог с одноименным названием.

Каталог пользователя

Создание пользователя в терминале

Использование терминала для создания пользователя открывает как минимум на порядок больше возможностей. Чтобы не нагружать мало знакомого с Linux читателя избыточной информацией, мы намерено решили опустить тему синтаксиса приведенных ниже команд управления учетными записями, коснувшись только некоторых ее сторон, но посчитали нужным дать определение используемым в статье терминам.

  • Команда — это зарезервированное слово, «приказ» системе выполнить то или иное действие.
  • Ключ — под ключом мы имеем ввиду некий переключатель, используемый в команде и расширяющий ее возможности. Ключ может принимать значение, а может и не принимать.
  • Аргумент или значение ключа — это некий логический набор данных, который обрабатывается командой.

Для создания пользователя в Linux используется команда useradd, если вы откроете ее справку командой useradd --help, где --help является ключом, то в терминале будет выведен полный набор поддерживаемых данной командой ключей.

Useradd help

Назначение домашнего каталога по умолчанию, блокировка учетной записи по истечении указанной даты, добавление пользователя в другие группы, создание пользователя без GUI и домашней папки, смена папки с конфигурационными файлами пользователя и назначение ему уникального ID и шелла — всё это и многое другое можно сделать с помощью терминала.

Добавляется новый пользователь в Ubuntu командой useradd имя-юзера. Перед выполнением команды мы запрашиваем разрешение у root, поэтому вначале ставим sudo. Если вы хотите в рамках сессии постоянно работать с правами суперпользователя, выполните sudo su -. Если увидите на скриншотах такую конструкцию, это значит мы переключились в режим root.

Useradd

При выполнении команды useradd автоматически будет создана новая группа и домашняя папка юзера. В процессе система попросит придумать и ввести для нового пользователя пароль и указать дополнительные сведения, которые, в отличие от пароля, можно проигнорировать. Это будет самый обычный пользователь с домашней папкой в каталоге /home и командной строкой bash. Получить базовые сведения о пользователе можно командой id имя-юзера. Для примера мы только что создали нового пользователя ludos и вывели командой id ludos о нём сведения. В результате получили строку из трех частей.

  1. uid — это идентификатор пользователя.
  2. gid — идентификатор его группы (по умолчанию равен ID юзера).
  3. группы — перечень групп, в которые входит пользователь.

Id

Используя ключи, можно создать нового пользователя с определённым набором прав и функций, например, очень часто приступающие к изучению Linux люди интересуются, как создать рутового пользователя.

Да очень просто: используя ключи -o, -u, -g и -s Первый ключ разрешает создание пользователя с неуникальным ID, второй назначает ему идентификатор пользователя, а третий — идентификатор группы, которые совпадают с идентификаторами рута (0). Четвёртый ключ назначает командную оболочку. Сама же команда будет выглядеть следующим образом, где newroot — новый рутовый пользователь.

useradd -o -u 0 -g 0 -s /bin/bash newroot

Newroot

Рутовский каталог

Только вот делать так не рекомендуем.

Во-первых, этот дубль-root не отображается на экране входа в систему (нужно нажать "нет в списке" и ввести его имя и пароль), не отображается он и в графической утилите управления пользователями. Во-вторых, у вас могут возникнуть проблемы с его удалением. Ubuntu советует использовать для удаления рутового пользователя ключ --force, но когда мы выполняем команду удаления deluser --force newroot, система сообщает об ошибке из-за использования newroot процесса с ID 1, принадлежащего пользователю root! То есть newroot стал как-бы зеркалом рута.

Зеркало рута

Где хранятся данные о пользователях

Сведения обо всех пользователях хранятся в нескольких файлах, с содержимым которых мы познакомимся на примерах. Для вывода содержимого этих файлов в терминал мы будем использовать команду cat, выполненную с правами суперадминистратора.

/etc/passwd — файл passwd хранит имя пользователя, метку пароля, ID пользователя, ID группы (GID), полное имя и служебную информацию, путь к домашней папке и используемый юзером шелл (командную строку), разделенные двоеточиями.

Чтобы просмотреть содержимое этого файла выполните команду sudo cat /etc/passwd.

Passwd

Помимо пользователя root, который всегда идет в списке первым и имеет ID и GID, файл может содержать массу служебных пользователей, которые сейчас нас не интересуют. Давайте-ка лучше посмотрим на запись администратора.

Для наглядности мы использовали цветовую идентификацию.

  1. Желтый — имя пользователя.
  2. Красный — метка пароля (x), сам пароль хранится в зашифрованном виде в другом файле.
  3. Оранжевый — идентификатор пользователя.
  4. Зеленый — идентификатор группы, в которую входит пользователь, и таких групп может быть несколько.
  5. Серый — полное имя пользователя и служебная информация. Если данные отсутствуют, блок заполняется запятыми.
  6. Голубой — домашний каталог пользователя.
  7. Сиреневый — используемая командная оболочка.

Данные о пользователях

/etc/shadow — хранит пароли пользователей в зашифрованном виде. Строка представлена именем пользователя и зашифрованным паролем, разделяемыми двоеточием.

Shadow

Цвета на изображении означают:

  1. Желтый — имя пользователя.
  2. Красный — его пароль в зашифрованном виде.

Пароли пользователей

/etc/group — этот файл хранит названия групп. Его содержимое представлено названием группы, меткой пароля, идентификатором группы и ее названием. Если в группу входит несколько пользователей, они перечисляются через запятую.

Group

Цветом на изображении выделены:

  1. Желтым — название группы.
  2. Красным — метка пароля.
  3. Зеленым — идентификатор группы.
  4. Голубым — входящие в группу пользователи.

Группы

Управление пользователями

Для управления пользователями в Linux Ubuntu существует команда usermod, которая также может принимать множество ключей и параметров. Если помните, ранее мы создали пользователя ludos. Это обычный пользователь, не являющийся администратором и не имеющий прав использовать команду sudo. Предоставим ему эти привилегии, добавив его в группы adm и sudo. Здесь мы вынуждены сделать маленькое отступление, сказав пару слов о группах. Как просмотреть список групп и что в них хранится, вы уже в курсе, но не будет лишним также знать, что группы могут быть первичными и вторичными.

  • Первичной называется группа, которая создается вместе с пользователем; в свою очередь, пользователь может входить только в одну первичную группу.
  • Вторичными называются все остальные группы, в которые пользователь может быть добавлен в процессе работы. Один и тот же пользователь может входить в множество дополнительных групп.

На досуге вы можете изучить ключи команды usermod, выполнив ее с параметром --help, а сейчас нам достаточно знать два ключа:

  • -a — ключ добавляет пользователя в указанную группу.
  • -G — специальный ключ, определяющий список дополнительных групп.

Формируем такую команду, добавляя юзера в группы adm и sudo, перечисляя их через запятую:

usermod -a -G adm,sudo ludos

Получив данные о пользователе командой id ludos, мы видим, что его ID и GID остались прежними, зато он оказался членом групп adm и sudo.

Usermod

Открыв графическую оболочку управления пользователями, мы обнаруживаем, что наш обычный ludos стал администратором, а так как он входит еще и в группу sudo, то может пользоваться и привилегиями root, в чём мы и убеждаемся, войдя в учетную запись ludos, открыв терминал и запросив разрешения root.

Параметры аккаунта

Sudo su -

Удаление пользователей

Удалить пользователя проще всего в настройках через раздел «Пользователи». Для этого мы должны входить в группу администраторов и обладать правами root.

Разблокировать

Подтверждение подлинности

Тут всё очень просто: выбираем юзера, жмем разблокировать, вводим свой пароль, жмем кнопку «Удалить пользователя».

Удалить пользователя

И выбираем, оставлять на диске его файлы (домашнюю папку) или нет.

Домашняя папка

Чтобы удалить пользователя из терминала, используем команду deluser имя-юзера. Выполненная без параметров, команда удаляет только запись о пользователе, но не его файлы, поэтому приходится использовать ключи, ознакомиться с которыми вы опять же можете сами, выполнив deluser --help.

Deluser

Например, чтобы вместе с пользователем удалить его домашний каталог, нужно добавить ключ --remove-home, вот так:

deluser --remove-home ludos

Deluser remove home

Шаблон, в котором хранятся настройки удаления пользователя командой deluser без использования аргументов, представлен файлом /etc/deluser.conf.

Давайте его откроем в редакторе nano и кое-чего подправим, сделав так, чтобы выполненная без аргументов команда deluser удаляла юзера вместе с его домашним каталогом.

Открываем и видим, что REMOVE_HOME имеет значение 0,

Deluser.conf

что означает не удалять папку профиля. Заменяем 0 на 1, сохраняем конфиг-файл,

REMOVE_HOME

удаляем юзера deluser без параметров и видим, что папка тоже удалена!

Deluser без параметров

Удаление рутового пользователя

Ну хорошо, но у нас есть еще пользователь с рутовым правами и именем newroot, помните, мы его создали, а потом хотели удалить, но безуспешно? Этот юзер использует корневой процесс unit с ID 1, — убьёте его командой killall — тут же уложите систему.

Killall

Не навсегда, просто она перейдет в состояние, подобное BSOD.

BSOD

Как быть в этой ситуации? Вероятно, есть более элегантное решение проблемы, но мы решили пойти ва-банк и удалить запись зеркального рута прямо из конфигурационных файлов.

Сначала открываем в редакторе nano файл /etc/passwd и удаляем из него запись о юзере newroot.

Удаляем запись о юзере newroot

Точно так же поступаем с файлом /etc/shadow.

Удаляем запись

Id user

Осталось только разобраться с домашним каталогом newroot,

Каталог newroot

для чего в открываем терминал в папке /home и сносим его командой sudo rm -r newroot.

Sudo rm -r newroot

Заключение

Создание и управление пользователями через графический интерфейс в Linux имеет много общего с аналогичной процедурой в Windows, но стоит только углубиться в тему, задействуя командную строку, как тут же становится очевидным, насколько более широкие возможности в этом плане предоставляет Linux.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...

Рекомендуемые публикации:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *