Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/08/2022, à 21:04

DarKent

[Résolu] Fichier .sh, clique droit exécuter comme un programme

Bonjour à tous,

Depuis ma mise à niveau, j'ai fais un constat qui m'embête un peu.
J'avais fais un script avec un fichier .sh
Il contient ce code:

#! / bin / bash
for x in *.webp; do ffmpeg -i $x ${x%.webp}.jpg; done

Je l'avais dans un dossier sur une partition en NTFS.
Avant, quand je faisais un clic droit dessus, j'avais dans la liste la fonction Exécuter comme un programme.
Quand je double cliquait dessus, il me demandait ce que je voulais faire. Je cliquais sur Lancer dans un terminal et il exécutait le script.
Maintenant je n'ai rien d'autre que le fait d'ouvrir Gedit.
Dans les propriétés du fichier il y a bien de cocher Autoriser l’exécution du fichier comme un programme.

Par ailleurs, dans la doc il est écrit (ici):

Par ailleurs Nautilus ne propose pas de lancer le script par simple clic avec les réglages de bases. Il faut aller dans Menu→ Édition → Préférences → Onglet comportement → fichier texte et exécutable et cocher pour fichiers exécutables Demander à chaque fois.

Je n'ai pas ça dans les paramètres de mon Nautilus !

Je constate ce changement depuis ma réinstallation. J'ai les même partitions qu'avant avec un résultat différent.
Avez-vous une idée ?

Quand mon script est sur la partition du système en ext4, j'ai bien la fonction Exécuter comme un programme quand je fais un clique droit.
Que puis-je faire pour retrouver ce que j'avais ?

Merci par avance.
DK

Dernière modification par DarKent (Le 01/09/2022, à 20:17)


"Toute société qui prétend assurer aux hommes la liberté, doit commencer par leur garantir l'existence." Léon Blum

Hors ligne

#2 Le 31/08/2022, à 06:34

lann

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

Je pense que c'est ta partition ntfs qui est  en cause
Tu ne peux pas lancer à partir d'une partition ext4 ?


<Modéré>

Hors ligne

#3 Le 31/08/2022, à 07:18

MicP

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

Bonjour

Avec le système de fichiers NTFS concerné monté,
montre le retour des lignes de commande suivante :

cat /etc/fstab
cat /etc/mtab

=======
Dans ton script,
il te faudra remplacer la ligne suivante :

#! / bin / bash

par celle là :

#! /bin/bash

Dernière modification par MicP (Le 31/08/2022, à 07:23)

Hors ligne

#4 Le 31/08/2022, à 16:38

DarKent

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

lann a écrit :

Je pense que c'est ta partition ntfs qui est  en cause
Tu ne peux pas lancer à partir d'une partition ext4 ?

C'est surtout que ça fonctionnait très bien avant ma réinstalle avec la même partition NTFS. Je n'ai rien touché sur celle-ci.

cat /etc/fstab

me retourne :

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb4 during installation
UUID=e4134729-eaf1-4941-afe5-565d5d6a0212 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sdb3 during installation
UUID=2548daf3-db83-4f29-9f02-091e0b6beb58 none            swap    sw              0       0

/dev/sda1	/media/darkent/Documents	 ntfs-3g 	rw,user,auto,gid=1000,uid=1000,nls=utf8,umask=002	0	0
cat /etc/mtab

me retourne :

sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,nosuid,relatime,size=8109356k,nr_inodes=2027339,mode=755,inode64 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,nodev,noexec,relatime,size=1628936k,mode=755,inode64 0 0
/dev/sdb4 / ext4 rw,relatime,errors=remount-ro 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,inode64 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k,inode64 0 0
cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13256 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime,pagesize=2M 0 0
mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
tracefs /sys/kernel/tracing tracefs rw,nosuid,nodev,noexec,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0
configfs /sys/kernel/config configfs rw,nosuid,nodev,noexec,relatime 0 0
none /run/credentials/systemd-sysusers.service ramfs ro,nosuid,nodev,noexec,relatime,mode=700 0 0
/dev/loop0 /snap/bare/5 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop2 /snap/chromium/2051 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop3 /snap/core/13425 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop4 /snap/core18/2538 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop5 /snap/core20/1587 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop6 /snap/core20/1611 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop8 /snap/gimp/383 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop7 /snap/core22/188 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop10 /snap/gnome-3-38-2004/112 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop11 /snap/gimp/393 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop9 /snap/gnome-3-28-1804/161 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop12 /snap/gtk2-common-themes/13 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop14 /snap/gtk-common-themes/1534 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop15 /snap/inkscape/10423 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop16 /snap/snap-store/575 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop17 /snap/gtk-common-themes/1535 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop18 /snap/snapd/15177 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop19 /snap/snap-store/582 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop20 /snap/snapd/16292 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop21 /snap/snapd-desktop-integration/10 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/loop22 /snap/snapd-desktop-integration/14 squashfs ro,nodev,relatime,errors=continue 0 0
/dev/sda1 /media/darkent/Documents fuseblk rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=1628932k,nr_inodes=407233,mode=700,uid=1000,gid=1000,inode64 0 0
portal /run/user/1000/doc fuse.portal rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0
tmpfs /run/snapd/ns tmpfs rw,nosuid,nodev,noexec,relatime,size=1628936k,mode=755,inode64 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0
nsfs /run/snapd/ns/snapd-desktop-integration.mnt nsfs rw 0 0
nsfs /run/snapd/ns/snap-store.mnt nsfs rw 0 0
/dev/loop23 /snap/chromium/2064 squashfs ro,nodev,relatime,errors=continue 0 0
nsfs /run/snapd/ns/chromium.mnt nsfs rw 0 0
/dev/loop1 /snap/inkscape/10432 squashfs ro,nodev,relatime,errors=continue 0 0
nsfs /run/snapd/ns/inkscape.mnt nsfs rw 0 0
/dev/loop24 /snap/gnome-3-38-2004/115 squashfs ro,nodev,relatime,errors=continue 0 0

J'ai changé la première ligne, ça n'a rien changé.


"Toute société qui prétend assurer aux hommes la liberté, doit commencer par leur garantir l'existence." Léon Blum

Hors ligne

#5 Le 31/08/2022, à 18:05

MicP

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

Bonjour

cat /etc/mtab a écrit :
…
/dev/sda1 /media/darkent/Documents fuseblk rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0
…

Dans l'extrait ci-dessus, on voir l'option noexec est dans la liste des options de montage de ce système de fichiers
ce qui fait qu'aucun des fichiers qu'il contiendrait ne pourra être exécutable.

Si tu veux qu'un fichier contenu dans un tel système de fichiers puisse être exécutable,
il faudrait spécifier l'option exec ou defaults dans la liste des options concernant ce système de fichiers dans le fichier /etc/fstab

…
/dev/sda1	/media/darkent/Documents	 ntfs-3g 	rw,exec,user,auto,gid=1000,uid=1000,nls=utf8,umask=002	0	0
…

Mais ATTENTION : une fois que l'option exec est spécifiée au montage,TOUS les fichiers de ce système de fichiers pourront être exécutables
donc ce n'est pas vraiment une bonne idée et il vaudrait mieux que tu mettes tes scripts dans un système de fichiers de type ext4

=======
Voir le manuel de la commande mount

man mount

et le manuel de la commande mount.ntfs

man mount.ntfs

Dernière modification par MicP (Le 31/08/2022, à 18:07)

Hors ligne

#6 Le 31/08/2022, à 19:51

DarKent

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

Merci pour cette réponse.

J'ai modifié on fstab comme suit:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb4 during installation
UUID=e4134729-eaf1-4941-afe5-565d5d6a0212 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sdb3 during installation
UUID=2548daf3-db83-4f29-9f02-091e0b6beb58 none            swap    sw              0       0

/dev/sda1	/media/darkent/Documents	 ntfs-3g 	rw,exec,user,auto,gid=1000,uid=1000,nls=utf8,umask=002	0	0

J'ai redemarré et voici le résultat de la ligne concernée dans mstab:

/dev/sda1 /media/darkent/Documents fuseblk rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 0 0

Concrètement le fichier n'est pas plus exécutable qu'avant.

Je ne comprend pas.
D'autres suggestions ? Merci par avance wink


"Toute société qui prétend assurer aux hommes la liberté, doit commencer par leur garantir l'existence." Léon Blum

Hors ligne

#7 Le 31/08/2022, à 20:45

MicP

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

Dans ton fichier /etc/fstab
remplace la ligne concernée par ce qui suit :

/dev/sda1	/media/darkent/Documents	 ntfs 	defaults,nodev,gid=1000,uid=1000,nls=utf8,umask=002

EDIT : J'ai ajouté l'option nodev

Dernière modification par MicP (Le 31/08/2022, à 22:32)

Hors ligne

#8 Le 31/08/2022, à 21:21

DarKent

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

J'avais fais d'autres essais entre temps sans forcement redémarrer le PC, en utilisant la commande:

sudo mount -a

Si j'ai bien compris, elle permet de vérifier les changements sans redémarrer.

Dans le doute, pour ta dernière proposition, j'ai quand même redémarré.
Et du coup ça fonctionne !

J'ai l'impression que c'est aussi le fait d'être passé de ntfs-3g à ntfs qui a contribué mais je peux me trompé.
Quelle différence entre les deux ?

En tout cas merci ! wink

Dernière modification par DarKent (Le 31/08/2022, à 21:23)


"Toute société qui prétend assurer aux hommes la liberté, doit commencer par leur garantir l'existence." Léon Blum

Hors ligne

#9 Le 31/08/2022, à 22:00

MicP

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

La ligne de commande sudo mount -a va lire le fichier /etc/fstab et tenter de monter tous les systèmes de fichiers qui sont listés dans ce fichier (s'il n'y a pas l'option noauto)

D'ailleurs, j'aurais dû te proposer d'utiliser l'option v qui est plus bavarde
ce qui aurait donné :

sudo mount -av

Voir le manuel de la commande mount
en entrant la ligne de commande suivante :

man mount

dont voici quelqes extraits :

man mount a écrit :
…
 -a, --all
        Monter tous les systèmes de fichiers (des types donnés) mentionnés dans fstab (à part ceux dont la ligne contient le mot-clé noauto).
        Les systèmes de fichiers sont montés dans l’ordre de fstab.
        La commande de montage compare la source et la cible du système de fichiers (et la racine du système de fichiers pour les montages « bind » et Btrfs) pour détecter les systèmes de fichiers déjà montés.
        La table du noyau avec les systèmes de fichiers déjà montés est mise en cache lors de mount --all.
        Cela signifie que toutes les entrées en double seront montées.

        L’option --all est aussi possible pour une opération de remontage.
        Dans ce cas, tous les filtres (-t et -O) sont appliqués à la table des systèmes de fichiers déjà montés.

        Depuis la version 2.35, il est possible d’utiliser l’option -o de la ligne de commande pour modifier les options de montage de fstab (consulter aussi --options-mode).

        Remarquez que ce n’est pas une bonne pratique d’utiliser mount -a pour la vérification de fstab. La solution préconisée est findmnt --verify.

…

 -v, --verbose
        Mode détaillé.

…

=======
J'avais d'abord essayé d'utiliser l'option exec en l'ajoutant dans la liste des options,
mais comme ça n'a pas fonctionné comme prévu, j'ai utilisé ntfs (plutôt que ntfs-3g) et l'option defaults avec laquelle l'option exec est aussi activée
defaults <=> rw,suid,dev,exec,auto,nouser,async

… J'ai l'impression que c'est aussi le fait d'être passé de ntfs-3g à ntfs qui a contribué mais je peux me trompé. …

Oui, c'est bien le fait d'avoir spécifié ntfs au lieu de ntfs-3g qui a permit de rendre exécutable depuis linux les fichiers qui sont dans un système de fichiers ntfs

theregister.com -> How Windows NTFS finally made it into Linux

Mais perso, pour ne pas prendre de risque, je préfère quand même quand les fichiers qui sont sur un système de fichiers ntfs ne sont pas exécutables depuis un système Linux.
Là, j'ai simplement répondu à ta demande : rendre exécutable un script bash qui serait dans un système de fichiers ntfs

Dernière modification par MicP (Le 01/09/2022, à 21:36)

Hors ligne

#10 Le 01/09/2022, à 20:17

DarKent

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

Et bien merci pour ton aide et ces précisions.


"Toute société qui prétend assurer aux hommes la liberté, doit commencer par leur garantir l'existence." Léon Blum

Hors ligne

#11 Le 29/12/2022, à 02:55

Coeur Noir

Re : [Résolu] Fichier .sh, clique droit exécuter comme un programme

Est-ce que depuis ton Linux tu parviens à écrire dans la partition ntfs ?

Le pilote ntfs-3g est celui qui permet lecture+écriture depuis Linux dans une partition ntfs.
Ce pilote dispose d'une option permissions qui permet d'émuler ( côté Linux ) des droits et permissions sur les éléments contenus dans la partition ntfs.
Voire de faire automatiquement coïncider un user au sens Windows du terme avec un user au sens Linux du terme ( UserMapping ).

Le pilote ntfs ( plus ancien ) ne permet que la lecture d'une partition ntfs depuis Linux.

Le futur pilote inclus au noyau ntfs3 est plus ou moins fonctionnel, avec des limites et surtout aucun utilitaire pour l'instant ne s'en sert par défaut ( c'est tout neuf, pas assez testé ou éprouvé à priori. )
Voir les essais de Geole → https://forum.ubuntu-fr.org/viewtopic.php?id=2076485

D'où : ntfs-3g est toujours installé par défaut sous 22.10 comme 23.04 et reste l'outil à privilégier en cas de partition ntfs, en attendant mieux.

Nautilus l'explorateur de fichiers de Gnome, aujourd'hui, ne lance / n'exécute plus rien par défaut. C'est fait exprès.

Bref, non, ça n'est pas : « le fait d'avoir spécifié ntfs au lieu de ntfs-3g qui a permis de rendre exécutable depuis linux les fichiers qui sont dans un système de fichiers ntfs »
mais plutôt le fait d'avoir spécifié l'option defaults au montage ainsi que les uid et gid, qui te rendent alors propriétaire ( du point de vue Linux ) du contenu de cette partition ntfs.

Sans ça, vus depuis Linux tous les éléments contenus par une partition ntfs portent les droits rwxrwxrwx soit 777 et root:root comme propriétaires.
Comme dorénavant, grâce à ces options tu es le propriétaire de ces éléments ( qui portent le droit d'exécution ) tu peux donc les …exécuter.

Est-ce que darkent est ton nom d'utilisateur sous Linux ?
Il est prudent de laisser la pleine jouissance du dossier /media/$USER/ au système, qui s'en sert pour les montages automatiques ( clé usb, dd externe, cartes mémoires, dvd, cd, etc soit tout ce qui n'est pas déjà inscrit dans fstab ). Et de placer les dossiers~points~de~montage de ton choix directement sous /media/un_dossier_point_de_montage en prenant soin que leur nom ne puisse pas être confondu avec un utilisateur humain potentiel → utiliser des majuscules dans les noms de ces dossiers~points~de~montage → les dossiers de données à l'attention des utilisateurs ont conventionnellement un nom commençant par une majuscule ; les noms d'utilisateur sont toujours en minuscule.

Dernière modification par Coeur Noir (Le 29/12/2022, à 22:52)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne