Par contre j'ai un problème de commande pour télécharger le bash ?
Par contre j'ai un problème de commande pour télécharger le bash ?
Première question bête: Est-il déjà installé ?
Deuxième question: quel est ton système d'installation des logiciels ? Bizarre que tu n'aies pas "pkg_add"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $ whereis bash bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz $ which bash /bin/bash $
Ok, pkg_add n'est pas installé. Pas de problème, tu peux utiliser la nouvelle méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pkg install bash echo /bin/bash >> /etc/shells chsh -s /bin/bash hipokamp
Donc voilà, des captures mieux que des mots :
D'abord je suis l'indication de Flodelarab :
Ensuite j'installe bash selon jlliagre et ça marche avec un message final :
donc j’exécute la commande " mount -t fdescfs fdesc /dev/fd "
et
avec ee j'écris la ligne dite dans le fichier /etc/fstab.
Et ensuite je cherche bash, je le trouve et j'adapte mais y'a un problème je crois :
?
Quel problème ? "echo $0" affiche le nom du programme exécuté, qui est bien "su" ici.
Essaie plutôt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 su - hipokamp echo $SHELL
Ah bon !
En voyant su je pensais à " switch user " .
Je comprenais pas.
Alors je vais voir ça "echo $SHELL".
switch user est un nom qui corresponds bien à ce que fait la commande su, même si à l'origine, elle ne permettait que de passer root (d'où su = super-user).
Ce qui est important, c'est le l'option - (su - username), qui change le comportement de su en effectuant un login complet.
D'accord, donc la nouvelle présentation de l'invite en bash ( posix ) ce présente entre crochets et le $ remplace le % de csh, comme ceci ?
[hipokamp@FREEBSD /bin]$
Par contre quand je boot hipokamp pour faire un echo $0 qui répond -bash, et
qu'ensuite je switch root pour revenir hipokamp
là, l'echo $0 ne répond plus -bash mais su à la place.
C'est normal ? c'est ce su là qui m'intrigue...
Ps: Alors que echo $SHELL lui reste invariable, avec usr/local/bin/bash.
Attention, il faut mettre le chemin complet et correct vers le shell souhaité avec la commande chsh, "chsh -s bash root" rends ton système inutilisable.
"chsh" ne doit être exécuté qu'une fois, il change de manière persistante le shell d'un compte utilisateur.
Dans les commandes que tu exécutes, je ne vois pas de "su - xxx".
su est une commande pour laquelle un utilisateur se fait passer pour un autre utilisateur.
Il est tout a fait normal que "echo $0" renvoie "su" car c'est le programme qui est en train d'être exécuté.
De même que par défaut, ton interpréteur de commande (bash ou csh) est celui qui attend une commande.
Si tu écris un script qui affiche $0, il affichera le nom de ton script. Ni su, ni bash, ni csh.
On a parfois des internautes qui ne comprennent pas pourquoi leurs script bloque alors qu'il font un "su". Ils n'ont pas compris que la commande s'exécute jusqu'à ce qu'on sorte de cette commande "su". Et comme dans un script, s'ils ne l'ont pas prévu, la commande su ne finit jamais, le script ne reprend jamais la main.
Comme tu es dans une console qui s'est ouverte avec csh, je ne vois pas de raison que l'interpréteur change. donc $SHELL reste "csh".
PS: Préfère copier/coller le texte dans une balise "code" plutôt que faire des images.
Aie ! et je n'ai pas moyen de rattraper ça ?
Pourtant j'ai l'installé Xorg derrière sans problème apparent ?
Voilà je switch entre root et hipokamp et encore root et soudain des su apparaissent :
Ps: je ne sais pas copier le texte shell dans mon presse papier pour le coller dans des balises code ?
C'est pour ça que je l'avais fait d'abord d'une manière générale avec -s /usr/local/bin/bash
puis pour le root avec -s /usr/local/bin/bash root
et pour hipokamp avec -s /usr/local/bin/bash hipokamp
Je pensais qu'au pire c'était pas grave.
Mais alors sur quel compte appliqué la commande pour que bash soit effectif sur tous les comptes en même temps ?
Comme je l'ai déjà écrit, ma remarque ne concerne les commandes où tu met un chemin incomplet (chsh bash) au lieu de (chsh /usr/local/bin/bash), cependant, il est possible que le chsh de freebsd soit tolérant et corrige de lui même, mais je n'en mettrait pas ma main au feu. Comme tu as corrigé le coup après en mettant le bon chemin, tu n'a pas cassé ton système.
Il n'y a pas de commande pour ça, c'est un choix individuel. Il y a des comptes dont le shell est explicitement invalide et une commande globale devrait les gérer, c'est bien compliqué pour pas grand chose.Mais alors sur quel compte appliqué la commande pour que bash soit effectif sur tous les comptes en même temps ?
PS : on t'a déjà demandé de ne pas poster des copies d'écran graphiques mais plutôt un copier/coller des lignes de commandes et de leur résultat avec des balises code, essayer d'y penser la prochaine fois.
Oui j'ai bien vu ( et demandé ) quel raccourci pour copier depuis ma console dans le presse-papier ?PS : on t'a déjà demandé de ne pas poster des copies d'écran graphiques mais plutôt un copier/coller des lignes de commandes et de leur résultat avec des balises code, essayer d'y penser la prochaine fois.
Et comment savoir quand le système est cassé, plus rien ne fonctionne ?Comme tu as corrigé le coup après en mettant le bon chemin, tu n'a pas cassé ton système.
Je nourris quelques doutes.
Le shell de chaque utilisateur vient du fichier /etc/passwd. Cette information a été donnée lors de la création du compte et doit bien venir de quelque part. Il y a donc bien un shell par défaut. Question: Comment changer ce shell par défaut à la création de compte ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat /etc/passwd
Après une courte recherche, j'ai trouvé une solution. Voici un copier/coller sauvage d'une méthode pour passer de bash à zsh:
2.4. Shell par défaut pour les nouveaux utilisateurs
Pour changer le shell par défaut pour les nouveaux utilisateurs, il faut modifier le fichier de configuration de la commande adduser qui sert à ajouter un utilisateur au système. En root, éditez le fichier /etc/adduser.conf avec vim :
# vim /etc/adduser.conf
Changez la ligne :
DSHELL=/bin/bash
par la ligne :
DSHELL=/bin/zsh
Enregistrez et quittez. Comme ça, quand le root rajoutera un nouvel utilisateur avec la commande :
# adduser toto
ce nouvel utilisateur aura un shell zsh bien configuré.
Oui, c'est surtout qu'on n'a pas compris la question de la même manière.
Tous les utilisateurs en même temps, ça veut dire pour moi tous les utilisateurs existants. Pour les utilisateurs futurs, il y a bien sûr un shell par défaut que l'on peut modifier à l'aide du fichier adduser.conf.
Attention à la syntaxe que tu donnes qui est celle de Linux, sous FreeBSD, ce serait plutôt:
Pareil pour vim, qui est le vi de Linux, sous FreeBSD, c'est le "vrai" vi qui est installé en standard, celui de Bill Joy, et il s'appelle simplement vi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part defaultshell=/usr/local/bin/bash
[mode="crado"]Tous les utilisateurs en même temps, ça veut dire pour moi tous les utilisateurs existants.
Oserais-je proposer un script sed ou awk qui modifie toutes les fins de lignes du fichier /etc/passwd ?
[/mode]
C'est très risqué.
Il faut être très prudent en changeant le shell de root car si le package contenant le shell alternatif est supprimé sans y faire attention, root aura du mal à se loguer.
Il faut éviter de modifier les comptes techniques, surtout s'ils ont un shell du style /bin/false ou /sbin/nologin
Si tu modifie le shell d'un compte utilisateur sans son accord, il risque de ne pas apprécier, surtout s'il a un .cshrc qui définit son environnement et qui ne sera plus pris en compte.
Ceci-dit, il ne doit y avoir qu'un "vrai" compte utilisateur plus celui de root sur la machine d'hypocamp, ce qui simplifie le problème.
Juste pour comprendre ( voir ma dernière capture écran, et oui désolé j'en ferais plus c'est promis )
Pourquoi alors que root qui répond -bash à echo $0 dans un 1er temps.
Me répond dans un 2ème temps -su à echo $0, après un switch root > hipokamp> root.
Quelle différence entre -bash et su dans ce cas, alors que ma requête echo $0 reste identique ?
$0 est une variable qui affiche le nom de la commande ayant été lancée pour produire le shell courant. Ce n'est pas étonnant qu'il lui arrive de changer de valeur.
La première fois que tu l'affiches, elle montre que le programme exécuté est bash, le tiret en préfixe indique que c'est un shell interactif.
La deuxième fois, c'est la commande su qui a été exécutée et qui est affichée.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager