sudo
jest równie bezpieczne lub niepewne, jak jego popularne alternatywy, takie jak su
.
Najpopularniejsza alternatywa sudo
to zezwolenie niektórym lub wszystkim użytkownikom na podniesienie ich uprawnień za pomocą su
. Najczęściej wszyscy użytkownicy mogą to zrobić, pod warunkiem że znają hasło użytkownika docelowego . W przeciwieństwie do sudo
, które prawie zawsze wymaga podania hasła użytkownika (i jest ograniczone tylko do zaufanych użytkowników), su
wymaga hasła użytkownika docelowego .
Niektórzy uważają, że dzięki temu su
jest bezpieczniejszy niż sudo
, ale tak nie jest. su
jest przedmiotem tego samego rodzaju ataków, co sudo
. Załóżmy, że jesteś użytkownikiem, który czasami uruchamia su
, aby zostać rootem. Załóżmy ponadto, że osoba atakująca, która nie zna hasła roota i nie może jeszcze wykonywać działań jako użytkownik root, mimo to udaje się wykonać dowolny kod z konta użytkownika innego niż root. Tak jak ten atakujący może sprawić, że po uruchomieniu sudo
uruchomisz jego złośliwe polecenie, tak samo może on sprawić, że po uruchomieniu su
you ' uruchomią swoje złośliwe polecenie.
Oznacza to, że technika w odpowiedzi reeda działa równie dobrze, aby wprowadzić fałszywe polecenie su
, które przechwytuje hasło docelowym użytkownikiem (którym, gdy su
jest używany do administrowania systemem, jest zwykle root).
Ale można zrobić coś lepszego niż jedno i drugie, lub w celu zminimalizowania ryzyka.
Gdy ktoś będzie mógł wykonać dowolne polecenia tak jak Ty, zwykle może wprowadzić dowolne zmiany w sposobie zachowania powłoki, a tym samym utworzyć fałszywe sudo
, > su , doas
lub jakiekolwiek inne polecenia zwiększające uprawnienia.
Jednakże, o ile możesz uniknąć interakcji z fałszywym ekranem logowania , możesz temu zaradzić, mając osobne konta użytkowników administracyjnych i nieadministracyjnych. To nie brzmi jak nowy pomysł i oczywiście nie jest, ale jest zaskakujące, jak rzadko jest to wykonywane naprawdę .
Twoje konto administracyjne może po prostu bądź kontem roota. Ale jeśli chcesz skorzystać z zalet niezalogowania się jako root, które obejmują logowanie (w celu ustalenia, co poszło nie tak w przypadku niezłośliwych błędów) i możliwość uruchamiania programów, które nie są przeznaczone do uruchamiania jako root (większość interfejsy graficzne), możesz mieć dwa konta inne niż root, z których jedno jest używane do administrowania (w których uruchamiasz sudo
lub su
w razie potrzeby), a drugie których nie.
To konto powinno, jeśli oczywiście nie dzielić poświadczenia dostępu z kontem nieadministracyjnym. Nie powinny mieć identycznych ani podobnych haseł i powinny mieć oddzielne pary kluczy. Ponadto nie możesz podwyższać uprawnień z konta nieadministracyjnego do konta administratora, z tego samego powodu nie możesz podwyższać uprawnień z konta nieadministracyjnego do konta root.
Jeśli to zrobisz, pojawi się nawet argument dla sudo
zamiast jego alternatyw.
W tej konfiguracji jest zaletą sudo
w porównaniu z su
, choć nie jest to decydująca korzyść. Możesz uniknąć przypadkowego użycia niewłaściwego konta - tego, które jest używane do wszelkiego rodzaju innych rzeczy nieadministracyjnych, które mogą narazić go na większe ryzyko - do administrowania systemem, czyniąc go zwykłym kontem ograniczonego użytkownika którego nie ma na liście i nie należy do żadnej z wymienionych grup w pliku / etc / sudoers
.
Ale możesz również osiągnąć ten cel za pomocą su
, albo ćwicząc odpowiednią samodyscyplinę i upewniając się, że nigdy nie korzystasz z su
z konta, które zaprojektowałeś jako nieadministracyjne lub uniemożliwiając kontom wyznaczonym jako nieadministracyjne podnoszenie uprawnień za pomocą su
. (Jednym ze sposobów na osiągnięcie tego w systemie GNU / Linux jest AppArmor, dzięki czemu Ubuntu uniemożliwił kontowi gościa kiedykolwiek pomyślne użycie su
- w wersjach Ubuntu, które były dostarczane z konta gościa włączone.)
Ryzyko używania sudo
lub su
w zwykły sposób może być dla Ciebie akceptowalne.
Biorąc to wszystko pod uwagę, nie mówię, że koniecznie musisz to zrobić. To zależy od Ciebie lub, w stosownych przypadkach, od Ciebie i innych interesariuszy.
Dla wielu osób ryzyko związane z używaniem tego samego konta jest (a) podniesione do rangi root z sudo
(lub podobne mechanizmy, takie jak Polkit) lub su
(lub podobne mechanizmy, takie jak doas
), które są używane dla (b) zadania nieadministracyjne, takie jak uruchamianie przeglądarki internetowej, mogą być akceptowalnym kosztem wygody.