Перейти к основному содержимому
Списки пользователей и групп

Списки пользователей и групп

к сведению

Информация о пользователях и группах содержится в системных файлах:

  • /etc/passwd — информация о пользователях
  • /etc/group — информация о группах

Зашифрованные пароли в виде хэшей хранятся в теневых файлах:

  • /etc/shadow — защищаемая информацию о пользователях
  • /etc/gshadow — защищаемая информация о группах

Каждый пользователь или группа в файле описан отдельной строкой из нескольких полей, разделённых двоеточием. Это текстовые файлы, которые можно читать и изменять в текстовом редакторе. Форматы файлов описаны в следующих страницах man: passwd(5), shadow(5), group(5), gshadow(5).

Скрытые и зашифрованные пароли

Про шифрование паролей

Пароли шифруются с помощью необратимой функцииcrypt.

Эта функция преобразует строку A в строку B так, чтобы A не могло быть вычислено на основе B.

Функция принимает до 8 символов на вход (строка A) и генерирует строку из 13 печатаемых ASCII-символов (строка B), применяя специальный алгоритм преобразования одних символов в другие. Чтобы усложнить задачу вычисления алгоритма, в нем участвует соль — специальная примесь в виде двухсимвольной строки, которая направляет алгоритм по одному из 4096-и путей, создавая рандом.

Чтобы узнать пароль, взломщик может попробовать один из методов «брутфорса» — угадывать комбинацию символов. Такая атака более невозможна на системах, использующих /etc/shadow.

Записи в файле /etc/shadow содержат следующие поля:

  • имя пользователя;
  • зашифрованный пароль;
  • несколько полей, влияющих на срок действия пароля.

Редактируя поля, можно сделать пароль пользователя недействительным. Также можно установить период, в течение которого аккаунт пользователя с недействительным паролем деактивируется.

к сведению
  • Файл /etc/shadow не может быть прочитан обычными пользователями.
  • Файл /etc/passwd, содержащий зашифрованные пароли, может быть прочитан кем угодно.

Меры предосторожности при работе с системными файлами

осторожно
  1. Рекомендуем делать копию или бэкап любого системного файла перед его открытием или изменением.
  2. Если несколько пользователей сервера могут открыть файл одновременно, нужно защитить файл от повреждения.

Команды для безопасного редактирования:

  • vipw для редактирования /etc/passwd,
  • vigr для редактирования /etc/group

Опция -s предназначена для теневых файлов:

  • vipw -s для редактирования /etc/shadow,
  • vigr -s для редактирования /etc/gshadow.

Эти команды блокируют файл для редактирования другими пользователями.

Как это работает

Допустим, администратор А открыл список пользователей с помощью команды vipw и приступил к редактированию.

Пока он в процессе, администратор B открывает любым редактором этот же файл.
Его программа сначала проверяет переменную среды $VISUAL, затем $EDITOR и видит блокировку редактирования этого файла.

Администратор В не сможет внести изменения, пока администратор А работает со списком пользователей.

Поля в списке пользователей

Записи в файле /etc/passwd содержат следующие поля:

  • имя пользователя;
  • password — пароль в зашифрованном виде;
  • uid — уникальный идентификационный номер пользователя;
  • gid — уникальный идентификационный номер основной группы пользователя (по умолчанию система создаёт специальную группу для каждого пользователя);
  • GECOS — поле с данными, как правило, содержит полное имя пользователя;
  • директория для хранения личных файлов пользователя (сюда обычно указывает переменная $HOME);
  • программа для выполнения при входе (обычно это командный интерпретатор (shell).
примечание

Если указать программу /bin/false, пользователь не сможет входить в систему. Эта программа ничего не делает и немедленно завершается.

Поля в списке групп

Группа в Unix — это сущность, включающая нескольких пользователей с одинаковыми правами доступа во встроенной системе разрешений. Группой так же можно ограничить доступ к файлам и программам.

Записи в файле /etc/group содержат следующие поля:

  • имя группы;
  • опциональный пароль — используется, чтобы присоединиться к новой группе с помощью команд newgrp или sg;
  • gid — уникальный идентификационный номер группы;
  • список участников — список входящих в группу пользователей, разделённых запятыми.

Работа с несколькими группами

к сведению

Каждый пользователь обязательно имеет основную группу и может быть участником других групп.

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

Если пользователю нужно работать в директории, доступ к которой выдан не его основной группе, есть два способа.

  1. Он может сменить основную группу с помощью команд:
  • newgrp — запускает новый экземпляр оболочки
  • sg — выполняет команду от имени альтернативной группы.

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

  1. Установить правило внутри директории, что все файлы, создаваемые в ней, будут автоматически принадлежать нужной группе. Битsetgid устанавливает такое правило.

NSS и системные базы данных

Есть альтернативные способы хранения списков пользователей и паролей:

  • LDAP
  • модули NSS (Name Service Switch)

Такие модули перечислены в файле /etc/nsswitch.conf в записях passwd, shadow и group.