Dlaczego i jak edytować plik Sudoers w systemie Linux

Linux Sudoers File Featured

W twoim systemie Linux znajduje się plik o nazwie „sudoers”. Jest to plik tekstowy, który kontroluje najgłębsze poziomy twojego systemu uprawnień. Pozwala lub odmawia użytkownikom uzyskania dostępu superużytkownika i posiada pewne specjalne preferencje dla sudo.

Co to jest plik sudoers?

Plik sudoers to plik tekstowy, który można znaleźć w katalogu „/ etc” (dowiedz się więcej o katalogu Linux tutaj). Jego głównym celem jest kontrolowanie tego, jak sudo działa na twoim komputerze i określa, którzy użytkownicy i grupy mogą działać z uprawnieniami administratora.

Ponadto plik sudoers może również umożliwiać określonemu użytkownikowi uruchamianie poleceń jako inny użytkownik w systemie.

Sudoers Edytuj próbkę danych WWW Edytuj

Na przykład, jeśli masz serwer WWW, możesz skonfigurować sudoers, aby zezwalać innym użytkownikom tylko na uruchamianie poleceń jako „www-data”.

Kiedy muszę edytować plik sudoers?

Podczas pierwszej instalacji systemu Linux, takiego jak Ubuntu, instalator automatycznie doda pierwszego użytkownika do pliku sudoers. Ma to na celu natychmiastowe uruchomienie zadań administracyjnych za pomocą sudo polecenie po instalacji.

Sudoers Edytuj Pierwsze użycie Sudo

Jeśli jednak utworzysz nowe konto użytkownika, domyślnie nie będzie ono miało uprawnień administratora. Jeśli chcesz przyznać mu uprawnienia administratora, musisz edytować plik sudoers i dodać do niego to konto użytkownika.

Jak mogę edytować sudo?

Nigdy nie edytuj pliku sudoers w normalnym edytorze tekstu. Może to prowadzić do jednoczesnej edycji i uszkodzonych plików, potencjalnie uniemożliwiając dostęp administratora. Sudo muszą być edytowane przez uruchomienie visudo w Terminalu, na przykład:

Sudoers Edytuj Visudo

Pamiętaj, że musisz użyć sudo biegać visudo. Spowoduje to otwarcie pliku sudoers w domyślnym edytorze tekstu w Terminalu, którym domyślnie jest Nano.

Sudoers Edytuj przykładowy plik Sudoers

Co może zrobić zmiana pliku sudoers?

Jak omówiono powyżej, głównym zadaniem pliku sudoers jest zdefiniowanie, którzy użytkownicy i grupy mogą korzystać z sudo. Jednak ten plik zawiera również kilka opcji, które pozwolą Ci skonfigurować zachowanie sudo.

Niektóre z tych opcji obejmują możliwość zmiany limitu czasu eskalacji uprawnień. Istnieją również opcje zmiany domyślnego edytora visudo i podstawowego hartowania, takiego jak użycie pty.

Zmień limit czasu sudo

Domyślnie wprowadzenie hasła sudo podnosi twoje uprawnienia, dopóki nie zamkniesz powłoki lub nie wyjdziesz. Może to być niebezpieczne, a niektórzy wolą wpisywać swoje hasło za każdym razem, gdy używają sudo.

  1. Biegać sudo visudo jak wspomniano powyżej.
  2. Naciskać Alt + / aby przejść do końca dokumentu. Jeśli używasz Vi lub Vim, naciśnij Zmiana + G zamiast.
Sudoers Edytuj dolny plik Sudoers
  1. Utwórz nową linię na dole dokumentu i dodaj następującą linię:
Sudoers Edycja limitu czasu

Spowoduje to ustawienie limitu czasu sudo na zero sekund, więc po wykonaniu pierwszego polecenia będziesz mieć uprawnienia sudo przez zero sekund. Jeśli wolisz inny interwał, zamiast tego wprowadź tę wartość w sekundach.

Możesz także ustawić limit czasu na „-1”, co daje nieskończony okres prolongaty. Nie rób tego. To wygodny sposób na przypadkowe zniszczenie systemu pewnego dnia.

  1. Naciskać klawisz kontrolny + o ocalić i klawisz kontrolny + x do wyjścia. Z drugiej strony, jeśli używasz Vi lub Vima, możesz nacisnąć WYJŚCIE a następnie wpisz :wq do wyjścia.
Czytać  Jak włączyć Wake-on-LAN w Ubuntu?

Ograniczenie, kto i do czego może używać Sudo

Jeśli masz wielu użytkowników uzyskujących dostęp do tego samego systemu za pośrednictwem powłok, możesz kontrolować ich dostęp, ustawiając wartości w sudo.

Tworzenie niestandardowej reguły dla użytkowników jest niezwykle łatwe. Reguła uprawnień w pliku sudoers wygląda mniej więcej tak:

  • ten username pole wskazuje, którego użytkownika w systemie będzie dotyczyć ta reguła.
  • ten hostlist mówi sudo, aby zastosowało tę regułę na liście hostów systemowych, które są znane sudo. Domyślnie sudo rozpoznaje tylko komputer lokalny jako swój host.
  • ten userlist mówi sudo, które konto użytkownika może zastąpić pole nazwy użytkownika.
  • Wreszcie, commandlist to lista oddzielona przecinkami, która wskazuje, które programy w systemie użytkownik może uruchomić jako ten użytkownik.

Wiedząc o tym, rozważmy następujący przykład:

Ta linia pozwala użytkownikowi ramces na zastępowanie siebie jako dowolnego użytkownika i uruchamianie dowolnej komendy na dowolnym hoście. To dlatego, że ALL to specjalna wartość w pliku sudoers oznaczająca „brak ograniczeń”.

Sudoers Edytuj Niebezpieczne Sudo Edytuj

Jednak oznacza to również, że ustawienie tej reguły dla użytkowników jest niebezpieczne. Dzieje się tak, ponieważ pozwoli użytkownikowi uruchomić dowolne polecenie i uzyskać dostęp do dowolnego pliku jako dowolny użytkownik.

W związku z tym bardziej odpowiednia i bezpieczniejsza zasada może wyglądać mniej więcej tak:

W tym przypadku użytkownik ramces może nadal działać jako root, ale nie może go zastąpić innym użytkownikiem.

Ograniczanie rootowania w użytkownikach i grupach

Aby uzyskać większą kontrolę, możesz dodać linię podobną do poniższej, która pozwoliłaby tylko na uruchomienie użytkownika „ramces” apt update.

Sudoers Edytuj Sudo z ograniczeniami

Umieść % przed użytkownikiem i zdefiniuje grupę. Poniższy wiersz umożliwiłby każdemu użytkownikowi w grupie „admin” posiadanie uprawnień na poziomie root. Byłaby to grupa zdefiniowana przez grupy uprawnień twojego systemu.

Hartowanie sudoers z use_pty

Innym zastosowaniem pliku sudoers jest używanie sudo tylko w ograniczonym środowisku piaskownicy.

Może to być niezwykle pomocne, jeśli korzystasz z sudo na niezabezpieczonej maszynie, która jest stale połączona z Internetem. Wiedząc o tym, możesz skorzystać z tej funkcji, przechodząc do pliku „/etc/sudoers” i wprowadzając następujący wiersz kodu:

Sudoers Edytuj Użyj opcji Pty

Korzystanie z sudo bez hasła

Inną opcją, którą możesz włączyć w pliku sudoers, jest możliwość uruchamiania sudo bez hasła. Może to być szczególnie przydatne, jeśli ciągle wykonujesz polecenia administratora na swoim komputerze.

Aby to włączyć wystarczy dodać jeden tag w regule bieżącego użytkownika:

Sudoers Edytuj opcję Nopasswd

Jeśli zauważysz, główną różnicą między tym a powyższym przykładem jest dodanie znaku NOPASSWD:.

Zmień edytor Visudo

Wreszcie, w zależności od używanej wersji Linuksa, istnieją dwa podstawowe sposoby zmiany edytora.

W przypadku Ubuntu będziesz chciał uruchomić polecenie Terminal poniżej:

Zobaczysz coś takiego:

Jeśli chciałbyś wybrać vima jako swój edytor visudo z domyślnego nano, naciśnij jego numer wyboru 3 następnie naciśnij Enter.

Sudoers Edytuj edytor zmian

W przypadku innych odmian Linuksa będziesz chciał dodać nową linię do pliku „~/.bashrc”, jak pokazano poniżej:

Czytać  Jak skonfigurować serwer SFTP w systemie Linux

Następnie zapisz plik. To ustawiłoby twój edytor visudo na vim.

Gratulacje! Wiesz już, jak wprowadzać podstawowe zmiany w pliku sudoers. Co więcej, masz teraz podstawowe pojęcie o tym, jak działa sudo. Jak również dodatkowe opcje, które można włączyć za pomocą pliku sudoers.

Jeśli cała ta rozmowa sprawiła, że ​​zaciekawił Cię Linux. Możesz sprawdzić ten artykuł, w którym mówimy o najlepszych dystrybucjach Linux-libre, które możesz dziś zainstalować.

Często Zadawane Pytania

1. Otrzymałem błąd „(nazwa użytkownika) nie znajduje się w pliku sudoers”. Czy moja instalacja sudo jest zepsuta?

Zupełnie nie. Dzieje się tak, gdy użytkownik, którego używasz, nie ma wpisu reguły w pliku sudoers. Może to oznaczać, że sam użytkownik nie należy do grupy sudoers lub nie należy do żadnej grupy należącej do grupy sudoers.

Wiedząc o tym, naprawienie tego jest stosunkowo łatwe. Najpierw musisz zalogować się na swoje konto root. Możesz to zrobić, wpisując su a następnie wpisując hasło roota. Stamtąd możesz wpisać sudo visudo aby wejść do pliku sudoers.

Po zakończeniu ostatnią rzeczą, którą musisz zrobić, to dodać swoją nazwę użytkownika do pliku sudoers. Na przykład jest to fragment pliku sudoers dla nowego konta o nazwie alice:

2. Jakie są problemy z tworzeniem niestandardowych reguł użytkownika?

Jednym z problemów, które możesz napotkać podczas tworzenia reguł niestandardowych, są symbole wieloznaczne. Są to symbole, których możesz użyć do stworzenia reguły, która może mieć zastosowanie do wielu przypadków. Na przykład jest to reguła, która pozwala administratorowi grupy na uruchomienie cat w dowolnym pliku w „/var” jako root.

Problem polega na tym, że ten symbol wieloznaczny może również zastępować spacje. W związku z tym ustawienie go w ten sposób może również zezwolić na polecenia takie jak:

Z tego powodu dobrą praktyką jest unikanie używania symboli wieloznacznych podczas tworzenia reguł. Zamiast tego możesz użyć su do zadań jednorazowych lub ustaw uprawnienia pliku tak, aby sudo nie było konieczne.

3. Czy mogę uniemożliwić sudo wysyłanie poczty systemowej za każdym razem, gdy uruchamiam się jako root?

Tak! Możesz łatwo uniemożliwić sudo wysyłanie poczty, używając tagu NOMAIL. Na przykład to jest wpis reguły dla mojego konta użytkownika w pliku sudoers:

Kredyt obrazu: bohater z obwodem komputerowym przez 123RF

Czy ten artykuł jest przydatny?

Zapisz się do naszego newslettera!

Nasze najnowsze samouczki dostarczane prosto do Twojej skrzynki odbiorczej