В этот ответ предлагается, чтобы UNIX-способ добавления !
перед полем пароля мог бы Работа. Я утверждаю, что это не чистое решение. Это не сделает вход в систему невозможным, а просто изменит пароль на буквальное содержание поля пароля (из которого первый символ - !
).
Например, предположим, что поле пароля теперь выглядит как это:
!{CRYPT}$6$rounds=1000000$xxx$yyy
Здесь xxx
обозначает соль, а yyy
- хэш.
Эта строка теперь будет паролем пользователя. Для многих практических целей это означает, что пользователь больше не может войти в систему, поскольку не знает своей соли. Но, теоретически, угадав соль, логин все же возможен. Что еще хуже, если злоумышленник получит базу данных LDAP, он теперь может легко войти в эту "заблокированную" учетную запись, поскольку хеширование, очевидно, больше не используется.
Как это можно сделать вместо этого?
Измените поле пароля на следующее:
{CRYPT}!$6$rounds=1000000$xxx$yyy
Или следующее:
{CRYPT}$6$rounds=1000000$xxx$!yyy
Согласно моим тестам, это делает невозможным аутентификацию пароля.
Однако это не распространяется на другие способы аутентификации, например с помощью ключа SSH. Чтобы скрыть это, по крайней мере, оболочка должна быть установлена на / bin / false
. Настоятельно рекомендую совместить это с другой мерой. В комментариях предлагалось отключить ~ / .ssh / authorized_keys
. Вероятно, более безопасный способ - изменить основную группу пользователя на группу, которой не разрешено подключаться к машине по SSH (для этого можно использовать функцию SSHD DenyGroups
или AllowGroups
. ).
Если вам не нужно сохранять существующий хэш пароля, вы можете просто удалить поле userPassword из записи LDAP. Конечно, если вы повторно активируете учетную запись, пользователю потребуется установить новый пароль.