Найти тему
Merion Academy

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

👋🏻 Привет! С вами снова Merion Academy - платформа доступного IT образования. В этой статье рассмотрим, как управлять учетными записями пользователей и групп в Linux. Также посмотрим различные базы данных, в которых хранится информация о пользователях и группах и что такое теневые пароли.

Изначально в Linux было 2 файла /etc/password и /etc/group. В первом файле хранилось:

/etc/password и /etc/group
/etc/password и /etc/group

Имя_пользователя : пароль : uid : gid : сведения (поле предназначено для персональных данных) : домашняя_папка : командная оболочк(которая запускается при входе пользователя в систему)

Во втором файле хранилось:

имя_группы : пароль : gid : члены_группы

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

Поэтому был создан механизм теневых паролей. Были созданы вот такие 2 файла: /etc/shadow и /etc/gshadow. И к этим двум файлам имеет полный доступ только пользователь root. Следовательно, теперь в файлах passwd и group указываются не пароли, а специальные символы, говорящие что пароли были перенесены в файлы shadow и gshadow.

/etc/shadow и /etc/gshadow
/etc/shadow и /etc/gshadow

В новом файле shadow хранится побольше информации о пароле пользователя. Это:

  • Логин
  • Пароль
  • Время после смены пароля – это если пароль сбрасывался после времени установки системы
  • Минимальный срок действия пароля - как часто можно менять пароль, если, например, стоит 5 дней, то пароль можно менять не чаще, чем раз в 5 дней.
  • Максимальный срок действия пароля – максимальное количество дней, по прошествии которых обязательно необходимо сменить пароль.
  • Срок предупреждения – за сколько дней до истечения пароля система предупредит о том, что необходимо сменить пароль.
  • Время работы с истекшим паролем – это параметр позволяет указанное число дней работать с истекшим паролем.
  • Срок для блокировки пароля – данный параметр отвечает за время жизни самого пароля, например, пароль будет работать 100 дней, после этого заблокируется.

Соответственно данные параметры можно при необходимости задавать при создании учетной записи пользователя и паролей. Если провести аналогию с операционной системой Windows, то подобные параметры в Windows мы можем задавать через GPO (Group Policy Object - набор правил или настроек, в соответствии с которыми производится настройка рабочей среды в операционных системах Windows). Отличие заключается в том, что в Windows эти параметры выставляются в абсолютных величинах числом, а в операционной системе Linux, относительно даты 1 января 1970 года.

Ну и соответственно gshadow имеет следующую структуру, разделенную символом : .

gshadow
gshadow
  • Имя группы
  • Пароль зашифрованный
  • Администраторы, те учетные записи, которые могут менять пароль группы или добавлять другие аккаунты
  • Члены групп

Следовательно, пароли могут хранится и в тех, и в тех файлах, отличие в том, что у пользователей есть доступ на чтение к файлам passwd и group, а к shadow и gshadow только у пользователя root. Данный механизм называется механизмом теневых паролей, и он присутствует во всех современных Linux системах.

Теперь, посмотрим, как это выглядит в операционной системе.

Заходим в файл passwd любым текстовым редактором, например, nano, без повышения привилегий.

 passwd
passwd

Возьмем пользователя:

list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

Логин - list, значок X говорит о том, что пароль хранится в теневом файле. Далее 38 – id пользователя, 38 - gid, прочая информация - Mailing List Manager, домашняя папка пользователя - /var/list и оболочка которая используется при входе - /usr/sbin/nologin.

Можно увидеть, что вместо оболочки у пользователя указан nologin – это означает, что пользователь не может войти, используя стандартный экран входа, используя стандартные средства. На картинке можно найти пользователя siadmin. Можно также увидеть все остальные параметры этого пользователя. У него совпадает uid и gid, это связанно с тем , что при создании пользователя создается одноименная группа. Можно, конечно, при создании указать, что пользователь будет входить в другую группу и не создавать одноименную, но по умолчанию она создается. В конце строчки мы можем увидеть /bin/bash, которая запускается при входе в систему. Можно обратить внимания на uid и gid все реальные пользователи их имеют числом выше 1000. Все пользователи, у которых число ниже – это служебные пользователи или созданные автоматически. В некоторых дистрибутивах Linux нумерация реальных пользователей начинается с 500.

Посмотрим файл с группами, вводим команду nano /etc/group

 nano /etc/group
nano /etc/group

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

Далее файлы /etc/shadow и /etc/gshadow, данные файлы не редактируются с помощью текстовых редакторов, а через специальные команды. Данные файлы — это просто хранилище информации. Эти утилиты будут рассмотрены в следующем уроке.

Зайти в эти файлы могут только пользователи имеющие права root или с помощью команды повышающей привилегии sudo.

sudo nano /etc/shadow

sudo nano /etc/shadow
sudo nano /etc/shadow

Теперь мы видим в данном файле через двоеточие:

  • Имя пользователя
  • * или зашифрованный пароль
  • Срок с последнего изменения пароля в днях
  • Минимальный срок изменения пароля, если 0, то сменить пароль можно сразу
  • 99999 - срок действия пароля, 7 - количество дней за которое до истечения пароля придет предупреждение

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

Вот так вот реализуется механизм теневых паролей.

--
До встречи на нашей образовательной платформе.
Merion Academy - платформа доступного IT образования.