J'essaie d'installer une application portable sur ma clé USB de manière à ce qu'elle soit compatible avec Ubuntu et Windows (en particulier, un programme appelé eToys). La prise en charge est déjà intégrée dans l'application pour les deux systèmes d'exploitation - il y en a etoys.sh
pour Ubuntu et etoys.exe
pour Windows. J'ai décidé d'installer sur un lecteur FAT car cela peut être lu sur les deux systèmes. Cela fonctionne bien pour Windows, mais pour une raison quelconque, je ne peux pas exécuter etoys.sh sur Ubuntu.
Le problème n'est pas avec le fichier - lorsque tout le dossier est copié sur le disque dur local, l'application fonctionne très bien dans Ubuntu. Mais lorsque j'essaie de l'exécuter à partir de l'USB, il ouvre le fichier dans un éditeur de texte.
J'ai ensuite essayé de l'exécuter à partir d'un terminal, mais j'ai reçu le message Autorisation refusée.
J'ai également eu le même problème avec d'autres exécutables.
Existe-t-il un moyen facile d'exécuter des choses à partir d'une clé USB?
la source
Réponses:
En raison des limitations du système de fichiers FA32, vous ne pouvez pas.
Maintenant, vous pouvez tricher:
sh etoys.sh
au lieu de./etoys.sh
si vous le souhaitez, vous pouvez même créer un autre script (qui se trouverait sur votre disque dur, par exemple) qui appelle simplement votre script sur la clé USB:
la source
Le montage de l'appareil avec
-o mode=<value>
devrait fonctionnerDéfinissez le mode de tous les fichiers sur valeur et
0777
sans tenir compte des autorisations d'origine. Ajoutez une autorisation de recherche aux répertoires disposant d'une autorisation de lecture. La valeur est donnée en octal.la source
mode=
option pour vfat, voir mount (8) .J'ai en fait trouvé une excellente solution sur http://ubuntuforums.org/showthread.php?t=1665289 qui a résolu le problème.
Fondamentalement, il dit d'exécuter la commande
et cela empêchera les disques de se monter automatiquement avec l'option showexec.
Je n'aime pas répondre à ma propre question, mais cela a fonctionné pour moi et j'espère que cela aide aussi les autres.
pour ubuntu 18.04:
la source
En fin de compte, la question semble être que
udisks
monte le système de fichiers avec l'showexec
option empêchant tout fichier qui ne se termine pas.exe
,.bat
ou.com
être exécuté.Une question connexe (comment donner des options de montage personnalisées aux udisks) peut être trouvée ici: Comment configurer pour enregistrer des données pour qu'elles soient instantanées? Il s'avère que vous pouvez utiliser la
udev
configuration pour ce faire.Est-il vraiment impossible de définir des options de montage par défaut pour les udisks? propose une autre solution basée sur
udisks-glue
, mais elle semble moins convaincante, car elle repose finalementudisks
, de sorte qu'il semble que vous pouvez ajouter des options, mais pas les supprimer, et en particuliershowexec
est toujours là).Dans tous les cas, j'ai tendance à préférer cela à patcher un fichier binaire.
la source
Aucune des solutions présentées n'a fonctionné pour autant que je sache pour obtenir un programme que j'ai écrit en tant que programme de terminal Linux à exécuter dans ma partition FAT32, mais changer le nom de fichier du programme pour inclure l'extension .exe a fonctionné (merci pour l'astuce) , tout ce que j'ai fait était de renommer le nom de fichier en nom de fichier.exe pour le programme terminal que j'essayais d'exécuter sur une partition FAT32, puis de le démonter, de le remonter et de définir les autorisations de disque pour autoriser l'exécution, puis accédez à nom de fichier. exe et définissez ses autorisations, puis la coche resterait au lieu de revenir à un moins, et lorsque je définis le chemin d'accès et que je saisis ./filename.exe à l'invite du terminal, le programme s'exécutait comme il se doit et affiche la ligne de commande, y compris le nom de fichier .exe tel qu'il est entré, bien que le répertoire de fichiers Ubuntu affiche le fichier sous MSDOS / Windows, il s'exécute comme un programme Linux.
la source
J'ai donc trouvé une solution beaucoup plus simple (et plus sûre).
Utilisez gparted pour formater l'USB FAT32, puis us Partition => Manage Flags pour définir les drapeaux suivants: boot, lba
la source
Vous pouvez utiliser le
umask=000
mode:Source: wiki.linuxquestions.org , section "Options de montage pour fat" dans mount (8) .
la source
Si la syntaxe est bash ...
la source