/$HOME/bin au début de $PATH = trou de sécurité ?!?

Bonjour à tous,

Je ne suis pas sur d’être exactement au bon endroit car ce post ne traite pas à proprement parlé d’un dysfonctionnement…

J’ai remarqué sur une install toute fraiche que si un répertoire bin était créé dans le home d’un user, le chemin vers ce dossier (/$HOME/bin) était automatiquement ajouté au début de la variable PATH :~$ echo $PATH /home/user01/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games(C’est par l’intermédiaire du fichier /$HOME/.profile que cet ajout est réalisé)

Il n’y a que moi que ça choque ? :open_mouth:

:arrow_right: Pour des raisons évidentes de sécurité, c’est pas plutôt à la fin de $PATH que ce chemin devrait être ajouté ?!??

je dirais même que ton /home ne doit pas être dans le PATH,danger.

Je ne vois pas en quoi c’est un problème de sécurité en soi.

Deux cas de figure :

  • l’admin autorise l’exécution sur la partition /home (point de montage en exec), auquel cas PATH ou non l’utilisateur peut exécuter ce qu’il veut (au pire il suffit d’indiquer le chemin complet)
  • l’admin interdit l’exécution sur la partiotion /home (point de montage en noexec), auquel cas peu importe car l’utilisateur ne pourra rien lancer à partir du /home

Quant à la question de savoir si le fait qu’il soit au début du PATH est un problème et s’il ne serait pas mieux à la fin… Je pense que non.
Le répertoire $HOME/bin est sous le contrôle de l’utilisateur, et le fait de le mettre en début de PATH lui permet d’écrire facilement des wrappers autour de certaines commandes pour modifier leur comportement. Du coup ça fonctionne quasiment comme les alias dans le .bashrc.
N’oublie pas que ce PATH n’est utile que pour l’utilisateur actuellement connecté : user1 n’aura pas /home/user2/bin dans son PATH donc pas de risque d’interférence entre les utilisateurs.

Pour moi, tu l’auras compris, le problème ne se situe pas au niveau du PATH mais au niveau du montage exec/noexec de la partition /home.

Concernant le montage exec/noexec de la partition /home, c’est déjà une notion un peu “avancée” qu’un débutant ne connaîtra/n’utilisera pas au début de son apprentissage du monde Linux.

[quote=“syam”]Le répertoire $HOME/bin est sous le contrôle de l’utilisateur[/quote]Certes… mais comme il est inclut automatiquement en premier dans le path et sans qu’on le sache, tu ne trouves pas que ça ne laisse aucun droit à l’erreur ?

[quote=“syam”]et le fait de le mettre en début de PATH lui permet d’écrire facilement des wrappers autour de certaines commandes pour modifier leur comportement. Du coup ça fonctionne quasiment comme les alias dans le .bashrc.[/quote]Justement, imaginons que tu veuilles modifier le comportement de ls en créant un petit script “ls” dans ton répertoire $HOME/bin : du fait que c’est automatique et que c’est indiqué nulle part, au premier essai si ton script comporte une erreur, tu risques d’avoir des surprises.

C’est quand même beaucoup plus sécurisant d’avoir à indiquer le chemin complet d’un script perso plutôt que de faciliter une mauvaise manip en systématisant l’accès en premier au répertoire le contenant, non ?
Enfin… cet avis n’engage que moi… :smiley:

Hmm…
À moins de créer toi-même un script en /home/user/bin/ls contenant une c*nnerie du genre “rm -Rf” je ne vois pas trop comment arriver à de réels dégâts… Et encore, un script utilisateur lancé avec des droits utilisateurs ne pourra faire de dégas que chez ledit utilisateur !