Erreur des commandes racine OpenSuse

0

Quelqu'un peut-il expliquer pourquoi ces commandes ne fonctionnent pas

me@suse:~> ifconfig
Absolute path to 'ifconfig' is '/sbin/ifconfig', so running it may require superuser privileges (eg. root).

.

me@suse:~> sudo ifconfig
root's password:
sudo: ifconfig: command not found

Et pourquoi ces travaux

me@suse:~> sudo /sbin/ifconfig

.

suse:/home/me # ifconfig

Je sais que quelque chose est lié à l'utilisateur root, mais je veux une meilleure explication.

Alexandre Vicenzi
la source

Réponses:

2

Habituellement, l’utilisateur avec l’UID 0 (c’est-à-dire la racine) a un $PATH ensemble, qui comprend des répertoires comme /sbin et /usr/sbin, alors que les utilisateurs «normaux» n’en ont pas (car de nombreux programmes de ces répertoires nécessitent des privilèges de super-utilisateur et ne seront de toute façon pas utilisables par ces utilisateurs normaux). Ainsi, si un utilisateur normal veut appeler quelque chose dans ces répertoires manquant dans son $PATH, elle doit spécifier le chemin complet du programme, alors que 'root' peut les appeler sans ce besoin.

Appel sudo <program> ne fonctionne pas non plus, car sudo hérite de son environnement (et donc $PATH ) du processus appelant (qui est non privilégié et donc manquant /sbin ).

Vous pouvez essayer ceci en appelant echo $PATH un dans le shell de votre utilisateur et une fois dans un root-shell (pas avec sudo ).

Andreas Wiese
la source
Je viens d'ajouter / usr / sbin à PATH et maintenant cela fonctionne. Merci pour votre explication.
Alexandre Vicenzi
Je me demande: comment suse connaît-il le chemin absolu d'un fichier qui n'est pas dans $ PATH?
peter