Общая информация:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Пароли Linux могут состоять только из символов кодировки ASCII (никаких международных специальных символов!). Из соображений безопасности рекомендуется создавать пароли, состоящие из букв как верхнего, так и нижнего регистра; кроме того, пароль должен содержать минимум одну цифру Пароли в Linux сохраняются в форме так называемых хеш-кодов, которые позволяют контролировать, но не реконструировать данные. В современных дистрибутивах сейчас используется надежный хеш-алгоритм SHA512 (см. переменную ENCRYPT_METHOD в /etc/login.defs). Данный алгоритм позволяет создавать пароли любой длины (в некоторых более старых дистрибутивах используются другие хеш-алгоритмы, учитывающие только восемь первых символов в пароле!). Так называемые взломщики паролей (программы для расшифровки) действуют противоположным образом: они обычно примеряют к программе миллионы случайных паролей — как правило, в таком качестве взломщик использует слова из словаря в комбинации с числами. Поскольку многие пользователи применяют запоминающиеся пароли, а компьютеры становятся все быстрее, подобный метод подбора ужасающе часто приводит злоумышленника к цели. Чтобы осложнить жизнь потенциальным агрессорам, в новых системах Linux зашифрованные коды-пароли сохраняются не прямо в /etc/passwd, а в отдельном файле /etc/shadow. Преимущество заключается в том, что этот файл может читать только администратор. (Файлы /etc/passwd и /etc/group должны быть доступны для чтения всем пользователям системы, так как содержат элементарную информацию по управлению системой. А к файлу /etc/shadow могут иметь доступ только программы для верификации и изменения паролей. Поэтому потенциальный агрессор должен сначала получить доступ администратора и только потом сможет прочитать зашифрованные коды-пароли.) Формат файла shadow должен быть следующим: Логин:Код-пароль:D1:D2:D3:D4:D5:D6:reserve6 В полях dl-d6 могут содержаться желаемые данные по времени: dl указывает, когда пароль был в последний раз изменен (данные указываются в днях, прошедших с 01.01.1970); d2 определяет, через сколько дней можно изменить пароль; d3 указывает, через сколько дней пароль обязательно необходимо изменить, прежде чем он станет недействителен (подробности об этих полях сообщаются в файле справки man 5 shadow); d4 определяет, за сколько дней до истечения срока действия пароля пользователь начнет получать об этом предупреждения; d5 указывает, через сколько дней просроченная учетная запись без действующего пароля будет полностью деактивирована; d6 задает, когда именно учетная запись будет деактивирована. /etc/login.defs - файл настроек шифрования паролей в файле shadow /etc/passwd - файл с параметрами настроек пользователей /etc/group - файл групп /etc/shadow - файл с паролями /etc/pam.d/ - каталог с файлами настроек аутентификации /etc/pam.d/common-auth - файл настроек аутентификации /etc/pam.conf - методы аутентификации /var/log/faillog - информация обо всех не удачных попытках входа |
debian 9 файл login.def:
1 2 3 4 5 6 7 8 9 10 11 12 |
cat /etc/login.defs | grep -Ei encry ------------------------------------- # If set to "yes", new passwords will be encrypted using the MD5-based # Set to "no" if you need to copy encrypted passwords to other systems # This variable is deprecated. You should use ENCRYPT_METHOD. # If set to MD5 , MD5-based algorithm will be used for encrypting password # If set to SHA256, SHA256-based algorithm will be used for encrypting password # If set to SHA512, SHA512-based algorithm will be used for encrypting password # If set to DES, DES-based algorithm will be used for encrypting password (default) ENCRYPT_METHOD SHA512 # Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. ------------------------------------- |
Взаимодействие конфигурационных файлов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
как взаимодействуют три файла — passwd, groups и shadow. Файл passwd каждого пользователя содержит строку, построенную по следующему образцу: # Строка в /etc/passwd user_name:x:1000:1000:user_info user_name:/home/user_name:/bin/bash Здесь user_name — это логин; 1000 — идентификационный номер пользователя; 1000 — идентификационный номер основной группы; user_info — полное имя (для электронной переписки, новостей и т. д.); /home/user_name — домашний каталог пользователя; /bin/bash — используемая им оболочка. Идентификатор группы — это уникальный номер, важный для управления правами доступа к файлам. Соответствующая строка в /etc/shadow с информацией о пароле выглядит следующим образом: # Строка в /etc/shadow user_name:$6$9dk0$...:13479:0:99999:7::: Последовательность символов после user_name: — это зашифрованный пароль. Если не задать эту последовательность, то в систему можно будет входить, не указывая пароль. Если определить вместо нее символ * или !, то вход в систему будет запрещен. Номер GID из /etc/passwd должен соответствовать группе из /etc/group. Во многих дистрибутивах каждому обычному пользователю соответствует одноименная группа: # Строка в /etc/group user_name:x:1000: |