Вопрос Ошибка Bash при попытке выполнить файл


Я новичок в Linux и в программировании, поэтому, пожалуйста, извините за недостаток знаний.

Я пытаюсь запустить базовую программу с именем trial.c с исполняемым файлом с именем пытаясь но когда я печатаю ./trying в терминале эта ошибка возникает:

bash: ./trying: Permission denied

Папка находится на моем жестком диске с 3 разделами, одна для дома, другая для моих ubuntu_files, а другая - это файл fat32 с именем MISC. Папка находится внутри раздела fat32 моего жесткого диска.

проблема в том, насколько я пытаюсь использовать chownа также chmod(оба с рекурсивными), чтобы изменить разрешение папки, содержащей trial.c и исполняемый файл (пытаясь), сообщение об ошибке bash все равно останется прежним.

Пользователь nciacrklo, и я напечатал groups nciacrklo чтобы узнать, какая группа связана с этим пользователем, и попробовал коды, найденные ниже в моем терминале.

sudo chown nciacrklo:nciacrklo /media/nciacrklo/MISC/LibUsb -R -v

и после этого он сказал:

ownership of `/media/nciacrklo/MISC/LibUsb/trying' retained as nciacrklo:nciacrklo 
ownership of `/media/nciacrklo/MISC/LibUsb/trial.c' retained as nciacrklo:nciacrklo

а потом,

sudo chmod 755 /media/nciacrklo/MISC/LibUsb -R -v

Затем он сказал:

mode of `/media/nciacrklo/MISC/LibUsb/trying' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)
mode of `/media/nciacrklo/MISC/LibUsb/trial.c' changed from 0644 (rw-r--r--) to 0755 (rwxr-xr-x)

наконец, я попробовал ./trying снова, но такая же ошибка появилась.

bash: ./trying: Permission denied

пожалуйста, помогите мне, я борюсь с этим, и все же мне нужно много программировать о теме LibUsb>. <.

любые комментарии о том, как использовать LibUsb для получения изображений с веб-камеры, также будут очень полезны. Благодаря!!! \ М /,


2
2017-11-24 12:29


происхождения


я не уверен, но не могу использовать sudo здесь? - Sukupa91
Бег chmod +x по файлу ./trying - chmod +x ./trying - это должно сделать его исполняемым. Кроме того, с trial.c программы, возможно, вам придется сначала скомпилировать его gcc - посмотри на man gcc в терминале. На chmod есть отличная страница Вот, Разрешения файла не должны быть rw-r--r--, но rwxr--r-x для его выполнения (Я думаю - в принципе, он должен иметь x в нем где-то), - Wilf


ответы:


Если все права доступа к файлу в порядке, как кажется, возможно, это связано с тем, что ваш раздел монтируется с помощью noexec флаг.

Чтобы проверить это: type mount и проверьте, так ли это. Вы должны увидеть что-то вроде:

/dev/sdd1 on /media/banana type vfat (rw,noexec,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro)

(см. noexec там?)

Перемонтируйте раздел с помощью noexec флаг как таковой:

sudo mount -o remount,exec /media/banana

(вам придется адаптировать banana часть к вашему делу). И убедитесь, что это сработало, выпуская mount еще раз:

/dev/sdd1 on /media/banana type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro)

(больше не надо noexec Вот!).

Если это была ваша проблема, вам нужно выяснить, что раздел был смонтирован с помощью noexec флаг в первую очередь.


2
2017-11-24 14:49



Привет, gniourf! спасибо, что нашли время, чтобы ответить на мой вопрос, но я все еще придерживаюсь этой ошибки. Я последовал тому, что вы сказали, и я получил этот результат, запустив mount: /dev/sda3 on /media/nciacrklo/MISC type vfat  (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,ut  f8=1,showexec,flush,uhelper=udisks2)  но все же у меня есть эта ошибка bash. - Carl
@Carl, это известная проблема с udisk, которая по умолчанию будет устанавливать vfat с помощью showexec вариант. Вы можете либо написать свое собственное правило udev (утомительное), либо размонтировать свой том, и перемонтировать его вручную: mount /dev/sda3 /mount/point, - gniourf_gniourf
Хорошо. Имма попробует это в другой раз. временное исправление заключается в том, что я поместил файл в свой Linux-раздел и запустил / отредактировал его там. Но спасибо за это! Я попробую это скоро :) - Carl