O problema que vejo é que as senhas locais do Unix são hashes salgados. Eu não acho ActiveDirectory, e não há como obter de um hash salgado para uma senha de texto sem formatação. Para fazer isso, você deve essencialmente capturar a senha quando o usuário a digita e a valida contra o hash. Você pode fazer isso (pode ou não ser fácil), mas é errado em princípio.
Por que você está tão relutante em mudar as senhas? Eu investigaria isso primeiro, porque me parece que qualquer que seja a razão por trás dessa relutância, é provavelmente uma preocupação de segurança.