Исправление ошибки zsh: Отказано в доступе в Linux или macOS

Ошибка «zsh: permission denied» возникает, когда вы пытаетесь выполнить команду в Linux или Mac, не имея необходимых прав на выполнение. Это может быть что-то простое, например, запуск команды `ls` в каталоге, где у вас нет прав на запись, или запуск скрипта, выполняющего действия, на которые ваш пользователь не имеет права. Под «правами» мы подразумеваем права на чтение или запись.

Давайте рассмотрим основную причину этой ошибки, а затем попробуем каждое решение, чтобы определить, какое из них лучше.

Эта ошибка возникает главным образом в том случае, если у вас нет прав на выполнение, запись или чтение файла.

Предположим, мы находимся внутри оболочки Zsh в операционной системе Linux и пытаемся просмотреть содержимое файла с помощью команды 'cat', но получаем ошибку 'отказано в доступе'.

Чтобы исправить эту ошибку, нам сначала нужно посмотреть права доступа к файлу. Выполняем команду... “лс -л” Чтобы просмотреть права доступа.

Как видите, права доступа установлены таким образом, что только пользователь root и группа root могут читать файл, а записывать в него может только пользователь root.

1. Использование sudo

Для решения этой проблемы проще всего использовать 'sudo' С помощью команды, которую мы хотим выполнить, мы выполним её от имени пользователя root. В вашем случае вы также можете использовать 'sudo', если уверены, что команда или задача, которую вы хотите выполнить, не причинит вреда вашему компьютеру.

Таким образом, мы можем действовать:

файл sudo cat

2. Изменение прав доступа к файлу или файлам.

Следующий шаг, который мы можем предпринять, — это изменить права доступа к файлу. Поскольку ошибка «отказано в доступе» обычно вызвана правами на чтение или запись, мы можем изменить права доступа к этому файлу или к рассматриваемым файлам.

Реализуя 'ls -l' В каталоге, где находится файл, мы видим, что владельцем файла и его группой являются root.

Мы можем изменить владельца на нашего пользователя, а затем делать с файлом все, что захотим.

Мы можем работать:

sudo chown [user] [file-name]

В нашем примере, поскольку v3n0m — это пользователь, под которым мы вошли в систему, мы выполним команду следующим образом:

sudo chown v3n0m file

v3n0m — это наше имя пользователя. В вашем случае это будет ваше имя пользователя.

Теперь мы можем запустить команду `cat` для этого файла, поскольку она больше не будет выдавать ошибок. доступ запрещен.

3. Предоставить полномочия по принудительному исполнению.

В Zsh и других оболочках можно использовать `./` с именем файла для запуска файла как программы. Однако, если для файла не установлены права на выполнение, вы получите ошибку `zsh: permission denied`.

Допустим, мы хотим выполнить скрипт с именем script1. Мы вводим команду ./script1 в терминале и получаем следующую ошибку:

Чтобы проверить права доступа к файлу, мы запускаем команду `ls -la`. Как видите, права на выполнение файла не установлены.

Решение здесь простое: добавьте файлу права на выполнение.
Мы отдаём простой приказ.

chmod +x script1

Он добавитchmod + x` Выполнение على Права доступа к файлам для владельца, группы и других пользователей.

Теперь мы можем запустить файл как программу, набрав `./script1Без единой ошибки.

Эта ошибка должна исчезнуть сама собой, если вы столкнулись с ней в Linux; однако, если вы столкнулись с этой ошибкой в ​​macOS или Gradle, продолжайте читать статью.

Отредактируйте файл zshrc (macOS)

Некоторые пользователи macOS сообщают о проблеме при использовании `zsh`, когда они находятся не в том каталоге, из которого хотят выполнить команду.

Если вы столкнетесь с подобной проблемой, решение будет очень простым.

Вам необходимо отредактировать файл `.zshrcВ руководстведомашний/имя пользователяДобавьте свой собственный текст в конец файла.

setopt auto_cd

Это позволитauto_cd` в `zsh`.

Редактировать файл.zshrcВы можете использовать любой графический текстовый редактор или текстовый редактор командной строки, например `vim` или `vi`.

Использование команды CHMOD для установки прав доступа (Gradle)

Ошибка «zsh: permission denied» может возникнуть, если вы работаете с Gradle, и ваш файл `gradlew` не имеет необходимых прав доступа.

Для исправления такой ошибки необходимо установить Правильные права доступа в gradlew.

Вы можете ввести эту команду в свой терминал:

chmod 755 gradlew

Это создаст файл `GradlewЭто осуществимо, и ошибка будет исправлена.

Или вы можете просто ввести эту команду:chmod +x gradlew`

Это также сделает файл `gradlew` исполняемым.

Если ни одно из этих решений вам не поможет, оставьте комментарий ниже, и наш специалист с удовольствием вам поможет в ближайшее время.

 

Комментарии закрыты.