Jednym z najbardziej znanych poleceń w terminalu, zarówno wśród nowych, jak i doświadczonych użytkowników Linuksa, jest sudo. Umożliwia ono użytkownikowi wykonywanie poleceń z uprawnieniami administratora bez potrzeby logowania się na konto root. To niezwykle wygodne, zwłaszcza dla osób, które nie chcą ciągle przełączać się między kontami. Co więcej, korzystanie z sudo zwiększa bezpieczeństwo systemów Linux.
W dzisiejszych czasach rzadko zastanawiamy się nad sudo, ponieważ podczas instalacji systemu Linux jest ono zazwyczaj automatycznie skonfigurowane i gotowe do użycia.
Instalacja Sudo
Choć może to wydawać się zaskakujące, nie wszystkie dystrybucje Linuksa mają sudo zainstalowane od razu. W niektórych przypadkach może być nawet całkowicie brakować tego narzędzia, co oznacza, że użytkownik musi je zainstalować samodzielnie. Proces instalacji sudo jest prosty i dostępny w każdej dystrybucji Linuksa. Możesz odwiedzić Pkgs.org, aby dowiedzieć się, jakie pakiety są potrzebne do zainstalowania sudo na Twoim systemie. Alternatywnie, możesz skorzystać z poniższych poleceń, aby zainstalować je w swoim systemie operacyjnym.
Uwaga: poniższe instrukcje dotyczą instalacji sudo w dystrybucjach Linuksa, które mogą nie mieć go zainstalowanego domyślnie lub nie być w pełni skonfigurowane.
Debian
su - apt-get install sudo
Arch Linux
su - pacman -S sudo
Fedora
su - dnf install sudo
OpenSUSE
su - zypper install sudo
Gentoo / Funtoo
su -
emerge app-admin/sudo
Dodawanie użytkowników do sudo przez grupy
Najłatwiejszym sposobem na zarządzanie użytkownikami w pliku sudoers jest utworzenie grupy, która ma przyznany dostęp do sudo, a następnie dodanie do niej użytkowników. Zazwyczaj polega to na dodaniu ich do grupy „wheel” lub, alternatywnie, grupy „sudo”.
Nazwa grupy może różnić się w zależności od dystrybucji Linuksa. Aby sprawdzić, jaką grupę używa Twój system, uruchom polecenie cat i sprawdź zawartość pliku /etc/sudoers.
su - cat /etc/sudoers | more
Znajdź linijkę zawierającą „Zezwól członkom grupy sudo na wykonanie dowolnego polecenia”. Pod tym powinny znajdować się jedne z poniższych dwóch linii:
%sudo ALL=(ALL:ALL) ALL
lub
%wheel ALL=(ALL:ALL) ALL
Zidentyfikuj, która grupa (wheel lub sudo) jest wymieniona w linii, a następnie dodaj istniejącego użytkownika do tej grupy, aby przyznać mu uprawnienia sudo.
su –
usermod -a -G sudo nazwa_użytkownika
lub
usermod -a -G wheel nazwa_użytkownika
Pamiętaj, aby powtórzyć ten proces dla wszystkich użytkowników, którym chcesz przyznać dostęp do sudo.
Dodawanie użytkowników bezpośrednio do pliku sudoers
Kolejnym sposobem przyznania użytkownikom dostępu do sudo jest dodanie ich bezpośrednio do pliku sudoers. Jest to nieco bardziej skomplikowane niż poprzednia metoda, ale może być bardziej odpowiednie, jeśli preferujesz unikać zarządzania grupami w Linuksie. Aby to zrobić, otwórz terminal i zaloguj się jako root za pomocą polecenia su.
su -
Kiedy masz już dostęp do konta root, możesz przejść do edycji pliku /etc/sudoers. Należy pamiętać, że edycja tego pliku MUSI być przeprowadzona za pomocą polecenia visudo. Modyfikacja pliku /etc/sudoers w inny sposób może doprowadzić do problemów i jest niebezpieczna. Aby to zrobić, wpisz:
EDITOR=nano visudo
Określenie EDITOR przed visudo pozwoli na użycie edytora Nano zamiast Vi. Następnie przewiń do sekcji „Specyfikacja uprawnień użytkownika” i pod linią definiującą „root” dodaj nową linię z uprawnieniami dla swojego użytkownika:
nazwa_użytkownika ALL=(ALL:ALL) ALL
Zapisz zmiany w edytorze Nano za pomocą Ctrl + O, a następnie zamknij edytor za pomocą Ctrl + X. Od tego momentu użytkownik powinien mieć możliwość korzystania z poleceń sudo.
Sudo bez hasła
Możliwość korzystania z sudo bez podawania hasła działa na zasadzie tradycyjnych uprawnień sudo. Aby ją włączyć, należy skonfigurować to w pliku sudoers. Niektóre dystrybucje Linuksa oferują prostą konfigurację tej opcji, podczas gdy inne mogą nie mieć tego odniesienia w ogóle.
Aby sprawdzić, czy Twój plik sudoers obsługuje tę opcję, uruchom polecenie cat.
cat /etc/sudoers/ | more
%sudo ALL=(ALL:ALL) ALL
lub
%wheel ALL=(ALL:ALL) ALL
Wyłączenie tych linii spowoduje dezaktywację „hasła sudo”. Następnie przeszukaj plik w poszukiwaniu „bez hasła” i usuń znak # na początku tej linii. Zapisz zmiany za pomocą Ctrl + O i zamknij edytor za pomocą Ctrl + X. Te kroki powinny automatycznie włączyć opcję sudo bez hasła na Twoim systemie Linux.
Wyłączanie sudo dla określonych użytkowników
Najlepszym sposobem na zablokowanie dostępu do sudo dla konkretnych użytkowników jest postępowanie zgodnie z powyższymi instrukcjami i przyznawanie uprawnień tylko wybranym użytkownikom. Jeśli nie odpowiada to Twojemu stylowi pracy i wolisz używać grup do zarządzania uprawnieniami sudo, możesz też usunąć użytkownika z grupy sudo. Aby to zrobić, użyj polecenia:
su - gpasswd -d nazwa_użytkownika sudo
lub
gpasswd -d nazwa_użytkownika wheel
Po usunięciu użytkownika z grupy sudo nie będzie on miał możliwości korzystania z polecenia do wykonywania operacji na poziomie systemu.