Pliki w systemie operacyjnym zwykle mają uprawnienia, dzięki czemu plik jest dostępny dla ograniczonej liczby osób. Na przykład niektóre pliki na komputerze są dostępne tylko dla administratorów; inne pliki są dostępne tylko dla określonego użytkownika.
Jeśli spróbujesz uruchomić plik, do którego nie masz dostępu na komputerze z systemem Linux, zobaczysz uprawnienie odmowa błąd. W tym przewodniku porozmawiamy o przyczynie tego błędu i sposobach jego naprawy. Zacznijmy.
Bash odmowa uprawnień
Bash odmowa uprawnień występuje podczas próby uruchomienia pliku, który nie ma uprawnień do wykonania. Może się tak zdarzyć, jeśli plik może zostać wykonany tylko przez określonego użytkownika lub grupę, której nie jesteś członkiem.
W systemie operacyjnym Linux istnieją trzy rodzaje uprawnień:
Odczyt
Zapis
Wykonaj
Możesz mieć pozwolenie na odczytywanie i zapisywanie pliku bez uprawnień do wykonywania. Dlatego, jeśli napotkasz odmowa uprawnień Bash, upewnij się, że sprawdziłeś, czy masz uprawnienia do uruchomienia pliku. Możesz sprawdzić, czy masz uprawnienia do pliku, używając następującego polecenia:
ls -la
To polecenie daje informacje o uprawnieniach do plików. Omówimy dane wyjściowe tego polecenia w sekcji Rozwiązanie w dalszej części artykułu. Spójrzmy na przykładowy scenariusz z błędem odmowa uprawnień, z odpowiednim rozwiązaniem.
Przykładowy scenariusz
Mamy plik o nazwie example. CII. Możemy zobaczyć ten plik, uruchamiając ls polecenie. Polecenie ls zwraca co następuje:
Chcemy uruchomić nasz plik example.sh. W tym celu możemy użyć notacji ./:
To polecenie pozwala nam uruchomić plik example.sh, który znajduje się w naszym katalogu ./ (katalog, który aktualnie przeglądamy). Zobaczmy, co się stanie, gdy spróbujemy uruchomić plik:
Nasze polecenie zwraca błąd.
Rozwiązanie
Nasza powłoka Bash mówi nam, że nie mamy uprawnień do uruchomienia naszego pliku. uprawnienia, które mamy, uruchamiając polecenie ls -la:
Nie mamy uprawnień do uruchomić na dowolnym z naszych plików. Gdyby w pierwszym wpisie powyższego wyniku znajdował się x po rw, wiedzielibyśmy, że możemy uruchomić nasz plik. Trzy znaki po pierwszy reprezentuje uprawnienia użytkownika do odczytu, zapisu i wykonywania. Nasza grupa również nie ma uprawnień do zapisu ani wykonywania.
Aby rozwiązać ten problem, musimy przyznać sobie uprawnienia do wykonywania:
To polecenie daje naszemu użytkownikowi uprawnienia do wykonywania ("x") przykładu . plik sh.
Możemy uruchomić to polecenie tylko wtedy, gdy możemy modyfikować uprawnienia pliku. Gdyby ten plik był chroniony (na przykład właścicielem roota), nie bylibyśmy w stanie go edytować.
Plik należy do użytkownika systemowego james więc mogę zmienić uprawnienia do plików na moim koncie james. Mógłbym również użyć sudo do zmiany uprawnień plików, chociaż nie jest to konieczne, ponieważ moje konto użytkownika ma niezbędny dostęp.
Wniosek
Bash odmowa uprawnień wskazuje, że próbujesz uruchomić plik, którego uruchomienie nie jest dozwolone. Aby rozwiązać ten problem, użyj polecenia chmod u + x, aby nadać sobie uprawnienia. Jeśli nie możesz użyć tego polecenia, może być konieczne skontaktowanie się z administratorem systemu w celu uzyskania dostępu do pliku.