Jeśli znasz polecenia Unix, to Terminal jest świetnym sposobem uruchamiać procesy i wykonywać zadania. Najczęściej on po prostu pracuje, jeśli wykorzystujesz poprawne polecenia. Jednak niekiedy możesz zobaczyć komunikaty o błędach, na przykład o tym, że „'permission denied”. W tym artykule opowiemy, jak to naprawić.
Czym jest Terminal?
Terminal jest aplikacją, pozwalającą na zarządzanie Makiem, wykonywanie procesy i zadania w interfejsie wiersza poleceń. Dzięki jądrowi Unix w macOS system może interpretować i wykonywać zwykłe polecenia Unix. Przed wersją macOS Catalina, domyślną powłoką Terminalu był bash. Teraz jest to zsh. Ma pewne przewagi nad bash – jest łatwiejszy w wykorzystaniu do pewnych zadań i nie wymaga ścisłych uprawnień użytkownika, jakich wymaga bash. By sprawdzić, jaka powłoka Terminalu jest uruchomiona, spójrz w górną część dowolnego okna Terminalu.
Dlaczego ludzie korzystają z Terminalu?
Użytkownicy Maców lubią Terminal z wielu powodów. Jeśli znasz polecenia Unix, Terminal pozwoli Ci na szybkie uruchomienie procesów i zadań. Innym głównym powodem do korzystania z Terminalu jest możliwość prazy z ukrytymi częściami macOS, których nie znajdziesz w Preferencjach Systemowych. W ten sposób możesz zmieniać ustawienia, do których inaczej byłyby potrzebne specjalne aplikacje. Na przykład, do zmiany domyślnego formatu zrzutów ekranu z png na jpg, potrzebujesz Terminalu.
Co znaczy „permission denied”?
Jeśli widzisz ten komunikat, to oznacza, że Terminal nie może wykonać polecenia, ponieważ nie może otrzymać dostęp do potrzebnego plika. Jak sugeruje nazwa błędu, nie może odczytać plik, ponieważ brakuje uprawnień. Może to być spowodowane przez wiele rzeczy, ale typowymi przyczynami są:
- Nie masz uprawnień zapisywać plik;
- Plik jest zablokowany;
- Polecenie, którego próbujesz wykorzystać, jest utworzone niepoprawnie.
Jak naprawić błąd „permission denied” w Terminalu
A teraz przejdźmy do rozwiązań. Zaczniemy od najprostszego, a następnie podamy ręczne rozwiązania.
Łatwiejszy sposób naprawić problemy z Terminalem
Tak może się zdarzyć, że błąd „permission denied” występuje przez problem z samym Terminalem. Jednym sposobem na to jest zresetowanie apki. Najprostszym sposobem na to jest bardzo użyteczne narzędzie CleanMyMac X. CleanMyMac X zawiera kilka modułów, które potrafią oczyścić miejsce, zoptymalizować Maca, chronić przez szkodliwymi programami i, jak w tym przypadku, naprawiać problemy. Apka jest poświadczona przez Apple – możesz pobrać ją za darmo stąd.
- Uruchom CleanMyMac X i w pasku bocznym wybierz Dezinstalator.
- Wpisz Terminal w pasku wyszukiwania.
- Kliknij strzałkę obok wielkości pliku.
- Zaznacz Preferencje, Pliki pomocnicze i Dzienniki.
- Kliknij strałki obok Terminalu i wybierz Resetuj.
- Naciśnij przycisk „Resetuj”.
Sprawdź uprawnienia plika
Istnieje kilka sposobów sprawdzić uprawnienia plików. Możesz zrobić to w Finderze albo w Terminalu. Poniżej pokażemy oba sposoby.
Terminal
- Uruchom Terminal i wpisz następujące polecenie, po którym umieść spację:
ls -l
- Znajdź plik albo folder, dla którego wystąpił błąd i przeciągnij go do okna Terminala.
- Naciśnij Return.
- Jeśli widzisz litery „rwxr” w linii znaków przed imieniem użytkownika, to znaczy, że możesz odczytywać, zapisywać i uruchamiać plik. Natomiast, jeśli widzisz tylko „r”, to znaczy, że masz dostęp tylko do odczytu.
Finder
- Znajdź plik albo folder w Finderze.
- Naciśnij Command-I, by otworzyć okno Informacji.
- Sprawdź sekcję Udostępnianie i uprawnienia na dole okna. Jeśli pod napisem niczego nie ma, kliknij strzałkę obok.
- Sprawdź uprawnienia obok imienia Twojego użytkownika. Powinno tam być „odczyt i zapis”
Zmień uprawnienia plika
Jeśli uprawnienia nie pozwalają na zapis pliku, to pewnie, jest przyczyną błędu „permission denied”. Aby to naprawić w Finderze, kliknij kolumnę Prywilej obok imienia użytkownika w Informacjach i wybierz „odczyt i zapis”.
Aby zmienić uprawnienia w Terminalu, wykonaj te kroki:
- Wpisz to polecenie po którym umieść spację:
chmod 755
- Przeciągnij plik albo folder do okna Terminalu.
- Naciśnij Return.
- Uprawnienia dla pliku albo folderu zostaną zmienione na odczyt, zapis i uruchomienie.
Zmień właściciela folderu
Jeśli zmiana uprawnień nie rozwiązała problemu, spróbuj zmienić właściciela folderu na Twoje imię użytkownika. W podanych poniżej krokach zmień [username] na własne imię użytkownika, a [directorypath] na ścieżkę do folderu, którego właściciel ma zostać zmieniony – jak to robiliśmy wcześniej, możesz po prostu przeciągnąć folder do okna Terminalu.
- Wpisz:
chown -R $[username]:[username] [directorypath]
- Naciśnij Return.
Błąd „Permission denied” w Terminalu zazwyczaj jest powiązany z problemami uprawnień dla pliku albo folderu, nad którym chcesz pracować. Można to naprawić przez zmianę uprawnień albo właściciela. Ale jeśli to nie pomaga, skorzystaj z CleanMyMac X, by zresetować Terminal i upewnij się, że podajesz poprawnie sformatowane polecenia.