2

Я запускаю тестирование Debian и не могу запустить какой-либо двоичный или командный скрипт. Я продолжаю получать "Нет такого файла или каталога" для двоичных файлов и "Отказано в доступе" для исполняемых сценариев оболочки. Umask по умолчанию, и я не дурачился с путями. Кроме того, я знаю об этом вопросе, но он не работает для меня - я скомпилировал свой код на этой машине и пытался запустить его на той же машине. Кроме того, все мои сценарии оболочки имеют правильный shebang.

Любые советы?

Редактировать: я не запускаю никаких приложений Armor или SELinux.

2 ответа2

1

Было бы полезно получить дополнительную информацию, включая копирование / вставку терминальной сессии. Но сразу нужно обратить внимание на то, что двоичные файлы и сценарии имеют правильные разрешения (обычно это режим 0755). Дважды проверьте, что строка shebang в ваших скриптах указывает на допустимый двоичный файл. Запустите команду "file" в двоичном файле, чтобы убедиться, что это настоящий двоичный файл для вашей архитектуры. Конечно, не все ваши двоичные файлы получают "нет такого файла или каталога", иначе вы не смогли бы скомпилировать свой код. Попробуйте команду "which", чтобы увидеть, сможет ли ваша оболочка найти двоичный файл, который вы пытаетесь запустить (например, "какая дата", чтобы увидеть, какая команда будет запущена, если вы ввели "date"), и убедиться, что она находит тот, который вы Я думаю, что вы пытаетесь запустить (иногда команда появляется ранее в вашем PATH, и вы не знаете об этом).

0

Для двоичных файлов это проблема с файлом или с оболочкой. Попробуйте запустить его на sh или с tcsh или перегрузить / переустановить (если вы сделали это самостоятельно, вы можете попробовать перекомпилировать его). Сам bash является двоичным файлом, и если вы можете получить доступ к оболочке, вы можете получить доступ к двоичным файлам, и проблема заключается в файле и / или в оболочке.

Для сценариев оболочки, если ошибка "Отказано в доступе", я бы добавил привилегию выполнения, используя chmod a+x filename . Привилегия выполнения - это форма защиты, предоставляемая системами UNIX. Вы не можете запускать скрипты или двоичные файлы без этой привилегии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .