Pourquoi ne puis-je pas exécuter des programmes sur une autre partition sous Linux?

Pour plus de commodité, je stocke toutes mes données sur ma partition Windows afin que je puisse accéder facilement à mes données depuis Linux et Windows. Cependant, j'ai essayé de comstackr un programme C ++ avec g ++, et j'ai découvert que je ne peux pas exécuter le programme avec ./program_filename , car il me dit

 bash: program_filename: Permission denied 

Faire

 cp program_filename ~/program_filename 

et l'exécuter à partir de mon directory personnel fonctionne très bien, cependant.

J'ai donc essayé chmod +rwx program_filename , mais ls -l montre que les permissions sont toujours définies comme -rw-------. pour tous les files du directory. Rien ne change quand je le fais en tant que root, non plus.

Y a-t-il une solution simple pour cela?

(Dans le cas où il est utile, je cours Fedora 16 x64)

Assurez-vous que vos options de assembly autorisent le bit d'autorisation d'exécution.

Il existe des options de assembly que l'on peut utiliser pour limiter les permissions des files dans le système de files monté: noexec général empêche l' noexec tous les files, l'option spécifique FAT showexec octroie l'autorisation uniquement aux files .exe , .com et .bat . Notez également que noexec est impliqué par l' user et les users .

Si vous utilisez l' user ou les users vous pouvez toujours get le bit d'autorisation d'exécution en travaillant avec l'option de assembly exec spécifiée explicitement après l'option user ou users .

Voir mount manpage pour plus de détails.

Lorsque vous montez une partition FAT ou NTFS, les permissions sont déterminées au moment du assembly, par les options umask , fmask et dmask . Le premier est général, les deux autres sont spécifiques aux files et aux directorys.

Aussi, vous pouvez être intéressé par l'option uid et gid pour établir le propriétaire et le groupe de tous les files et directorys de la partition.

Un exemple:

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

Dans Puppy Linux, vous pouvez par défaut exécuter des scripts sur des partitions NTFS ou FAT: http://murga-linux.com/puppy/viewtopic.php?t=95174