Аутентификация по паролю для доступа к sudo не ограничивает количество выполняемых команд.
например
myuser ALL=(ALL) NOPASSWD: ALL
youruser ALL=(ALL) ALL
позволяет обоим пользователям выполнять одни и те же команды, просто вам нужно ввести свой пароль, а я этого не делаю.
Вместо этого идея состоит в том, чтобы предоставлять пользователям только те привилегированные команды, которые им нужны, а не «ВСЕ» команды. Поэтому, если пользователю user1 нужно только перезагрузить сервер, вы можете дать ему
user1 ALL=(root) NOPASSWD: /usr/sbin/reboot
Теперь все, что они могут сделать, это перезагрузить сервер.
Это следует принципу наименьших привилегий; давайте людям только те команды, которые им нужны.
Дополнительная литература:https://www.sweharris.org/post/2018-08-26-minimal-sudo/
Вы можете использовать diff --unified file.orig file
после patch --merge
, чтобы создать новый файл исправления на основе измененного файла без git. Однако у него не будет той же информации.