J'ai remarqué que le chemin par défaut pour root sur mes serveurs virtuels et mes serveurs n'inclut pas / usr / local / bin
sudo -s
echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
Alors que les utilisateurs normaux sur le serveur ont / usr / local / bin
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/sowen/bin
Pourquoi root n'aurait-il pas besoin de / usr / local dans le chemin?
Où est défini le chemin par défaut pour un utilisateur?
/usr/local/sbin
et/usr/local/bin
sur le chemin par défaut de root, mais il y a des exceptions./usr/local/bin
et une sans). Et celui avec/usr/local/bin
, je ne pouvais pas trouver où il était mis.Réponses:
Parce qu'il n'est pas configuré dans les fichiers de démarrage du shell appropriés pour root.
Traditionnellement,
/usr/local
a été utilisé pour les logiciels non officiels installés localement (souvent pour remplacer les versions "officielles" boguées / cassées / limitées; un ami a plaisanté en disant que la première étape à l'arrivée d'un nouveau soleil étaitGNU > /usr/local
). Commeroot
c'est tout-puissant, toute erreur ou erreur de conception dans les programmes qu'il exécute peut être fatale. Il va de soi que l'exécution, par exemple, d'une version expérimentale locale demake
by root doit être traitée avec prudence. Il vaut mieux lui faire passer l'étape supplémentaire de donner un chemin explicite.la source