Где хранятся пароли в Linux-e .
Есть предложение обсудить где в Linux-e хранятся пароли, какие и в каком виде. Делается это с целью определения защищаемых ресурсов, дабы админы знали где чего лежит, и что нужно беречь. Пишите про все: пароли системы, для демонов, другие, даже очень специфические решения, желательно описать, как это делал я .
/etc/passwd или /etc/shadow (в системах с shadow-системой хранения паролей) — тут хранятся пароли пользователей системы в зашифрованном виде. Если в DES-формате (max длина пароля 8 символов ?), то за 24 часа такой пароль сломает любой PII-350. Если MD5 то гораздо больше (длина до 255 символов, что уже лучше). В Slackware 7.0 есть обесхемы, по умолчанию включена вторая, а сами пароли тут хранятся в /etc/shadow.
/etc/ppp/pap-secrets — имена и пароли для PAP-аутентификации при установке PPP-соединения, хранятся в чистом виде, хотя есть опция papcrypt для pppd, но я немног не понял, что это такое, если кто может — напишите.
$HOME/.kde/share/config/kppprc — имена и пароли для установки PPP-соединения через программу kppp, хранятся в чистом виде.
Имена и пароли для установки PPP-соединения — это пароли и имена вашего Internet-провайдера, не теряйте их !
saper ★★★★★
12.02.00 00:32:23 MSK
Где хранятся пароли в linux
Традиционные Unix системы хранят данные о пользователях вместе с зашифрованным паролем в текстовом файле « /etc/passwd ». Поскольку этот файл используется многими инструментальными средствами (типа «ls») чтобы отобразить владельца файла и другие подобные сведения, файл должен быть открыт на чтение для всех, что, конечно, дает отличный шанс хакерам. Другой метод хранения информации, тот, который я всегда использую, затенение паролей. Как и раньше, есть файл /etc/passwd с данными о пользователях. Однако, вместо паролей ставится символ “x”, а пароли хранятся отдельно в файле « /etc/shadow », в котором хранятся зашифрованные пароли и некоторая дополнительная информация о паролях. Файл /etc/shadow доступен для чтения только root, что повышает защиту. В Red Hat Linux установка пакета Shadow Password Suite, ответственного за теневые пароли, проста. Наберите как root:
/usr/sbin/pwconv Для конвертации в формат shadow /usr/sbin/pwunconv Для конвертации назад в нормальный формат
С теневыми (shadow) паролями файл « /etc/passwd » хранит сведения о пользователях в виде:
smithj:x:561:561:Joe Smith:/home/smithj:/bin/bash
- Username, до 8 символов. Регистр важен, обычно пишут в нижнем регистре.
- Символ “x” в поле пароля. Пароли хранятся в файле « /etc/shadow ».
- Числовой user id. Назначается скриптом « adduser ». Unix использует данное значение и значение группы для определения кому какие файлы принадлежат.
- Числовой group id. Red Hat использует group id в довольно неожиданном способе усиления защиты файла. Часто group id равен user id.
- Полное имя пользователя. Максимальная длина мне неизвестна, но лучше ограничиться разумными рамками (до 30 символов).
- Домашний каталог пользователя. Обычно /home/username (например, /home/smithj). Там хранятся все личные файлы пользователя и его web-страницы.
- Пользовательская оболочка. Обычно используется « /bin/bash » для доступа к оболочке bash.
Если нужно чтобы пользователь не имел доступа к shell, создайте скрипт « /bin/sorrysh », который выведет соотвтетствующее сообщение и завершит работу пользователя. Впишите скрипт сюда в качестве оболочки.
Замечание: Если пользователь должен передавать файлы по “FTP” shell должна быть нормальной оболочкой, например, « /bin/bash », а чтобы не давать shell-доступа надо настроить доступ в домашнем каталоге пользователя. См. раздел Администрирование Web-сервера и HTTP Proxy в главе 7.
Файл « /etc/shadow » хранит данные о пользователе в формате:
smithj:Ep6mckrOLChF.:10063:0:99999:7.
Как и в файле passwd, каждое поле в файле shadow отделяется двоеточием:
- Username, до 8 символов. Совпадает с username в файле /etc/passwd.
- Пароль, 13 символов (зашифрованный). Пустая запись (то есть, ::) показывает, что для входа пароль не нужен (обычно идея плохая), и запись «*» (то есть, :*:) показывает, что вход заблокирован.
- Количество дней (с 1 января 1970), когда пароль был сменен в последний раз.
- Число дней до смены пароля (0 показывает, что он может быть сменен всегда).
- Число дней, после которых пароль должен быть сменен (99999 показывает, что пользователь может не менять пароль фактически никогда).
- Число дней, в течение которых пользователь получает предупреждения о необходимости пароль сменить (7 для полной недели).
- Число дней после окончания действия пароля, когда еще можно работать. Если пароль не сменить, после данного срока он выдохнется, и аккаунт будет заблокирован.
- Число дней, начиная с 1 января 1970, после которых пароль будет заблокирован.
- Зарезервировано для возможного будущего использования.
| Назад | Оглавление | Вперед |
| Removing User Accounts | Локальное оглавление | System Shutdown and Restart |
Управление учетными записями в Linux. Часть 1. Хранение учетных данных

Файлы в операционках семейства Linux можно назвать основой всего. Для Linux все есть файл. Другими словами, файлы это не только объекты для хранения информации, но и устройства, тоннели, сокеты и многое другое. При этом, нам необходимы разграничивать доступ к тем или иным файлам в зависимости от прав пользователя, обращающегося к файлу.
У каждого файла в Linux системах есть владелец (user). И как мы уже говорили, у каждого пользователя есть уникальный идентификатор – user ID. Еще есть группы, то есть объединения пользователей по тому или иному признаку. Каждый пользователь должен состоять минимум в одной группе, но есть возможность добавить пользователя во множество групп. Так же, как и у пользователя, группа имеет уникальный идентификатор группы называемый GID – group ID.
Где хранятся учетки
Информацию об учетных записях ОС Linux хранит в файле /etc /passwd .
Он содержит следующее:

Где:
User ID — логин;
Password – наличие пароля;
UID — идентификатор пользователя;
GID — идентификатор группы по умолчанию;
User Info – вспомогательная информация о пользователе (полное имя, контакты и т.д.)
Home Dir — начальный (он же домашний) каталог;
Shell — регистрационная оболочка, или shell.
Когда-то, на заре становления Линукс, в файле /etc/passwd хранились также хэши паролей от учетных записей пользователей. Но тогда эти данные становились легкой добычей злоумышленников, так как любой пользователь мог прочитать этот файл и скопировать хэши для последующей расшифровки.
В качестве проверки можно под учеткой обычного пользователя (не root) ввести cat /etc/passwd и вы получите содержимое файла.

Для хранения хэшей паролей в современных Линукс используется файл /etc/shadow .

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

Файл /etc/shadow имеет следующую структуру:

loginID – имя пользователя;
password – пароль в зашифрованном виде;
lastchg – количество дней c 1.01.1970, когда пароль был изменен в последний раз;
min – минимальное число дней между сменами пароля;
max – максимальное число дней, в течении которых пароль будет валиден;
warn – количество дней за которые пользователь будет предупрежден об истечении пароля;
inactive – количество дней, в течении которых пользователь может быть неактивен перед блокировкой;
expire – дата, когда истекает срок пользовательской учетной записи.
Отсутствие доступа к /etc/shadow для обычных пользователей конечно усложняет жизнь потенциальным взломщикам, но не исключает полностью возможность получить доступ к хэшам. При наличии физического доступа злоумышленник может загрузиться с флешки и подмонтировав раздел скопировать нужный файл к себе. Аналогично в случае использования виртуализации можно скопировать выключенную виртуалку к себе и затем, также загрузиться со сменного носителя.
В случае, если хакер получил права обычного пользователя, например www, он может попытаться повысить привилегии для того, чтобы прочитать файл. Также, если пользователь может загружать любые docker-контейнеры, то при определенных условиях он может получить права на чтение /etc/shadow. Об этом мы подробно поговорим в третьей статье.
Быстрый перебор
Не углубляясь в тему взлома (все-таки эта статья больше про администрирование Linux) кратко опишем дальнейшие действия злоумышленника после получения доступа к хэшам паролей.
Перебор паролей даже на достаточно мощной машине процесс довольно продолжительный. И для того, чтобы его максимально ускорить существуют наборы сгенерированных заранее хэшей паролей, например все комбинации из цифр длиной до 10 символов, маленьких латинских букв до 10 символов и т.д. Более сложные комбинации тоже можно получить готовыми, но это уже будет стоить денег. Тем не менее взломщик может сэкономить много времени используя готовые хэши.
И еще немного… соли
Для решения проблемы использования готовых хэшей разработчики ОС Linux стали использовать соль (salt), то есть набор из нескольких дополнительных байт, который добавлялись к паролю перед хэшированием.
Обычно формат пароля, хранимого в /etc/shadow представляет собой:
$id $salt $hashed, где $id — алгоритм, которым шифруется пароль ($1 is MD5, $2a is Blowfish, $2y is Blowfish, $5 is SHA-256, $6 is SHA-512).

Таким образом, использование соли для шифрования паролей осложняет перебор, так как не позволяет использовать готовые таблицы.
Заключение
В этой статье мы рассмотрели механизмы работы с учетными записями в ОС семейства Linux, в частности механизм обеспечения безопасности при хранении хэшей паролей. В следующей статье мы начнем говорить о настройках доступа и тех ошибках могут допустить администраторы при выполнении этих настроек.
Вместо заключения хочу пригласить вас на бесплатные демоуроки по Linux от OTUS. Зарегистрироваться на уроки можно по ссылкам ниже:
- Базовые понятия Linux, работа в консоли с базовыми командами. Что нужно знать когда переходишь с Windows на Linux.
- Bash повышенной сложности: массивы, ключи, отладка.
Где хранятся пароли в linux

Provided by: passwd_4.1.5.1-1ubuntu9_amd64
НАЗВАНИЕ
passwd - файл паролей
ОПИСАНИЕ
Файл /etc/passwd содержит учётные записи пользователей, по одной в каждой строке. Строка состоит из семи полей, разделённых двоеточиями («:»). Поля: · имя пользователя для входа в систему · необязательный зашифрованный пароль · числовой идентификатор пользователя · числовой идентификатор группы · ФИО пользователя или поле комментария · домашний каталог пользователя · необязательный интерпретатор командной строки пользователя Поле с зашифрованным паролем может быть пустым, и тогда для входа под этой учётной записью пароль не требуется. Однако, некоторые приложения, которые читают файл /etc/passwd, могут решить не позволять любой доступ, если поле пароля пустое. Если поле пароля содержит строчную «x», то шифрованный пароль хранится в файле shadow(5); в файле shadowдолжна быть соответствующая строка, иначе учётная запись считается недействительной. Если в поле пароля содержится какая-то другая строка, то она воспринимается как шифрованный пароль, согласно формату crypt(3). Поле комментария используется различными системными утилитами, такими как finger(1). В поле домашнего каталога хранится начальный рабочий каталог. Программа login использует эту информацию для установки значения переменной окружения $HOME. В поле интерпретатора командной строки хранится название интерпретатора командной строки пользователя или программы, которая будет запущена первой. Программа login использует эту информацию для установки значения переменной окружения $SHELL. Если это поле пустое, то используется значение по умолчанию /bin/sh.
ФАЙЛЫ
/etc/passwd содержит информацию о пользователях /etc/shadow необязательный файл с шифрованными паролями /etc/passwd- резервная копия файла /etc/passwd Заметим, что этот файл используется программами из комплекта утилит shadow, но не всеми инструментами управления пользователями и паролями.
СМОТРИТЕ ТАКЖЕ
crypt(3), getent(1), getpwnam(3), login(1), passwd(1), pwck(8), pwconv(8), pwunconv(8), shadow(5), su(1), sulogin(8).
© 2019 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.