Ubuntu говорит: "bash:./program Permission denied"

Я запускаю Ubuntu на компьютере 1 и компьютере 2. Я скомпилировал программу на С++ на компьютере 1, и я могу выполнить ее с терминала с помощью ./program_name. Он отлично работает.

Однако, когда я пытаюсь сделать это на компьютере 2, он говорит: bash: ./program_name: permission denied

Что не так и что я могу сделать с этим?

Ответ 1

chmod u+x program_name. Затем выполните его.

Если это не работает, скопируйте программу с USB-устройства на собственный том в системе. Затем chmod u+x program_name в локальной копии и выполните это.

Unix и Unix-подобные системы, как правило, не будут выполнять программу, если она не отмечена разрешением на выполнение. Как вы скопировали файл из одной системы в другую (или смонтировали внешний том), возможно, отключили разрешение на выполнение (как функцию безопасности). Команда chmod u+x name добавляет разрешения для пользователя, которому принадлежит файл для его выполнения.

Эта команда только изменяет разрешения, связанные с файлом; он не изменяет элементы управления безопасностью, связанные со всем томом. Если это элементы управления безопасности на томе, которые мешают исполнению, то вы можете повторно установить том с параметрами, чтобы разрешить выполнение. Однако копирование файла на локальный том может быть более быстрым и простым решением.

Ответ 2

Попробуйте следующее:

sudo chmod +x program_name
./program_name 

Ответ 3

Похоже, что у вас нет флага выполнения, установленного в разрешениях файла, попробуйте:

chmod u+x program_name