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. Wykonujemy „ls -l” Aby wyświetlić uprawnienia.

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 „sudo” Z poleceniem, które chcemy uruchomić. To spowoduje wykonanie polecenia jako użytkownik root. W Twoim przypadku możesz również użyć komendy „sudo”, jeśli masz pewność, że polecenie, które chcesz wykonać, 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.

Realizacja 'ls -l' W katalogu, w którym znajduje się plik, możemy zobaczyć, że właścicielem pliku i jego grupą są 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 wyświetli nam się już błąd. odmowa pozwolenia.

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

On doda `chmod + x` Realizacja على Uprawnienia pliku dla właściciela, grupy i innych osób.

Teraz możemy uruchomić plik jako program, wpisując `./script1Bez ż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 edytować plik `.zshrcW przewodnikustrona główna/nazwa użytkownikaWłasny i dodaj go na końcu pliku.

setopt auto_cd

Umożliwi to `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ć taki błąd, należy ustawić Prawidłowe uprawnienia dla gradlew.

Możesz wpisać to polecenie w terminalu,

chmod 755 gradlew

Spowoduje to, że plik `gradlewJest to wykonalne i błąd zostanie naprawiony.

Albo możesz 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.