• [^] # Re: euh...

    Posté par . En réponse au message Complétude du shell - fonction lsmod manquante. Évalué à 2.

    d'où je constate qu'effectivement le $path ne renvoie pas vers cette fonction.

    Je comprends que la non inclusion provient de la volonté de ne pas "exposer"
    ces commandes. Quel est le risque: charger un module qui serait un trojan?


    Une précision importante : le fait que certaines commandes, destinées au root, n'apparaissant pas dans le path des user ordinaires n'a absolument aucun impact en terme de sécurité !

    La variable $PATH ne sert qu'à se passer du chemin complet lorsqu'on tape des commande. Par exemple, au lieu de taper "/bin/ls", on peut simplement tapper "ls" car le shell trouvera tout seul la commande dans le répertoire "/bin", qui est déclaré dans $PATH.

    Mais rien ne t'empèche de tapper des commandes qui ne sont pas dans le path, en tappant leur chemin complet, comme "/sbin/lsmod". Essaye, tu verras bien ce que ça donne.

    Par contre, des commandes comme modprobe ne mache que si elle sont lancée par le root, pour des raison de sécurité. Mais c'est le binaire qui fait cette vérification, ou parfois les droits sur les fichiers auquel accède le programme.

    Mais ce n'est en aucun cas le fait de déclarer ou non un chemin dans le path qui peut constituer une sécurité.

    Omettre les répertoires /sbin, /usr/sbin du path des users permet simplement de réduire la liste de répertoires que parcoureront les shell à la recherche de commandes. En en cas d'utilisation de la complétion, ça évite de proposer des commandes qui sont inutiles et inutilisables par des utilisateurs ordinaires.