NOPASSWD
no tiene un impacto importante en la seguridad. Su efecto más obvio es proporcionar protección cuando el usuario deja desatendida su estación de trabajo: un atacante con acceso físico a su estación de trabajo puede extraer datos, realizar acciones y plantar malware con los permisos del usuario, pero no elevar su acceso a la raíz. Esta protección tiene un uso limitado porque el atacante puede plantar un programa de tipo keylogger que registra la contraseña del usuario la próxima vez que la ingrese en un aviso de sudo o en un protector de pantalla.
No obstante, requerir la contraseña eleva la barra del atacante. En muchos casos, la protección contra atacantes no sofisticados es útil, especialmente en escenarios de estaciones de trabajo desatendidas donde el ataque es a menudo una oportunidad y el atacante puede no saber cómo encontrar y configurar malware discreto a corto plazo. Además, es más difícil ocultar malware cuando no tiene permisos de root, no puede ocultarse de root si no tiene root.
Hay algunos escenarios realistas donde la falta de una contraseña protege incluso contra atacantes sofisticados. Por ejemplo, una computadora portátil robada: la computadora portátil del usuario es robada, completa con claves SSH privadas; o bien el ladrón logra adivinar la contraseña para el archivo de clave (tal vez por fuerza bruta), o obtiene acceso a ellos desde un volcado de memoria de un agente clave. Si se detecta el robo, esta es una señal para investigar la actividad reciente en la cuenta de ese usuario, y esto significa que se debe detectar un malware plantado. Si el atacante solo tenía acceso de nivel de usuario, cualquier cosa que hiciera dejaría rastros en los registros; si el atacante obtuvo la contraseña del usuario y ejecutó sudo, todos los registros están ahora comprometidos.
No sé si las desventajas de NOPASSWD
equilibran las ventajas para su caso de uso. Necesita equilibrar eso con todos los otros factores de su situación. Por ejemplo, parece que usted permite pero no obliga a tener contraseñas diferentes. ¿Puede utilizar una base de datos de cuenta centralizada? ¿Cuánta contención necesitas entre tus sistemas? ¿Está considerando alternativas a Ansible que admitirían contraseñas de sudo diferentes? ¿Has considerado otros mecanismos de autenticación?