Naprawianie błędu zsh: Odmowa uprawnień w systemie Linux lub macOS
Błąd „zsh: permission denied” występuje, gdy próbujesz wykonać polecenie w systemie Linux lub Mac, nie mając niezbędnych uprawnień. Może to być coś tak prostego, jak uruchomienie polecenia „ls” w katalogu, w którym nie masz uprawnień do zapisu, lub uruchomienie skryptu wykonującego czynności, do których użytkownik nie ma uprawnień. Przez „uprawnienia” rozumiemy uprawnienia do odczytu lub zapisu.

Przyjrzyjmy się głównej przyczynie tego błędu, a następnie wypróbujmy każde rozwiązanie, aby sprawdzić, które jest najlepsze.
Ten błąd pojawia się głównie wtedy, gdy nie masz uprawnień do wykonywania, zapisu lub odczytu pliku.
Załóżmy, że znajdujemy się w powłoce Zsh w systemie operacyjnym Linux i próbujemy wyświetlić zawartość pliku za pomocą polecenia „cat”, ale pojawia się błąd „odmowa dostępu”.

Aby naprawić ten błąd, musimy najpierw sprawdzić uprawnienia pliku. Aby je sprawdzić, uruchamiamy polecenie „ls -l” .

Jak widać, uprawnienia są takie, że tylko użytkownik root i grupa root mogą odczytywać plik, natomiast tylko użytkownik root może zapisywać do pliku.
1. Używanie sudo
Aby to naprawić, najprostszym rozwiązaniem jest użycie komendy „sudo” z poleceniem, które chcesz uruchomić. Spowoduje to wykonanie polecenia z uprawnieniami użytkownika root. W Twoim przypadku możesz również użyć komendy „sudo”, gdy masz pewność, że polecenie lub zadanie, które chcesz uruchomić, nie wyrządzi szkody Twojemu komputerowi.
Możemy zatem działać:

plik sudo cat
2. Zmiana uprawnień pliku lub plików
Następnym krokiem, który możemy podjąć, jest zmiana uprawnień pliku. Ponieważ błąd „odmowa uprawnień” jest zazwyczaj spowodowany uprawnieniami do odczytu lub zapisu, możemy zmienić uprawnienia tego pliku lub plików, których to dotyczy.

Wykonując polecenie „ls -l” w katalogu, w którym znajduje się plik, możemy sprawdzić, że właścicielem pliku i jego grupą są użytkownicy root.
Możemy zmienić właściciela na naszego użytkownika, a następnie wykonać na pliku dowolne działanie.

Możemy operować:
sudo chown [użytkownik] [nazwa pliku]
W naszym przykładzie, ponieważ v3n0m jest użytkownikiem, za pomocą którego się zalogowaliśmy, wydamy następujące polecenie:
sudo chown plik v3n0m
v3n0m to nasza nazwa użytkownika. W Twoim przypadku byłaby to Twoja nazwa użytkownika.
Teraz możemy uruchomić polecenie cat na pliku, ponieważ nie będzie już ono zwracało błędu o odmowie dostępu.
3. Włącz uprawnienia egzekucyjne
Możesz użyć ./ w nazwie pliku w Zsh lub innych powłokach, aby uruchomić plik jako program. Jeśli jednak uprawnienia wykonywania dla pliku nie są ustawione, pojawi się błąd „zsh: permission denied”.

Załóżmy, że chcemy wykonać skrypt o nazwie script1. Wpisujemy ./script1 w terminalu i otrzymujemy następujący błąd:
Uruchamiamy polecenie `ls -la` na pliku, aby sprawdzić uprawnienia. Jak widać, uprawnienia wykonania pliku nie są ustawione.
Rozwiązanie jest tutaj proste: dodaj uprawnienia do wykonywania pliku.
Wydajemy proste zamówienie

chmod +x skrypt1
` chmod +x` doda bit wykonywania do uprawnień pliku dla właściciela, grupy i innych.
Teraz możemy uruchomić plik jako program, wpisując ` ./ script1` bez żadnego błędu.
Ten błąd powinien rozwiązać się sam, jeśli występuje w systemie Linux. Jeśli jednak występuje on w systemie macOS lub Gradle, kontynuuj czytanie artykułu.
Edytuj plik zshrc (macOS)
Niektórzy użytkownicy systemu macOS zgłaszali problem podczas korzystania z polecenia `zsh`, gdy nie znajdują się w katalogu, z którego chcą wykonać polecenie.
Jeśli napotkasz podobny problem, rozwiązanie jest bardzo proste.
Musisz zmodyfikować plik ` .zshrc` w katalogu ` home/username` i dodać ten kod na końcu pliku.
setopt auto_cd
Spowoduje to włączenie opcji ` auto_cd` w `zsh`.
Aby edytować plik ` .zshrc` , możesz użyć dowolnego graficznego edytora tekstu lub edytora tekstu wiersza poleceń, takiego jak `vim` lub `vi`.
Ustawianie uprawnień za pomocą polecenia CHMOD (Gradle)
Błąd „zsh: permission denied” może wystąpić, jeśli pracujesz w Gradle i Twój plik `gradlew` nie ma prawidłowych uprawnień.
Aby naprawić ten błąd, należy ustawić odpowiednie uprawnienia w Gradlew.
Możesz wpisać to polecenie w terminalu,
chmod 755 gradlew
Spowoduje to, że plik ` gradlew` stanie się wykonywalny, a błąd zostanie naprawiony.
Możesz też po prostu wpisać to polecenie: ` chmod +x gradlew`
Spowoduje to również, że plik `gradlew` stanie się wykonywalny.
Jeśli żadne z tych rozwiązań nie okaże się dla Ciebie skuteczne, możesz podzielić się swoją opinią w komentarzu poniżej, a nasz technik wkrótce chętnie Ci pomoże.
Możliwość dodawania komentarzy nie jest dostępna.