Explication (encore une fois!).
1- Il existe deux modalités de saisie de commandes dans une console:
* saisie en mentionnant le chemin complet (/sbin/modprobe);
* saisie de la commande sans le chemin (modprobe).
Dans le premier cas, le shell (interpréteur de commandes) recherche la commande dans le chemin absolu indiqué. Dans le second cas, le shell recherche la commande dans les répertoires déclarés dans le PATH (PATH: variable relevant de l'environnement d'un utilisateur etr déclarant un ensemble de répertoires. Pour la visualiser: echo $PATH. PATH: la variable, $PATH: son contenu).
Par défaut, le PATH des utilisateurs (hors root bien sûr) ne comprend pas /sbin.
2- su permet d'hériter des droits root. Mais si la clause - (soit su -) n'est pas saisie, ce sont les variables d'environnement de l'utilisateur depuis lequel su est lancé qui sont actives. En d'autres termes, su (tout court) permet d'hériter des droits root mais du PATH de l'utilisateur courant.
3- Ainsi, si su tout court a été saisi, le PATH ne comprend pas /sbin (par défaut) et la saisie de modprobe (qui requiert les droits root) n'aboutit pas puisque le shell, en explorant le PATH, ne trouve pas la commande.
Le problème est très régulièrement soulevé ... pour lsmod, insmod, ndiswrapper... Exemple:
http://www.fedora-france.org/modules/newbb/viewtopic.php?topic_id=3438&forum=6&post_id=18711#forumpost18711
Deux précisions complémentaires:
Les répertoires et les commandes sont des fichiers; ils sont dès lors caractérisés par des attributs pour la lecture, l'écriture et l'exécution, déclinés pour le propriétaire du fichier, un groupe, le reste du monde.
1- On peut fort bien déclarer un répertoire dans le PATH dans un utilisateur sans que ce dernier puisse y accéder car il ne possède pas les droits utiles.
2- De la même façon, on peut ouvrir l'accès à un répertoire contenant une commande pour laquelle l'utilisateur ne possède pas les droits utiles.