Хорошо, вот что действительно делает программа passwd(1)
! (и делает это с эпохи unix). Он запрашивает пароль, поэтому, если пользователь эффективно взломал учетную запись и не знает пароль, он не сможет изменить пароль и не сможет также получить доступ сервис. Но, вероятно, если пользователь смог обойти защиту другими способами, кроме получения пароля, он нарушил безопасный доступ к системе, и почему бы тогда не стать root
? в этом случае он сможет изменить пароль для доступа к вашей системе и восстановить старый после получения доступа, даже не подозревая об этом (ему нужно только скопировать зашифрованный пароль в файл /etc/shadow
, изменить пароль, получить доступ к вашему восстановите зашифрованный пароль из созданной им копии). Только если исходный пользователь попытается получить доступ к системе при смене пароля, он обнаружит вторжение, иначе в конце все будет так, как до изменения.
В любом случае, взлом системы Unix на этом уровне дает вам больше возможностей, и он сможет атаковать вашу систему с задней стороны, получая доступ к внутренним файлам данных или базам данных, лучше как root, чем как первоначальный пользователь.
Ваша идея хороша, если пользователи не против использования своих паролей каждый раз, когда они используют сокет, подумайте об этом. Вы будете спрашивать пароли хотя бы время от времени ... и вероятность того, что пользователь будет взломан без знания пароля, довольно низка. Как и все спецификации, связанные с безопасностью, все зависит от ценности информации, которая сохраняется за этими сокетами.