Comment marquer «autoriser l'exécution du fichier en tant que programme» sur un disque externe

15

Si j'essaie de définir cette option pour un fichier sur un disque externe, il se désélectionne simplement. Faire chmod +xn'a aucun effet. Le lecteur est monté avec des options par défaut.

Borsook
la source
4
Quel est le système de fichiers dessus?
nickguletskii

Réponses:

32

Votre disque externe est probablement au format NTFS ou FAT32. Ces systèmes de fichiers ne prennent pas en charge les autorisations de fichiers Linux.

Vous avez maintenant au moins cinq options:

  • Copiez-le simplement sur le bureau (ou votre dossier d'accueil) et définissez les autorisations sur ce fichier.
  • Sauvegardez les données et reformatez le lecteur sur le ext4système de fichiers. Cela peut être fait en utilisant l'utilitaire de disque ou GParted
  • Exécutez le fichier avec un programme, ouvrez un terminal et exécutez:
    • pour les scripts Bash: bash /path/to/your/file.sh
    • pour les scripts Python: python /path/to/your/file.py
    • pour les scripts Perl: perl /path/to/your/file.pl
    • pour les exécutables Windows: wine /path/to/your/file.exe
    • pour les binaires 32 bits: /lib/ld-linux.so.2 /path/to/your/file
    • pour les binaires 64 bits: /lib/ld-linux-x86-64.so.2 /path/to/your/file
  • Copiez le fichier sur votre ordinateur (par exemple le dossier personnel), définissez-y le bit d'exécution et exécutez-le. (cela ne peut pas être fait pour tous les fichiers)
  • (éventuellement dangereux) Montez la partition avec le bit d'exécution défini pour tous les fichiers. Pour ce faire, suivez ces instructions:

    1. Montez la partition (en l'ouvrant dans un navigateur de fichiers par exemple)
    2. Ouvrez un terminal et exécutez:

      sudo mount -o remount,fmask=027 /media/YOURDRIVE
      

      Si vous ne pouvez pas écrire / accéder aux fichiers, exécutez la commande avec ,uid=$(id -u)après fmask=022:

      sudo mount -o remount,fmask=027,id=$(id -u) /media/YOURDRIVE
      

    "Peut-être dangereux" car vous accordez des autorisations d'exécution à tous les fichiers, utilisez cette option uniquement si les autres méthodes ne fonctionnent pas.

Lekensteyn
la source
7
+1 pour le fichier `/lib/ld-linux.so.2 qui est nouveau pour moi
enzotib
2
wine /path/to/your/filefonctionne également pour les applications Windows.
Nemo
@ Capt.Nemo Bon indice, ajouté
Lekensteyn
Bonne réponse; @Cap - Joli commentaire!
boehj
3

Si le système de fichiers est formaté en FAT ou NTFS, vous pouvez toujours le monter avec les autorisations appropriées. Les autorisations par défaut lorsque vous montez à partir de la ligne de commande incluent des autorisations d'exécution pour tous les utilisateurs.

Pour obtenir plus de résultats spécifiques, voir les pages de manuel mount.ntfs-3get mount, celui - ci dans la section Options de montage pour les matières grasses , en particulier prendre un regard sur les options uid, gid, umask, fmask, dmask,

enzotib
la source
0

Ubuntu 10.04 n'avait aucun problème à définir des autorisations pour exécuter des programmes ou lire / écrire sur des disques externes.

C'est un trait durable pour moi qui en fait la meilleure version jamais exécutée sur USB.
Tout ce qui a été retiré pour arrêter cela - et sa mauvaise connectivité sans fil par défaut - est ce qui rend la 10.10 et au-delà d'un tel gâchis de frustration.

Réparer des trucs comme ça ne devrait pas être le travail de l'utilisateur. Si l'exécution mobile est un must, utilisez 10.04.

247wkman
la source