Lost пишет:Как защитить /etc/shadow от такого метода?
никак.
lone_wolf пишет: получается тупо удалив пароль из /etc/shadow
если "тупо удалить", то будет пустой пароль.
вот
passwd(1) Пользовательские команды passwd(1)
НАЗВАНИЕ
passwd - изменяет пароль пользователя
СИНТАКСИС
passwd [параметры] [УЧЁТНАЯ_ЗАПИСЬ]
ОПИСАНИЕ
Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь может
изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой
учётной записи. Программа passwd также изменяет информацию об учётной записи или срок действия
пароля.
Изменение пароля
Сначала пользователя попросят ввести старый пароль, если он был. Этот пароль зашифровывается и
сравнивается с имеющимся. У пользователя есть только одна попытка ввести правильный пароль.
Для суперпользователя этот шаг пропускается, для того чтобы можно было изменить забытый
пароль.
После ввода пароля проверяется информация об устаревании пароля, чтобы убедиться, что
пользователю разрешено изменять пароль в настоящий момент. Если нет, то passwd не производит
изменение пароля и завершает работу.
Затем пользователю предложат дважды ввести новый пароль. Значение второго ввода сравнивается с
первым и для изменения пароли из обеих попыток должны совпасть.
Затем пароль тестируется на сложность подбора. Согласно общим принципам, пароли должны быть
длиной от 6 до 8 символов и включать один или более символов каждого типа:
· строчные буквы
· цифры от 0 до 9
· знаки пунктуации
Не включайте системные символы стирания и удаления. Программа passwd не примет пароль, который
не имеет достаточной сложности.
Выбор пароля
Безопасность пароля зависит от стойкости алгоритма шифрования и размера пространства ключа. В
старых системах UNIX метод шифрования основывался на алгоритме NBS DES. Сейчас рекомендуют
более новые методы (смотрите ENCRYPT_METHOD). Размер пространства ключа зависит от степени
произвольности выбранного пароля.
При обеспечении безопасности пароля выбирают нечто среднее между сложным паролем и сложностью
работы с ним. По этой причине, вы не должны использовать пароль, который является словом из
словаря или который придётся записать из-за его сложности. Также, пароль не должен быть
названием чего-либо, номером вашей лицензии, днём рождения и домашним адресом. Обо всём этом
легко догадаться, что приведёт к нарушению безопасности системы.
О том, как выбрать стойкий пароль, читайте в http://ru.wikipedia.org/wiki/Сложность_пароля.
ПАРАМЕТРЫ
Параметры команды passwd:
-a, --all
Этот параметр можно использовать только вместе с -S для вывода статуса всех пользователей.
-d, --delete
Удалить пароль пользователя (сделать его пустым). Это быстрый способ заблокировать пароль
учётной записи. Это сделает указанную учётную запись беспарольной.
-e, --expire
Немедленно сделать пароль устаревшим. В результате это заставит пользователя изменить
пароль при следующем входе в систему.
-h, --help
Показать краткую справку и закончить работу.
-i, --inactive ДНЕЙ
Этот параметр используется для блокировки учётной записи по прошествии заданного числа
дней после устаревания пароля. То есть, если пароль устарел и прошло более указанных ДНЕЙ,
то пользователь больше не сможет использовать данную учётную запись.
-k, --keep-tokens
Указывает, что изменение пароля нужно выполнить только для устаревших ключей
аутентификации (паролей). Пользователи хотят оставить свои непросроченные ключи
нетронутыми.
-l, --lock
Заблокировать пароль указанной учётной записи. Этот параметр блокирует пароль, изменяя его
значение на вариант, который не может быть шифрованным паролем (добавляется символ «!» в
начало пароля).
Заметим, что это не блокирует учётную запись. Пользователь всё ещё может войти в систему с
помощью другого способа аутентификации (например, с помощью ключа SSH). Чтобы
заблокировать учётную запись, администратор должен использовать команду usermod
--expiredate 1 (это установит дату устаревания учётной запись равной 2 января 1970 года).
Посетитель с заблокированным паролем не может изменить свой пароль.
-n, --mindays МИН_ДНЕЙ
Задать минимальное количество дней между сменами пароля. Нулевое значение этого поля
указывает на то, что пользователь может менять свой пароль когда захочет.
-q, --quiet
Не выводить сообщений при работе.
-r, --repository РЕПОЗИТОРИЙ
Изменить пароль в РЕПОЗИТОРИИ.
-R, --root КАТ_CHROOT
Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога
КАТ_CHROOT.
-S, --status
Показать состояние учётной записи. Информация о состоянии содержит 7 полей. Первое поле
содержит имя учётной записи. Второе поле указывает, заблокирован ли пароль учётной записи
(L), она без пароля (NP) или у неё есть рабочий пароль (P). Третье поле хранит дату
последнего изменения пароля. В следующих четырёх полях хранятся минимальный срок,
максимальный срок, период выдачи предупреждения и период неактивности пароля. Эти сроки
измеряются в днях.
-u, --unlock
Разблокировать пароль указанной учётной записи. Этот параметр разблокирует пароль,
возвращая его прежнее значение (которое было перед использованием параметра -l).
-w, --warndays ПРЕД_ДНЕЙ
Установить число дней выдачи предупреждения, перед тем как потребуется смена пароля. В
параметре ПРЕД_ДНЕЙ указывается число дней перед тем как пароль устареет, в течении
которых пользователю будут напоминать, что пароль скоро устареет.
-x, --maxdays МАКС_ДНЕЙ
Установить максимальное количество дней, в течении которых пароль остаётся рабочим. После
МАКС_ДНЕЙ пароль нужно изменить.
ПРЕДОСТЕРЕЖЕНИЯ
Сложность пароля проверяется на разных машинах по разному. Пользователю настоятельно
рекомендуется выбирать пароль такой сложности, чтобы ему нормально работалось.
Пользователи не могут изменять свои пароли в системе, если включён NIS и они не вошли на
сервер NIS.
НАСТРОЙКА
На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:
ENCRYPT_METHOD (строка)
Задаёт системный алгоритм шифрования по умолчанию для шифрования паролей (используется,
если алгоритм не указан в командной строке).
Возможны следующие значения: DES (по умолчанию), MD5, SHA256, SHA512.
Замечание: этот параметр переопределяет переменную MD5_CRYPT_ENAB.
MD5_CRYPT_ENAB (логический)
Обозначает, что пароль должен быть зашифрован по алгоритму на основе MD5. Если значение
равно yes, то новые пароли будут зашифрованы по алгоритму на основе MD5, совместимому с
используемым в новых версиях FreeBSD. Он поддерживает пароли неограниченной длины и имеет
более длинную строку соли. Установите в no, если вам нужно копировать шифрованные пароли в
другие системы, которые не поддерживают новый алгоритм. По умолчанию no.
Эта переменная переопределяется переменной ENCRYPT_METHOD или любым параметром командной
строки, который задаёт алгоритм шифрования.
Эта переменная устарела; используйте ENCRYPT_METHOD.
OBSCURE_CHECKS_ENAB (логический)
Включает дополнительные проверки при смене пароля.
PASS_ALWAYS_WARN (логический)
Предупреждать о слабых паролях (но разрешать их использовать) для суперпользователя.
PASS_CHANGE_TRIES (число)
Максимальное количество попыток смены пароля (слишком простого) при непрохождении
проверки.
PASS_MAX_LEN (число), PASS_MIN_LEN (число)
Количество значимых символов в пароле для crypt(). По умолчанию значение PASS_MAX_LEN
равно 8. Не изменяйте, если ваш crypt() лучше. Игнорируется, если значение MD5_CRYPT_ENAB
равно yes.
SHA_CRYPT_MIN_ROUNDS (число), SHA_CRYPT_MAX_ROUNDS (число)
Если значение ENCRYPT_METHOD равно SHA256 или SHA512, эта переменная определяет количество
раундов SHA, используемых алгоритмом шифрования по умолчанию (если количество раундов не
задано в командной строке).
Увеличение количества раундов повышает сложность подбора пароля простым перебором. Но
заметим, что при этом для аутентификации пользователей требуется большее количество
процессорных ресурсов.
Если не задана, то libc выбирает значение количества раундов по умолчанию (5000).
Значения должны лежать в диапазоне 1000-999999999.
Если задано какое-то одно значение — SHA_CRYPT_MIN_ROUNDS или SHA_CRYPT_MAX_ROUNDS — то
будет использовано это значение.
Если SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS, то используется большее значение.
ФАЙЛЫ
/etc/passwd
содержит информацию о пользователях
/etc/shadow
содержит защищаемую информацию о пользователях
/etc/login.defs
содержит конфигурацию подсистемы теневых паролей
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
Программа passwd завершая работу, возвращает следующие значения:
0
успешное выполнение
1
доступ запрещён
2
недопустимая комбинация параметров
3
неожиданная ошибка при работе, ничего не сделано
4
неожиданная ошибка при работе, отсутствует файл passwd
5
файл passwd занят другой программой, попробуйте ещё раз
6
недопустимое значение параметра
СМОТРИТЕ ТАКЖЕ
chpasswd(8), passwd(5), shadow(5), login.defs(5),usermod(8).
shadow-utils 4.2 05/09/2014 passwd(1)
Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)