Installation fraîche: pas de commandes basiques Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
genpashiro
Membre
Membre
Messages : 214
Inscription : 25 sept. 2018, 15:07
Localisation : Douai, Nord
Status : Hors-ligne

Hello,

Indépendamment de mon soucis avec ma clé WIFI, j'ai réinstallé complèteme une Debian 10.0

J'ai mis KDE (pour moi cela n'a pas de rapport ?) et je n'ai pas les commandes de bases comme iwconfig.

Pourtant le man affiche l'écran d'aide mais dans un terminal j'ai droit à un

Code : Tout sélectionner

bash: iwconfig : commande introuvable
je comprend vraiment pas là :021:
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Ateention, il faut utiliser maintenant

Code : Tout sélectionner

su -
(le - est important, ce n'est pas une faute de frappe!) pour passer en root, sinon plus rien ne fonctionne (les variables d'environnement ne sont transmise au terminal root)
genpashiro
Membre
Membre
Messages : 214
Inscription : 25 sept. 2018, 15:07
Localisation : Douai, Nord
Status : Hors-ligne

oui bien sûr merci!!

cela fait très longtemps que je n'avais pas fait d'intallation "from scratch" je n'étais pas au fait de cette nouveauté.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Pour plus de détails, voir la réponse de MIPS sur l'autre fil.
Lolo
Membre
Membre
Messages : 32
Inscription : 10 juil. 2016, 01:24
Status : Hors-ligne

Bonjour,

Sinon j'avais contourné le problème :
https://bugs.debian.org/cgi-bin/bugrepo ... bug=923703
https://bugs.debian.org/cgi-bin/bugrepo ... bug=910810
https://bugs.debian.org/cgi-bin/bugrepo ... bug=918754
https://bugs.debian.org/cgi-bin/bugrepo ... bug=904988

Code : Tout sélectionner

# echo 'PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' >> /root/.bashrc
$ su
# all_is_alright_now

Mais après avoir pris connaissance de "su -", via ce sujet, peut être serait il mieux de faire un ?


$ echo "alias su='su -'" >> ~/.bash_aliases

$ su

Après un petit test, il s'avère qu'une "ancienne" commande comme "service XXX restart" n'est pas reconnue via "su -".
Idée ci dessus rayé par suite, car créer un alias, limiterai fortement l'usage de su. De plus, un autre test de la commande "service" s'est révélé fonctionnel.

PS : En complément de la réponse de piratbab : Réponse de MIPS sur l'autre fil ($PATH ne contient pas sbin)
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Je me dis que si les devs debian ont choisi de nous forcer d'utiliser su - à la place de su, c'est qu'il y a une, voire bonne raisons. Car vu le bazar que ça à du créer dans certains, cas devait être même une excellente raison.
remettre dans le PATH le chemin vers les commandes système, c'est faire affront à leur compétence, et proposer cette solution sur un forum est complètement irrespectueux pour eux.
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

C'est beaucoup plus qu'une simple histoire d'environnement et donc simplement du PATH

Pour être sûr qu'il n'y ait aucune imbrication de shell ou de sous-shell
le retour de la commande echo ${0::1} doit être un simple tiret
Dès lors, on pourra être sûr d'être dans un login shell bien "propre".

=======
Voir sous debian 10 (buster), les différences concernant la valeur de quelques variables d'environnement
une fois connecté par su et su -
et en lançant la ligne de commande suivante :

Code : Tout sélectionner

echo -e "\n\$0\t\t: $0\n\$HOME\t\t: $HOME\n\$PWD\t\t: $PWD\n\$SHELL\t\t: $SHELL\n\$USER\t\t: $USER\n\$LOGNAME\t: $LOGNAME\n\$PATH\t\t: $PATH\n"


Code : Tout sélectionner

michel@debgnom:~$ su
Mot de passe : 
root@debgnom:/home/michel# echo -e "\n\$0\t\t: $0\n\$HOME\t\t: $HOME\n\$PWD\t\t: $PWD\n\$SHELL\t\t: $SHELL\n\$USER\t\t: $USER\n\$LOGNAME\t: $LOGNAME\n\$PATH\t\t: $PATH\n"

$0		: bash
$HOME		: /root
$PWD		: /home/michel
$SHELL		: /bin/bash
$USER		: michel
$LOGNAME	: michel
$PATH		: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

root@debgnom:/home/michel# exit
michel@debgnom:~$ 


Code : Tout sélectionner

michel@debgnom:~$ su -c 'echo -e "\n\$0\t\t: $0\n\$HOME\t\t: $HOME\n\$PWD\t\t: $PWD\n\$SHELL\t\t: $SHELL\n\$USER\t\t: $USER\n\$LOGNAME\t: $LOGNAME\n\$PATH\t\t: $PATH\n"'
Mot de passe : 

$0		: bash
$HOME		: /root
$PWD		: /home/michel
$SHELL		: /bin/bash
$USER		: michel
$LOGNAME	: michel
$PATH		: /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

michel@debgnom:~$ 


Code : Tout sélectionner

michel@debgnom:~$ su -
Mot de passe : 
root@debgnom:~# echo -e "\n\$0\t\t: $0\n\$HOME\t\t: $HOME\n\$PWD\t\t: $PWD\n\$SHELL\t\t: $SHELL\n\$USER\t\t: $USER\n\$LOGNAME\t: $LOGNAME\n\$PATH\t\t: $PATH\n"

$0		: -bash
$HOME		: /root
$PWD		: /root
$SHELL		: /bin/bash
$USER		: root
$LOGNAME	: root
$PATH		: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

root@debgnom:~# déconnexion
michel@debgnom:~$ 

Code : Tout sélectionner

michel@debgnom:~$ su - -c 'echo -e "\n\$0\t\t: $0\n\$HOME\t\t: $HOME\n\$PWD\t\t: $PWD\n\$SHELL\t\t: $SHELL\n\$USER\t\t: $USER\n\$LOGNAME\t: $LOGNAME\n\$PATH\t\t: $PATH\n"'
Mot de passe : 

$0		: -bash
$HOME		: /root
$PWD		: /root
$SHELL		: /bin/bash
$USER		: root
$LOGNAME	: root
$PATH		: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

michel@debgnom:~$ 

=======
Une autre petite différence dont je viens juste de m’apercevoir :

Par habitude, tant qu'il n'y a rien dans la ligne de commande
par flemme d'entrer la commande exit
je quitte le shell en utilisant le raccourci clavier Ctrl-d

Dans le cas du shell obtenu par un su sans le tiret
quand le raccourci clavier Ctrl-d est exécuté, c'est le mot exit qui s'affiche,

mais depuis un shell obtenu par un su - (=> avec le tiret)
quand le raccourci clavier Ctrl-d est exécuté, c'est le mot déconnexion qui s'affiche.
Lolo
Membre
Membre
Messages : 32
Inscription : 10 juil. 2016, 01:24
Status : Hors-ligne

@piratebab : Tout de suite les grands mots. :drinks:

Moi quand je vois que je vais sur bugs.debian.org et que je vois un graphe rouge sans vert, c'est qu'il y a quand même un hic.
Bien sur un OS comme Debian est très complexe, et je ne remets pas en cause les compétences de spécialistes.

Mon seul but était d'avoir un peu de "sbin" quand je faisais un "echo $PATH".

@MicP : Merci pour toutes ses précisions.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Lolo, ce n'est pas toi que je remetais en cause, mais les personnes qui ont proposé la solution que tu as trouvé.
Souvent des personnes remontent des bugs qui ne sont en fait que des fonctionalités qui ont évoluées aprés de longues discutions sur les channels IRC dédiés. Ca s'apelle la résistance au changement.
Lolo
Membre
Membre
Messages : 32
Inscription : 10 juil. 2016, 01:24
Status : Hors-ligne

Sinon que pensez vous de se créer une mini sur-couche à /bin/su via un script /usr/local/bin/su ?

Code : Tout sélectionner

#!/bin/bash

if [ $# -eq 0 ]; then
  /bin/su -
else
  /bin/su $*
fi

exit 0
Un "echo $0" donne bien "-bash".
Un "echo $PATH" donne bien "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin".

Cependant j'ai cette ligne en plus quand je fait un "ps -aux" :
mon_user 17481 0.0 0.0 6644 3016 pts/0 S 14:44 0:00 /bin/bash /usr/local/bin/su
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5869
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

tu peux faire un alias, mais je ne sais plus comment ça marche. Peut étre aussi avec un lien symbolique, mais ça devient du bricolage.
On s'abitue très vite à ajouter le -
Lolo
Membre
Membre
Messages : 32
Inscription : 10 juil. 2016, 01:24
Status : Hors-ligne

Oui c'est du bricolage, mais c'est juste pour économiser un peu la barre espace et le tiret. :024:

Si on fait un alias, ça bloque quand on veut passer des paramètres à su.
$ echo "alias su='su -'" >> ~/.bash_aliases
=> Problème si on fait "su -" qui revient à "su - -" (su: user - does not exist)
Lolo
Membre
Membre
Messages : 32
Inscription : 10 juil. 2016, 01:24
Status : Hors-ligne

Lolo un peu avant a écrit :Sinon que pensez vous de se créer une mini sur-couche à /bin/su via un script /usr/local/bin/su ?
Après test un peu plus poussé, je viens juste de voir une interférence dans un script comprenant un "su - un_user -c 'un_autre_script param'".
Le bloc "case esac" contenu dans "un_autre_script" me renvoie tout le temps au choix par défaut ???

Donc solution non viable.
Répondre