ROZWIĄZANIE 1: newgrp
Prostym sposobem rozwiązania twojego przypadku użycia byłoby użycie :NOPASSWDw połączeniu z hasłem grupy i grupy:
Dodaj wiersz do sudoers:
%rudo ALL=(ALL:ALL) NOPASSWD:ALL
Utwórz grupę chronioną hasłem:
groupadd rudo
gpasswd rudo # Enter passwd
Teraz, gdy logujesz się jako użytkownik nieuprzywilejowany (zakładając, że nie jesteś jeszcze w rudogrupie), zaloguj się do rudogrupy, w którym to momencie pojawi się monit o hasło.
login user
newgrp rudo
Teraz możesz uruchamiać się bez sudohasła, o ile jesteś zalogowany w grupie.
ROZWIĄZANIE 2: runaspw
Lepszy, być może bardziej bezpieczny sposób, aby to zrobić runaspw. runaspwjest powiązany z runas_defaultopcją, więc musisz również tę opcję dodać.
Zakładając, że masz już domyślny %sudowpis grupy:
%sudo ALL=(ALL:ALL) ALL
dodaj te linie do pliku sudoers:
Defaults:%sudo runas_default=sudo
Defaults:%sudo runaspw
Teraz dodaj nowego sudoużytkownika z hasłem:
useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo
Teraz użytkownicy grupy sudo zostaną poproszeni o podanie hasła użytkownika sudo, ale tylko użytkownicy w grupie sudo będą mogli korzystać z sudo (w przeciwieństwie do powyższego rozwiązania grupowego, gdzie każdy w grupie lub z hasłem grupy może sudo).
Drobnym problemem jest to, że domyślny użytkownik runas jest teraz sudotak sudo jako root, musisz jawnie określić root:
sudo -u root <cmd>
Ale dość łatwe do zdefiniowania aliasu ( alias sudo='sudo -u root') lub pośredniego polecenia sudo.