Wyszukiwanie w witrynie

Jak uruchamiać skrypty powłoki za pomocą polecenia Sudo w systemie Linux


sudo to potężne narzędzie wiersza poleceń, które umożliwia „dozwolonemu użytkownikowi” wykonanie polecenia jako inny użytkownik (domyślnie superużytkownik), zgodnie z definicją w polityce bezpieczeństwa. W większości, jeśli nie we wszystkich systemach Linux, polityka bezpieczeństwa jest oparta na pliku /etc/sudoers.

Przeczytaj także: 10 przydatnych konfiguracji Sudoers do ustawiania „sudo” w systemie Linux

Dlatego, aby uruchomić skrypt lub program powłoki jako root, musisz użyć polecenia sudo. Jednak sudo rozpoznaje i uruchamia tylko polecenia, które istnieją w katalogach określonych w bezpiecznej_ścieżce w pliku /etc/sudoers, chyba że polecenie jest obecne w bezpieczna_ścieżka, zareagujesz na błąd taki jak ten poniżej.

Stanie się tak nawet jeśli skrypt istnieje w katalogu w zmiennej środowiskowej PATH, ponieważ gdy użytkownik wywoła sudo, PATH zostanie zastąpione przez bezpieczna_ścieżka.

echo  $PATH
ls  -l
sudo proconport.sh 80

W powyższym scenariuszu katalog /home/aaronkilik/bin znajduje się w zmiennej środowiskowej PATH i próbujemy uruchomić skrypt /home/aaronkilik/bin /proconport.sh (wyszukuje proces nasłuchujący na porcie) z uprawnieniami roota.

Następnie napotkaliśmy błąd „sudo: proconport.sh: nie znaleziono polecenia”, ponieważ /home/aaronkilik/bin nie znajduje się w sudo secure_path jak pokazano na następnym zrzucie ekranu.

Aby to naprawić, musimy dodać katalog zawierający nasze skrypty do sudo secure_path za pomocą polecenie visudo, edytując plik /etc/sudoers następująco.

sudo visudo

Uwaga: ta metoda ma poważne konsekwencje dla bezpieczeństwa, zwłaszcza na serwerach działających w Internecie. W ten sposób narażamy nasze systemy na różne ataki, ponieważ atakujący, któremu uda się uzyskać dostęp do niezabezpieczonego (bez uprawnień superużytkownika) katalogu, który został dodany do bezpiecznej ścieżki, może uruchomić złośliwy skrypt/program za pomocą polecenie sudo.

Ze względów bezpieczeństwa zapoznaj się z następującym artykułem w witrynie Sudo wyjaśniającym lukę związaną z bezpieczną_ścieżką: https://www.sudo.ws/sudo/alerts/secure_path.html

Najlepiej, gdy możemy podać bezwzględną ścieżkę do skryptu podczas uruchamiania go za pomocą Sudo:

sudo ./proconport.sh 80

Otóż to! Możesz śledzić listę artykułów na temat polecenia Sudo:

  1. Jak uruchomić polecenie „sudo” bez podawania hasła w systemie Linux
  2. Jak utrzymać dłuższą sesję przekroczenia limitu czasu hasła „sudo” w systemie Linux
  3. Jak naprawić błąd „Nazwy użytkownika nie ma w pliku sudoers. Ten incydent zostanie zgłoszony ”w Ubuntu
  4. Pozwól Sudo obrazić Cię, gdy wpiszesz nieprawidłowe hasło

Jeśli masz jakieś pytania lub przemyślenia dotyczące tego artykułu, podziel się z nami za pomocą poniższego formularza komentarza.