man 5 sudoers
говорит (раздел «Формат файла Sudoers»):
Когда для пользователя совпадают несколько записей, они применяются по порядку. При наличии нескольких совпадений используется последнее совпадение (которое не обязательно является наиболее конкретным совпадением).
Таким образом, вы должны иметь эти строки именно в таком порядке:
username ALL=(ALL) ALL username ALL=(ALL) NOPASSWD: /home/username/script.sh
и любая строка, которая также соответствует (например, например %sudo ALL=(ALL:ALL) ALL
), должна быть перед NOPASSWD
строкой.