Bash не будет выполнять файлы

У меня есть файл foo.sh в моем текущем каталоге. Если я попытаюсь запустить ./foo.sh , я получаю:

 -bash: ./foo.sh: /bin/sh: bad interpreter: Permission denied 

Но если я запустил /bin/sh ./foo.sh тогда он работает нормально.

Как я могу исправить это, чтобы я мог просто запустить ./foo.sh и он автоматически запускает его с помощью / bin / sh?

Изменить: Хорошо, это Chrome OS, и эта конкретная папка смонтирована с помощью noexec . По-видимому, это препятствует просто запустить ./foo.sh ; но почему? Почему я могу запустить sh foo.sh для достижения того же самого? Какая безопасность, тем не noexec , дает noexec ?

  • После обновления Chromium больше не видит никаких моих расширений
  • Есть ли способ активировать конкретную вкладку хром через bash?
  • Как заставить кнопки навигации и расширения появляться во всплывающем окне в Chrome?
  • Вернитесь к старой иконке профиля Chrome / верхнему левому углу аватара
  • Chrome игнорирует инвертированную прокрутку
  • Открыть веб-страницу в существующем окне Chromium из командной строки
  • Chrome слишком много файлов открыть / сбой / Извините Jim
  • Не удалось загрузить libGLESv2.so.2: libGLESv2.so.2: невозможно открыть файл общих объектов: нет такого файла или каталога
  • 4 Solutions collect form web for “Bash не будет выполнять файлы”

    Флаг noexec будет соответствующим образом применяться к скриптам, потому что это будет «ожидаемое» поведение.

    Однако установка noexec только останавливает людей, которые недостаточно знают о том, что они делают. Когда вы запускаете sh foo.sh вы фактически запускаете sh из своего местоположения по умолчанию (возможно /bin ), которое не находится на файловой системе, установленной с noexec .

    Вы даже можете обойти noexec для обычных двоичных файлов, вызвав ld напрямую.

     cp /bin/bash $HOME /lib/ld-2.7.so $HOME/bash 

    Это запустит bash, независимо от того, будет ли он на файловой системе, установленной без noexec .

    Вы также можете получить эту ошибку (или очень и очень похожее сообщение), если попытаетесь выполнить файл с окончанием строки 2-байтного (каретки возврата строки) MS-DOS.

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

    В этом случае «#! / Bin / sh ^ M» заставляет ядро ​​попытаться найти «/ bin / sh ^ M», чего не может. Плохой переводчик, действительно.

    Если у вас есть возможность запускать скрипт или программу с USB-накопителя (или другого съемного носителя), вы можете попробовать размонтировать и вручную повторно установить его:

    1. Подключите USB-накопитель

    2. Найти устройство USB-накопителей с $ mount

    3. Обратите внимание на это; предположим, что это /dev/sdb1

    4. Отключить USB-накопитель:

       $ cd /media/removable $ sudo umount mountpoint 

    Наконец, снова смонтируйте USB-накопитель:

     $ sudo mount /dev/sdb1 mountpoint 

    С помощью точки монтирования имя крепления USB-накопителя

    У меня такой же вопрос. Моя проблема была в SD-карте. Это сработало для меня, и это намного проще, чем другие ответы здесь. Я узнал об этом от проблемы № 868 от Crouton .

     $ sudo mount -o remount,exec /media/removable/SD\ Card 

    Обратите внимание, что вы должны использовать точку монтирования, а не устройство (/ dev / mmcblk1p1). То же самое для USB (/ dev / sdb1) в вашем случае. Только точка монтирования отличается:

     $ sudo mount -o remount,exec /media/removable/USB\ Drive 

    Вы узнаете, что он имел желаемый эффект, потому что «noexec» исчезнет из параметров mount при запросе.

    Interesting Posts

    Как я могу избежать манипулирования аргументами с пробелами в расширении Ex {$ {run {…}}?

    Можно ли одновременно использовать две клавиатуры?

    NFS: невозможно отключить общий ресурс NFS при отключенном сервере

    У вас есть backticks (т.е. `cmd`) в * sh оболочках устарели?

    Применение настроек мыши при запуске

    Как настроить KDE / Gnome-Remote-Server с CentOS 6

    Удалите последний символ перед другим символом

    Fusermount монтажный каталог SSHFS работает вручную, но не автоматически?

    Как файл sed может быть отформатирован так же, как печать в формате printf?

    Как сделать grep на удаленном компьютере и распечатать строку, содержащую эти слова?

    Почему сервер Xnest имеет другой glxinfo, чем обычный сервер Xorg?

    Sudo su issue на ubuntu 14.04 lts: / root / zsh не может быть найден

    добавить участников группы колес, доступ к суду

    Клавиши F1-F12 не работают

    Почему Shift + Insert paste от CLIPBOARD в некоторых приложениях и PRIMARY в других?

    Linux и Unix - лучшая ОС в мире.