Главная
» MAC OS X
»
Как исправить ошибку «Файл не может быть выполнен, поскольку у вас нет соответствующих прав доступа» в macOS
Как исправить ошибку «Файл не может быть выполнен, поскольку у вас нет соответствующих прав доступа» в macOS
Если при выполнении доверенного .commandскрипта появляется сообщение «Файл не может быть выполнен, поскольку у вас нет соответствующих прав доступа», обычно ему требуется разрешение на выполнение. В Терминале добавьте это разрешение для своей учетной записи с помощью команды `cd` chmod u+x, а затем запустите скрипт снова. Это изменит бит разрешения файла; скрипт не проверяется и не обходит проверки безопасности macOS, поэтому проверьте файл и убедитесь в его надежности перед запуском.
Перед изменением прав доступа проверьте файл.
Убедитесь, что файл действительно заканчивается на определенный символ .commandи что вы знаете, откуда он взялся. Скрипт командной строки может запускать команды Терминала с правами доступа вашей учетной записи. Если вы не ожидали этот файл или не можете проверить его источник, не запускайте его. Откройте его в текстовом редакторе, чтобы просмотреть его содержимое, или получите чистую копию от разработчика.
Окно «Информация» в Finder полезно для проверки имени файла и общих разрешений доступа, но оно не предоставляет простого способа добавить бит выполнения оболочки к скрипту. Apple описывает chmodметод создания исполняемого скрипта оболочки в Терминале в своем руководстве пользователя Терминала .
Пример отображения файла .command в папке «Загрузки» в Finder.
Предоставьте вашей учетной записи права на выполнение. Для скрипта в папке «Загрузки» с именем script.commandвведите эту команду и нажмите Enter:
chmod u+x "$HOME/Downloads/script.command"
Замените примерный путь и имя файла на фактический путь. Оставляйте путь в кавычках, особенно если имя папки или файла содержит пробелы. Вы также можете ввести chmod u+x (включая последний пробел) и перетащить файл из Finder в окно Терминала, чтобы вставить его путь. Не вводите слова «путь к файлу» буквально.
Команда `chmod u+x` добавляет права на выполнение для владельца файла.
Команда обычно возвращает командную строку без вывода сообщения об успешном выполнении. uобозначает владельца файла и +xдобавляет разрешение на его выполнение. Это более узкое ограничение, чем предоставление скрипту права на выполнение для каждой учетной записи на Mac. При наличии права на выполнение файла и возможности изменения его прав, пароль администратора не потребуется.
Запустите скрипт. Если он находится в папке «Загрузки», введите:
cd "$HOME/Downloads"
./script.command
Вы также можете дважды щелкнуть файл в Finder после изменения его прав доступа. Запуск из Терминала удобен, поскольку позволяет прочитать любое сообщение об ошибке или вывод. Если macOS отображает предупреждение при вставке команды в Терминал, прочтите предупреждение, прежде чем продолжить.
Пример работы терминала после запуска скрипта из соответствующей папки.
Проверьте права доступа, если ошибка сохраняется.
Чтобы посмотреть права доступа к файлу, выполните следующую команду:
ls -l "$HOME/Downloads/script.command"
Если текущая учетная запись является владельцем файла и установлены права на выполнение, первая группа разрешений должна включать x, например -rwx, . В руководстве Apple по разрешениям для Mac объясняется, чем отличается доступ к файлам и папкам для разных пользователей.
Используйте команду `ls -l`, чтобы убедиться, что строка прав доступа владельца содержит префикс `x`.
Команда выдает сообщение «Нет такого файла или каталога». Путь или имя файла не совпадают. В Finder подтвердите имя и местоположение, затем повторите команду с правильным путем.
Сообщение об ошибке гласит «Операция запрещена» или «Доступ запрещен». Возможно, вы не являетесь владельцем файла, или родительская папка не предоставляет к нему доступ. Переместите копию в папку, которая принадлежит вам, например, «Загрузки», или попросите владельца файла или администратора вашего Mac исправить доступ. Избегайте добавления файла sudoв качестве первого шага.
Файл имеет бит выполнения, но всё равно не запускается. Убедитесь, что файл является допустимым скриптом и что в его первой строке указан доступный интерпретатор. Если сообщение относится к приложению, которое Apple не может проверить, к неопознанному разработчику или вредоносному ПО, это отдельное предупреждение Gatekeeper или вредоносного ПО, а не ошибка разрешения на выполнение.
Не следует ослаблять безопасность macOS ради исправления прав доступа к файлу.
Не используйте эту команду, chmod a+xесли вы намеренно не хотите, чтобы другие локальные учетные записи имели разрешение на выполнение, и избегайте общих команд, таких как chmod -Rили изменение разрешений для системных папок. Чтобы отменить добавленный вами бит на выполнение для вашей учетной записи, выполните команду chmod u-x "$HOME/Downloads/script.command".
Чтобы избежать предупреждения о проверке приложения, следуйте рекомендациям Apple по безопасному открытию приложений только после подтверждения того, что приложение получено из надежного источника. Не игнорируйте предупреждение о том, что программное обеспечение может повредить ваш компьютер или что macOS обнаружила вредоносное ПО. Apple также описывает новые средства защиты от вставки в Терминал в своем руководстве по защите Терминала и скриптов .