terminal sh pour Mac os X

Généralement il est préférable de ne pas mettre ./ en tête des chemins du PATH, pour des raisons de sécurité.
Imaginons un programme alpha appelant la commande date sans fournir dans son code le chemin explicite vers /usr/bin. Dès lors un utilisateur malveillant pourra créer un code exécutable nommé date dans le répertoire courant et ce sera le code appelé par défaut par le programme alpha.
Pour ma part je ne mets jamais ./ dans mon PATH par habitude mais il reste préférable de le mettre en fin des chemins plutot qu'au départ.

Pour des raisons de sécurité, il est même préférable de ne pas mettre le répertoire courant en temps que tel dans le Patch, pour la très bonne raison que donne Hindifarai.
Sur une machine de production, les répertoires de nécessaires seront d'ailleurs tous identifiés et normalisés pour les applications et le répertoire courant ne sera jamais défini comme ./ :)
 
Mes 2 centimes dans cette discussions.


La syntaxe
Bloc de code:
#!/bin/sh
permet de dire quel est l'interpréteur qui doit être utilisé pour la suite du script. Ceux qui codent en perl mettront plutôt quelquechose comme
Bloc de code:
#!/usr/bin/perl

Sans cela, le système risque de mal comprendre ce qu'on lui demande.

Le PATH
Le PATH définit l'ensemble des répertoires/dossiers dans lesquels le système va chercher des exécutables. Dans le cas présent, le script ne se trouve pas dans un des répertoires précisés et donc, le système ne le trouve pas. L'ajout du ./ devant le nom du script précise ce qu'on appelle un "chemin relatif" c-à-d le chemin à parcourir depuis l'endroit où je suis jusqu'à l'endroit où se trouve mon exécutable. Dans le cas présent, on lui demande d'exécuter un programme dans le répertoire courant.

Par contre, je ne dirais pas que le PATH est mal paramétré. Il est paramétré en suivant des recommendations de sécurité. Par contre, ce que je fais régulièrement, c'est de créer un répertoire bin dans mon dossier personnel et d'ajouter ce répertoire à la fin du PATH système. (Attention, ici, je n'ai pas mon Mac sous les yeux mais un Linux, les infos ne seront peut-être pas correctes à 100%) Pour cela, je modifie le fichier .bashrc à l'aide de vi et j'ajoute les lignes suivantes:
Bloc de code:
PATH=$PATH:/Users/monuser/bin
export PATH

J'espère que ces quelques explications sont claires...;)
 
  • J’aime
Réactions: bompi