2

Я недавно установил безголовый сервер Debian Jessie amd64 (используя одну из сетевых утилит). Сервер запущен и работает, а система работает как положено.
Но потом я скомпилировал .cgi (написанный на C++). Компиляция (с использованием g++ 4.9.2) прошла хорошо, но как только я пытаюсь выполнить файл из bash он говорит, что No such file or directory .
Читая другие сообщения об этой ошибке, я пытался использовать file , ldd и даже команду cat , но все они говорят, что не могут найти этот файл.
ls -l показывает файл с разрешением 755 как и ожидалось.
Но bash-завершение ничего не делает, оно не завершает путь автоматически.

Но теперь это становится интересным:
Использование midnight commander я могу успешно читать, редактировать и выполнять двоичный и apache перечисляет полный индекс каталога , включая .cgi и даже позвольте мне его скачать.

Что здесь происходит?
Поскольку я мог выполнить его из mc я не думаю, что речь идет о самом исполняемом файле.
Может ли быть поврежден Bash?
Заранее спасибо за любые идеи!

2 ответа2

0

Используйте команду updatedb . Это позволит обновить базу данных вашего каталога. Пожалуйста , смотрите ссылку для получения дополнительной информации updatedb Docs

0

Вы можете искать этот файл в каталоге и hexdump всех имен файлов, как это:

find . -exec sh -c 'echo -n "$1" | xxd' _ {} \;

Он печатает (например):

0000000: 2e2f 696e 6465 782e 6367 69              ./index.cgi
0000000: 2e2f 696e 6465 782e 6367 690a            ./index.cgi.

Вторая строка index.cgi имеет новую строку в конце (0a). Вы можете посмотреть, как выглядит имя файла, и сравнить его с первой строкой в моем примере вывода. Если все правильно, имя файла должно выглядеть точно так же, как в первой строке.

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