web-dev-qa-db-fra.com

Impossible de définir les autorisations pour les fichiers sur une partition NTFS

Je me souviens que j’ai pu exécuter un fichier .exe Linux qui avait été placé sur une partition NTFS avant l’installation de 10.10 RC. Mais si j'essaie de l'exécuter maintenant, je ne peux pas l'exécuter car il ne dispose pas de l'autorisation d'exécution. La mauvaise partie est que je ne peux pas changer les autorisations aussi. Je suis chmod- Ding +x mais aucun changement du tout avec ses autorisations.

Donc, cela semble être un bug? De l'aide?

Bien que lorsque je le mette sur une partition ext4, je peux définir l'autorisation. Mais je veux le faire comme je le faisais auparavant, directement à partir de son emplacement NTFS par défaut.

12
ashishsony

NTFS ne prend pas en charge l’autorisation d’exécution, car il est conçu pour Windows, qui n’a pas le même concept de fichiers "exécutables" que Linux. Si vous essayez d'exécuter des fichiers Windows .exe dans Wine, cela devrait quand même fonctionner si vous exécutez explicitement wine, comme ceci:

wine /path/to/executable.exe

Si vous avez besoin d'exécuter des fichiers directement, vous pouvez définir les autorisations qui seront appliquées à tous les fichiers avec l'option fmask dans /etc/fstab. Vous devrez peut-être aussi ajouter l'option exec si ce n'est pas la valeur par défaut pour NTFS (je n'ai pas de lecteur à vérifier pour le moment). La valeur de fmask indique au pilote les bits à désactiver. Par exemple, pour autoriser les lectures, les écritures et les exécutions de tous les utilisateurs, vous devriez avoir quelque chose comme ceci:

/dev/hda1  /mnt/windows  ntfs-3g  defaults,exec,fmask=000  0  0

S'il existe déjà une option fmask, le moyen le plus simple d'activer le bit d'exécution est de soustraire 1 de tout chiffre impair.

Si vous ne savez pas comment fonctionne le masquage des autorisations, l'idée de base est que les autorisations de lecture, d'écriture et d'exécution sont représentées par les valeurs 4, 2 et 1, respectivement. Vous pouvez les ajouter ensemble pour combiner des autorisations. Ainsi, par exemple, lecture et écriture seraient 6. Le masque d'autorisation est une combinaison de trois chiffres qui s'appliquent au propriétaire, au groupe et aux "autres" (tous les autres).

Rappelez-vous simplement que fmask (ainsi que umask et dmask) dans fstab sont les autorisations que vous souhaitez désactiver.

Comme exemple légèrement plus intéressant, cela définirait les autorisations sur "rwx" pour le propriétaire, "rx" pour le groupe et "r" pour tout le monde:

/dev/hda1  /mnt/windows  ntfs-3g  defaults,exec,fmask=023  0  0
12
Matthew Crumley

Cela ressemble à un bug dans les anciennes versions ...

Essayez de passer à Wine 1.3

Cela a fonctionné pour moi et je peux maintenant installer n'importe quoi directement à partir d'une partition NTFS.

0
Rafael Borges

J'utilise une ligne comme celle-ci dans mon fichier /etc/fstab:

/dev/sda5    /media/disk    ntfs,   user,noauto,exec    0 2

ce qui empêche la partition d'être montée au démarrage, mais me permet de monter en tant que root avec:

Sudo mount /dev/sda5

ou

Sudo mount /media/disk 

à partir de la ligne de commande.

Monter depuis "Places" donne une erreur, donc cette solution n'est pas parfaite, mais je suis disposé à vivre avec. J'espère que cela est utile pour les autres.

0
codejockey