Inną zaletą używania, visudo -f
jak wspomniano w niektórych odpowiedziach, jest odpowiednia opcja -c
lub --check
weryfikacja, czy nie masz nieprawidłowych informacji w pliku sudoers.d lub innym pliku, który możesz chcieć umieścić w sudoers.d. Jest to NAPRAWDĘ przydatne w wymienionych przypadkach zautomatyzowanych narzędzi, ponieważ można uruchomić np
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
To po cichu sprawdza plik (brak danych wyjściowych z powodu -q) i tylko jeśli to NIE zwróci błędu (wyjście 1 oznacza nieprawidłowy plik sudoers), wówczas skopiuje plik do sudoers.d, w ten sposób możesz utworzyć plik i pracuj nad nim bez konieczności sudo visudo -f /etc/sudoers.d/myfile
poprawiania go za pierwszym razem (używanie musi zakończyć się powodzeniem lub odrzuca zawartość, jeśli jej nie naprawisz).
Ponadto należy zachować ostrożność w odniesieniu do tych stwierdzeń z innych odpowiedzi.
Z mojego doświadczenia wynika, że reguły dotyczące plików w tym katalogu są luźniejsze niż w przypadku / etc / sudoers. Obejmuje to:
Błędy w pliku nie spowodowały niepowodzenia sudo. Plik został jednak zignorowany. Zasady wydawania uprawnień wydają się mniej surowe. Pozwalam odpowiedniej grupie odczytać plik. Nie wierzę, że jest to możliwe w przypadku / etc / sudo.
Pliki w /etc/sudoers.d muszą być zgodne z tą samą składnią, co / etc / sudoers, ponieważ pod okładkami system po prostu łączy wszystkie pliki z ostatnim w „wygrywającym”, jeśli jest wiele wpisów dla tego samego pojedyncze ustawienie.
Jeśli uprawnienia są strasznie niepoprawne (zapisywalne na całym świecie) dla plików w /etc/sudoers.d/, wówczas są one ignorowane, może to powodować, że nieprawidłowe pliki są pomijane, w przeciwnym razie możesz poważnie złamać sudo
polecenie, mając nieprawidłowe sudoers. d plik z prawidłowymi uprawnieniami.
Możesz zezwolić plikom sudoers na odczytanie na całym świecie, jeśli przypadkowo zezwolisz „innemu” na uprawnienie do zapisu potrzebne do sudo jako inny użytkownik lub z terminala głównego uruchom tę komendę. Może to również spowodować uszkodzenie, jeśli plik należy do kogoś innego niż root: root.
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
Właśnie potwierdziłem, że jeśli uruchomię, nie chmod o+w /etc/sudoers.d/vagrant
będę mógł dłużej sudo jako włóczęgi, wyświetli monit o podanie hasła, a następnie się nie powiedzie.
Kiedy pobiegłem, sudo -l
aby wyświetlić zastosowane uprawnienia polecenia jako inny prawidłowy użytkownik sudo, otrzymałem również ostrzeżenie o uprawnieniach do plików. To jest to samo polecenie, którego użyłem, aby potwierdzić, że użytkownik „włóczęga” stracił sudo, kiedy zastosowałem o+w
uprawnienia do pliku, nadając mu uprawnienia sudo.