Как Вы выясняете, где пароли пользователя хранятся для пользователей, которые могут войти в систему? Я знаю, что система использует LDAP для пользователей (имя пользователя, домашний путь, и т.д.), но это не содержит вида паролей. У меня есть доступ к настроенной машине, поэтому как я выясняю, где пароли? (который файл конфигурации?)
Пароли не хранятся themselve. Они преобразовываются функцией, и так произведенное значение, которое называют hash
, хранится.
Если Вы входите в систему, та же функция выполняется на Вашем входе и сгенерированном значении по сравнению с тем в хранимой сумме в /etc/shadow
файл.
Функция является видом, который трудно инвертировать. Таким образом со значением в/etc/shadow, Вы не можете вычислить старый пароль, и ключ там не полезен для входа в систему - Вам нужен пароль.
С грубой силой можно попытаться генерировать такой пароль, и для общих названий как 123456, password, asdf, secret, 1111
и так далее теневые значения уже известны, и сохраненные в так называемом rainbow-tables
.
Для предотвращения нападений с таблицами радуги функция пароля может использовать a salt
, который влияет на результат, что означает, что каждый пароль использует различную соль, сохраненную в первых двух байтах строки хэша пароля (благодаря psusi, кто исправил меня), так, чтобы Вам была нужна другая таблица радуги для каждого пароля, который не очень практичен - это занимает слишком много времени генерировать их и дорого.
Я не уверен, использует ли человечность соль. Мы можем ожидать кого-то, кто объясняет это нам, или Вы могли генерировать того же пользователя с тем же паролем на двух машинах и сравнить значение в/etc/shadow.
Пароли (или лучшие хеши) по всей вероятности хранятся в сервере LDAP. "По всей вероятности" означает, что у Вас могла быть очень странная установка, где они не. Конфигурация LDAP очень гибка, но это также означает, что, не осматривая файлы конфигурации четкий ответ о том, как это сделано в Вашей ситуации, не может быть дан. Вы, вероятно, изучили /etc/ldap.conf
на клиенте для деталей конфигурации?
Одна возможная установка для аутентификации LDAP похожа на это: клиентское поле берет имя пользователя и пароль от входа в систему, и выполняет связывание с сервером LDAP с этой информацией. Сервер LDAP проверяет имя пользователя и пароль и любую успешность или неуспешность возвратов. В этой установке клиентское поле никогда не видит хеш сохраненного пароля с сервера LDAP.
Вы знаете тип используемого сервера LDAP? Видите ли Вы, что хешированные пароли пользователя зависят от установки сервера LDAP. См. как пример http://www.faqs.org/docs/securing/chap26sec213.html на том, что Вы могли настроить на сервере OpenLDAP.
Ответ на хешировании пароля от "неизвестного пользователю" корректен, это только, в котором не хранятся хеши /etc/shadow
но в сервере LDAP. Хеширование себя могло бы также быть выполнено сервером LDAP а не клиентским полем.
Вы пробовали
- phpldapadmin?
- ldapsearch - LLL-x-b "dc=your, dc=domain" uid =* (или замена * именем пользователя, возможно, это - cn вместо uid),
Если пароли хранятся в ldap, необходимо видеть их с этим методы.
Если компьютер является контроллером домена, возможно, ему установили smbldap-инструменты, таким образом, можно просто изменить пароли с smbldap-passwd именем пользователя
Вы могли бы также хотеть проверить свою конфигурацию pam.d (/etc/pam.d/common -*) для обнаружения, какой механизм входа в систему компьютер использует.