Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 24-10-2014 11:13:55

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

[résolu]Pourquoi les fichiers cachés avec cmd sont-il exécutables ?

Bonjour,

Je me casse la tête sur la question du titre...

Par exemple :

ls -la ~/.bashrc


-rw-r--r-- 1 hypathie hypathie 3557 oct.  23 15:59 /home/hypathie/.bashrc



Pourquoi est-il  "exécutable", sans l'être au sens strict "-rwx" ?

Ok parce qu'il commence par un point :

vim ~/.coucou


echo "coucou"


bash ~/.coucou


coucou




En d'autres termes par quel mécanisme ./blabla fait exécuter les commandes d'un fichier blabla ???

Si quelqu'un avait un petit lien qui l'explique ce serait sympa big_smile

Merci beaucoup

Dernière modification par Hypathie (24-10-2014 13:27:09)

Hors ligne

#2 24-10-2014 12:23:55

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [résolu]Pourquoi les fichiers cachés avec cmd sont-il exécutables ?

Salut Hypathie,

La notion d'être exécutable ou non est complètement indépendante de celle d'être caché.

Un fichier caché est un fichier dont le nom commence par un point.
Un fichier exécutable est un fichier sur lequel on a les droits d'exécution.

Reste ensuite le mécanisme d'exécution.
Lorsque tu tentes d'exécuter un fichier, par exemple via « ./.coucou », ou « iceweasel », le noyau (après avoir vérifié que tu as bien les droits d'exécution dessus) va regarger le fichier en question (~/.coucou ou /usr/bin/iceweasel) et regarder de quel type de fichier il s'agit.
Pour faire ça, il regarde les deux premiers octets. S'ils correspondent à la signature d'un binaire ELF (les binaires les plus courants sous linux, comme vim, apache2, etc.), alors il charge le binaire et l'interprète (l'exécute.)
S'ils correspondent à « #! », alors le noyau sait qu'il s'agit d'un fichier de script à faire exécuter par un interpréteur. L'interpréteur est indiqué sur la première ligne, par exemple « #!/bin/sh ». Dans ce cas, le noyau exécute /bin/sh en lui donnant comme argument le fichier à interpréter.

Lorsque tu lances

bash un-fichier


C'est bash qui est exécuté. Ensuite, bash lit le fichier « un-fichier ». Il a pour ça besoin des droits de lecture (et pas d'exécution) sur « un-fichier », et l'interprète (là encore, pas besoin de droits particuliers pour interpréter un fichier qu'on a déjà chargé en mémoire.)


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 24-10-2014 13:26:45

Hypathie
Membre
Lieu : Chambéry _ Montréal
Distrib. : Jessie
Noyau : Linux debian 3.16.0-4-586
(G)UI : Cinnamon Mate Xfce
Inscription : 28-12-2013

Re : [résolu]Pourquoi les fichiers cachés avec cmd sont-il exécutables ?

merci captnfab smile

Hors ligne

Pied de page des forums