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
файл, который говорит, что не разрешать выполнение для файлов на томе), то вы можете перемонтировать том с параметрами, чтобы разрешить выполнение. Однако копирование файла на локальный том может быть более быстрым и простым решением.
Похоже, у вас не установлен флаг выполнения в правах доступа к файлу, попробуйте:
chmod u+x program_name