Ubuntu говорит: "bash:./ в разрешении программы отказано " [закрыто]
Я запускаю 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
добавляет разрешения для пользователя, которому принадлежит файл, чтобы выполнить его.эта команда изменяет только разрешения, связанные с файлом; она не изменяет элементы управления безопасностью, связанные со всем Томом. Если это элементы управления безопасностью на томе, которые мешают выполнению (например, a
noexec
опция может быть указана для Тома в Unixfstab
file, который говорит, что не разрешает разрешение на выполнение для файлов на томе), затем вы можете переустановить том с помощью варианты для выполнения. Однако копирование файла на локальный том может быть более быстрым и простым решением.