Ubuntu говорит: "bash: ./program Отказано в доступе"

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

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

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

3 ответа

Решение

chmod u+x program_name, Тогда выполните это.

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

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

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

Попробуй это:

sudo chmod +x program_name
./program_name 

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

chmod u+x program_name
Другие вопросы по тегам