Почему я не могу запускать программы на другом разделе в Linux?

Поэтому для удобства я сохраняю все свои данные на моем разделе Windows, чтобы я мог легко получить доступ к моим данным из Linux и Windows. Однако я попытался скомпилировать C ++-программу с g ++ и выяснил, что я не могу запустить программу с ./program_filename , поскольку она сообщает мне

 bash: program_filename: Permission denied 

дела

 cp program_filename ~/program_filename 

и запуск его из моего домашнего каталога работает просто отлично.

Поэтому я попробовал chmod +rwx program_filename , но ls -l показывает, что разрешения все еще установлены как -rw-------. для всех файлов в каталоге. Ничто не меняется, когда я делаю это как root.

Есть ли простое решение для этого?

(В случае, если это полезно, я запускаю Fedora 16 x64)

Убедитесь, что параметры монтирования разрешают бит разрешения выполнения.

Существуют опции монтирования, которые можно использовать для ограничения разрешений файлов в смонтированной файловой системе: общий noexec запрещает выполнение всех файлов, FAT-специфичный параметр showexec предоставляет разрешение только файлам с расширениями .exe , .com и .bat . Также обратите внимание, что noexec подразумевается user и users .

Если вы используете user или users вы все равно можете получить бит разрешения выполнения, выполнив установку с явно указанной опцией монтирования exec после параметра user или users .

Подробнее см. В руководстве по монтажу .

Когда вы монтируете раздел FAT или NTFS, разрешения определяются во время монтирования с помощью параметров umask , fmask и dmask . Первый – общий, два других – для файлов и каталогов.

Также вам может быть интересна опция uid и gid для установки владельца и группы всех файлов и каталогов в разделе.

Пример:

 mount -t ntfs-3g -o uid=500,gid=500,umask=0022 /dev/sda1 /mnt/win 

В Puppy Linux по умолчанию вы можете запускать скрипты на разделах NTFS или FAT: http://murga-linux.com/puppy/viewtopic.php?t=95174