NOPASSWD
non ha un impatto significativo sulla sicurezza. Il suo effetto più ovvio è quello di fornire protezione quando l'utente lascia la propria workstation incustodita: un utente malintenzionato con accesso fisico alla propria workstation può quindi estrarre dati, eseguire azioni e installare malware con le autorizzazioni dell'utente, ma non elevare il proprio accesso a root. Questa protezione è di uso limitato perché l'utente malintenzionato può installare un programma di tipo keylogger che registra la password dell'utente al successivo inserimento in un prompt sudo o in uno screensaver.
Tuttavia, richiedendo la password si alza la barra per l'attaccante. In molti casi, la protezione da aggressori non sofisticati è utile, in particolare negli scenari di workstation non presidiate in cui l'attacco è spesso un'opportunità e l'utente malintenzionato potrebbe non sapere come trovare e configurare malware discreto con breve preavviso. Inoltre è più difficile nascondere il malware quando non hai i permessi di root - non puoi nasconderlo da root se non hai root.
Ci sono alcuni scenari realistici in cui la mancanza di una password protegge anche contro attaccanti sofisticati. Ad esempio, un laptop rubato: il laptop dell'utente viene rubato, completo di chiavi SSH private; o il ladro riesce a indovinare la password per il file chiave (magari con la forza bruta), o ottiene l'accesso ad essi da un dump della memoria di un agente chiave. Se viene rilevato il furto, questo è un segnale per indagare sulle attività recenti sull'account dell'utente, e questo significa che deve essere rilevato un malware piantato. Se l'utente malintenzionato aveva solo l'accesso a livello utente, qualsiasi cosa avesse fatto lascerebbe tracce nei log; se l'utente malintenzionato ha ottenuto la password dell'utente e ha eseguito sudo, tutti i log sono ora compromessi.
Non so se i lati negativi di NOPASSWD
bilanciano i lati positivi per il tuo caso d'uso. Devi bilanciarlo contro tutti gli altri fattori della tua situazione. Ad esempio, sembra che tu permetti ma non imponga di avere password diverse. Puoi invece utilizzare un database di account centralizzato? Di quanto contenimento hai bisogno tra i tuoi sistemi? State considerando alternative ad Ansible che supporterebbero diverse password sudo? Hai preso in considerazione altri meccanismi di autenticazione?