Rozwiązany: 403 Forbidden "Nie masz uprawnień dostępu na tym serwerze"
Wiele konfiguracji serwerów internetowych boryka się z problemami związanymi z uprawnieniami do plików. Często powoduje to, że serwer jest niedostępny dla odwiedzających i objawia się błędem “403 Forbidden”. Zwykle komunikat o błędzie brzmi “403 Forbidden: nie masz uprawnień dostępu / na tym serwerze”. Może to być cokolwiek w formie “Zabronione: nie masz uprawnień dostępu do tego zasobu”.
“Podobne wyzwania mogą wynikać z rozbieżności w plikach konfiguracyjnych Apache i NGINX, a także z możliwości nieprawidłowego działania pliku .htaccess. Aby rozwiązać te problemy, warto postępować zgodnie z tymi prostymi krokami rozwiązywania problemów.
Co powoduje błąd 403 Forbidden w Apache i NGINX?
Występowanie błędu 403 na platformach Apache i NGINX można przypisać wielu różnym czynnikom. Niemniej jednak, zazwyczaj wynika on z niewystarczających poświadczeń autoryzacyjnych wymaganych do publicznego dostępu. Ponadto instalacje WordPress często napotykają tę przeszkodę w wyniku błędnej konfiguracji .htaccess.
Dodatkowo, wraz z pojawieniem się Apache w wersji 2.4, wprowadzono pewne zmiany w funkcjonalności dyrektyw, które mogą utrudniać publiczny dostęp do stron internetowych i potencjalnie powodować błąd “403 Forbidden”.
Jak naprawić błąd “403 Forbidden” jako użytkownik
Jeśli napotkasz błąd “403 Forbidden” podczas korzystania z platformy internetowej, pierwsze próby powinny obejmować wyczyszczenie informacji z pamięci podręcznej przeglądarki i odrzucenie wszelkich zapisanych plików cookie. Ponadto, jeśli korzystasz z wirtualnej sieci prywatnej (VPN), wyłączenie jej może być konieczne, ponieważ potencjalna błędna konfiguracja VPN może spowodować ten problem.
Alternatywnie, dla administratorów strony internetowej ważne jest, aby mieć świadomość, że wiele błędów Apache i NGINX 403 Forbidden wynika z nieprawidłowych ustawień uprawnień plików i wadliwych plików konfiguracyjnych.
Aby przywrócić funkcjonalność witryny, należy wykonać kolejno kroki opisane w dostarczonym zestawie rozwiązań:
Napraw uprawnienia do plików, aby uniknąć błędu 403
Wiele osób napotyka powszechny błąd 403 w wyniku braku odpowiedniej autoryzacji. W przypadkach, w których administrator witryny zaniedbuje przyznanie uprawnień do odczytu podmiotom zewnętrznym, użytkownicy mogą doświadczyć niedostępności podczas próby pobrania określonego zasobu. W związku z tym ten brak uprawnień często stanowi podstawę takich błędów.
Rozważmy scenariusz, w którym ktoś próbuje pobrać dokument zatytułowany “textbook.php” z witryny WordPress, ale napotyka komunikat o błędzie wskazujący, że nie ma uprawnień do uzyskania dostępu do “/textbook.php” na serwerze hostingowym. Sugeruje to, że plik istnieje, ale wygląda na to, że administrator witryny zdecydował się ograniczyć dostęp do niego dla zwykłych użytkowników.
Aby upewnić się, że pliki przeznaczone do publicznego użytku są prawidłowo dostępne, na administratorach witryn spoczywa obowiązek sprawdzenia, czy posiadają wymagane uprawnienia do odczytu. W przypadku, gdy dana osoba napotka ten błąd podczas odwiedzania publicznego portalu, rozsądnie byłoby skontaktować się z administratorem witryny w celu naprawienia sytuacji.
Modyfikowanie uprawnień do plików w sposób zapewniający odpowiednią dostępność przy jednoczesnym zachowaniu bezpieczeństwa może stanowić pewne wyzwanie, szczególnie w przypadku publicznie dostępnych treści. Rozsądne podejście polegałoby na rozpoczęciu od braku jakichkolwiek uprawnień i stopniowym dodawaniu ich w razie potrzeby. W związku z tym ogólnie zaleca się organizowanie katalogów z uprawnieniem 755 i poszczególnych plików z bardziej restrykcyjnym ustawieniem 644.
Aby podstawowa strona internetowa działała poprawnie, konieczne jest przyznanie uprawnień wykonywalnych do powiązanego z nią katalogu, przy jednoczesnym zapewnieniu, że poszczególne pliki posiadają uprawnienia do odczytu. Należy jednak zachować ostrożność, aby nie przyznawać uprawnień do wykonywania samym plikom, ponieważ złośliwe osoby mogą wykorzystać tę lukę do infiltracji publicznie dostępnych serwerów za pomocą nieautoryzowanych środków.
Odpowiednie uprawnienia nadane przez wartości 4, 2 i 1 odpowiadają trybom dostępu Odczyt, Zapis i Wykonanie. W związku z tym, gdy katalogowi przyznano tryb uprawnień 755, przyznaje to właścicielowi wyłączną władzę nad zawartością, podczas gdy członkowie grupy i inne osoby są ograniczone do odczytu i wykonywania tej zawartości. Z drugiej strony, tryb uprawnień 644, stosowany do plików, nadaje właścicielowi zarówno uprawnienia do odczytu, jak i zapisu, ale ogranicza wszystkich innych do przeglądania zawartości pliku.
nie masz uprawnień dostępu do tego zasobu”, konieczne jest upewnienie się, że katalog webroot ma odpowiednie uprawnienia do plików i katalogów. Jednym ze sposobów jest użycie narzędzia chmod
, które pozwala na ustawienie żądanych uprawnień w określonym formacie.Na przykład, poniższe polecenie może być użyte do przyznania uprawnień do odczytu, zapisu i wykonywania właścicielowi katalogu, przy jednoczesnym zachowaniu ograniczonych uprawnień dla innych: bashsudo chown -R :755 /var/www/html/your-directory
sudo find /var/www/html -type d -exec chmod 755 {} \;
Powyższa dyrektywa zakłada, że używasz standardowego folderu dla swojego serwera WWW, który jest zwykle oznaczany jako domyślny katalog główny dokumentu przez Apache. W przypadku korzystania z innego katalogu, należy odpowiednio zmodyfikować jego nazwę. Aby zmienić ustawienia uprawnień dla każdego pliku na “644”, wykonaj następującą instrukcję:
sudo find /var/www/html -type f -exec chmod 644 {} \;
Powyższa instrukcja wykorzystuje narzędzia find do identyfikacji pojedynczych plików, a następnie modyfikuje ich uprawnienia za pomocą chmod. Zamykający nawias klamrowy “{}” obejmuje ścieżki plików uzyskane przez polecenie find, podczas gdy średnik “;” oznacza zakończenie przetwarzania iteracyjnego.
Dodatkowo można również modyfikować uprawnienia dla poszczególnych plików. Aby to zilustrować, rozważmy następujące polecenie, które modyfikuje uprawnienia pliku “textbook.php” znajdującego się w katalogu głównym sieci Web, aby zapewnić publiczną dostępność. W rezultacie wszelkie przyszłe próby uzyskania dostępu do tego pliku nie będą już wyświetlać komunikatu o błędzie nieautoryzowanego dostępu.
sudo chmod 644 /var/www/html/textbook.php
Po zmodyfikowaniu niezbędnych uprawnień do plików zaleca się ponowne uruchomienie serwera WWW Apache lub NGINX w celu upewnienia się, że wszelkie zmiany konfiguracji zostały w pełni wdrożone i działają optymalnie.
sudo systemctl restart apache2.service
sudo systemctl restart nginx
Powyższe instrukcje ułatwiają ponowne uruchomienie zarówno serwera Apache, jak i NGINX w systemie operacyjnym Ubuntu. Należy jednak pamiętać, że niektóre dystrybucje oparte na RPM, w tym Red Hat Enterprise Linux (RHEL) lub CentOS, mogą mieć zainstalowany Apache pod nazwą “httpd”. W takich przypadkach użytkownik powinien zastosować następujące alternatywne polecenie, aby zapewnić bezproblemowe działanie:
sudo systemctl restart httpd
Fix the .htaccess File for Your WordPress Website
Plik .htaccess działa jako zdecentralizowany plik konfiguracyjny, kierując serwerem internetowym w zarządzaniu dostosowaniami w oparciu o określone katalogi. W niektórych przypadkach plik ten może zostać uszkodzony i spowodować problem z autoryzacją, skutkujący komunikatem “Nie posiadasz niezbędnych uprawnień dostępu / na tym serwerze”.
Na szczęście rozwiązanie błędu 403 na serwerze można osiągnąć po prostu generując nowy plik .htaccess. Aby wygenerować plik .htaccess dla swojej witryny, po zalogowaniu się do pulpitu nawigacyjnego WordPress przejdź do Ustawienia > Permalinki.
Nie musisz wprowadzać żadnych dalszych zmian. Wystarczy kliknąć przycisk “Zapisz zmiany”, a WordPress automatycznie utworzy zaktualizowany plik .htaccess.
W przypadku napotkania komunikatów o błędach “odmowa dostępu do tego zasobu” lub “nie można odczytać pliku htaccess; odmowa dostępu ze względów bezpieczeństwa” na serwerze Apache, zaleca się utworzenie nowego pliku .htaccess jako potencjalnego rozwiązania, szczególnie w przypadku witryn WordPress.
Konfigurowanie dyrektyw w pliku konfiguracyjnym Apache
Apache 2.4 wykorzystuje nowy moduł konfiguracyjny o nazwie “mod\_authz\_host”, który zawiera wiele innowacyjnych dyrektyw do wdrożenia. Zasadniczo dyrektywy te wprowadzają w życie następujące wytyczne:
⭐Require all granted:Allow all requests
⭐Require all denied:Deny all requests
Polityka bezpieczeństwa dla hosta “safe.com” dyktuje, że wszystkie przychodzące żądania muszą pochodzić z tej domeny, aby uzyskać dostęp. Zapewnia to bezpieczeństwo i integralność serwera WWW poprzez ograniczenie nieautoryzowanego dostępu i potencjalnej złośliwej aktywności.
Jeśli korzystasz z Apache 2.4, ważne jest, aby upewnić się, że główny plik konfiguracyjny zawiera następujący segment kodu. Aby sprawdzić, czy ta sekcja istnieje w pliku, możesz użyć podstawowego edytora tekstu, takiego jak Vim, do celów inspekcji. W przypadku zidentyfikowania jakichkolwiek braków, należy dodać niezbędną zawartość do pliku konfiguracyjnego. Po zakończeniu będziesz mógł z powodzeniem
vim /etc/apache2/apache2.conf
Kod:
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Rzeczywiście, w przypadku serwera WWW opartego na systemie Red Hat Enterprise Linux (RHEL) konieczne jest zapewnienie nieograniczonego dostępu do katalogu /var/www
w pliku konfiguracyjnym Apache. W związku z tym ważne jest, aby plik httpd.conf
, który można znaleźć w określonej ścieżce, zawierał następujący fragment kodu:
vim /etc/httpd/conf/httpd.conf
Kod:
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
Podsumowując, aby ponownie uruchomić serwer Apache, można skorzystać z jednej z wyżej wymienionych metod, wykonując jedno z podanych poleceń.
# for Ubuntu and Debian
sudo systemctl restart apache2.service
# for RHEL and CentOS
sudo systemctl restart httpd
Fix the 403 Forbidden Server Permission Error on Linux
Powszechnym problemem napotykanym przez wiele osób są trudności w dostępie do publicznych stron internetowych lub rozwiązywaniu problemów z witrynami osobistymi. Aby rozwiązać ten problem, zaleca się zresetowanie uprawnień systemu plików dla serwerów Apache lub NGINX.Jeśli jednak błąd pozostaje nierozwiązany pomimo dostosowania uprawnień, wygenerowanie nowego pliku .htaccess i sprawdzenie, czy jego dyrektywy są odpowiednio skonfigurowane w pliku konfiguracyjnym serwera, może okazać się skuteczne.
Mnogość dodatkowych problemów może prowadzić do porównywalnego błędu po stronie serwera, wymagając wyjątkowej biegłości w rozwiązywaniu komplikacji serwera Linux w celu przywrócenia funkcjonalności.