default shell Bash für root?

  • Ersteller Ersteller ex-user_4198
  • Erstellt am Erstellt am
E

ex-user_4198

Guest
Hallo Leute

Wo trage ich die default shell für root ein? Bash wäre das bei mir. /root/.profile? ist das richitig?
 
Hallo,

als root einloggen und folgendes eintippen

Code:
chsh -s bash

/root/.profile ist nur eine Config Datei für alle shells /root/.bashrc wäre die für bash, aber das sind "nur" config files für die shells eine shell zuordnen macht man mit dem oben genannten Befehl
Grüße Martin
 
als root einloggen und folgendes eintippen

Code:

chsh -s bash

/root/.profile ist nur eine Config Datei für alle shells /root/.bashrc wäre die für bash, aber das sind "nur" config files für die shells eine shell zuordnen macht man mit dem oben genannten Befehl
Grüße Martin

cool, funktioniert. danke.
wusst die nich, dass es dafür einen befehl gibt. aber jetzt bin ich schlauer.
 
Ich habe gelesen, dass es zu bedenken gibt, dass es passieren kann, dass hier und da mal ein Skript vom Basissystem nicht funktioniert, weil es nicht für die bash konzipiert ist. Ich weiß nicht, inwiefern das realistisch ist aber das habe ich schon des öfteren diesen Hinweise gefunden ;)

Das hielt mich bisher immer davon ab die Shell bei root zu wechseln...
 
Außerdem hat die bash Abhängigkeiten. Wenn du sie dir also mal zerschießt oder im Singleuser landest wird das System die Root-Shell nichtmehr finden, was dann wohl dazu führt, dass du dich nichtmehr einloggen kannst.
 
MuffiXXL: verbreite doch keine Panik. Im Singleuser Mode fragt das System natürlich nach dem Pfad zu Shell und die eingabe von /bin/sh funktioniert d.h. alles kein Problem.

Zu den Scripten die nicht für die Bash geschrieben sind: Das ist für miserabel geschriebene Skripte ein problem die #!/usr/bin/env sh nicht kennen und einfach sich von der aktuellen Shell ausführen lassen. Die Skripte solcher Autoren sollte man erst einemal gut bevor man sie einsetzt. Der Fix ist i.d.R. eine Zeile.
 
Außerdem hat die bash Abhängigkeiten. Wenn du sie dir also mal zerschießt oder im Singleuser landest wird das System die Root-Shell nichtmehr finden, was dann wohl dazu führt, dass du dich nichtmehr einloggen kannst.

ha ha ha. genau. du sagst es. Ist mir gerade gestern passiert mit dem aktuellen Portstree welcher ja in letzter Zeit buggy ist, bei mir auf jeden fall funktioniert gar nichts.
Portmaster -au bricht immer bei irgendwelchen GTK Bibiliotheken ab und dann läuft natürlich gar nichts mehr. Ich konnte nicht mal mehr als Root in der Konsole einloggen weil Bash von irgendeiner Lib abhänigig ist welche zerschossen wurde, "libinlt-irgendwas".
So musste ich ein neues FreeBSD aufsezten und natürlich keine Bash mehr für root. Einen neuen Portstree ziehen macht mir auch Kopfschmerzen.
 
Zuletzt bearbeitet von einem Moderator:
Einzige Lösung wäre noch ne statische Bash zu bauen wo alle benötigten libs schon mit einkompiliert sind.
Kann bei den Build-options angegeben werden so wie ich das aus dem Makefile rauslese.
 
Zu den Scripten die nicht für die Bash geschrieben sind: Das ist für miserabel geschriebene Skripte ein problem die #!/usr/bin/env sh nicht kennen und einfach sich von der aktuellen Shell ausführen lassen.

Das ist jetzt aber nicht Dein Ernst, hoffe ich. (Das mit dem #!/usr/bin/env sh, und dass Scripte, die das nicht tun, miserabel seien)

Davon ab: es ist schnurzpiepegal, welche Loginshell man eingestellt hat. Wenn im Script #!/bin/sh steht, dann wird auch /bin/sh als Interpreter fuer das Script verwendet.
 
kili: nein das für die /bin/sh zu tun ist kontraproduktiv, weil es ein gemountes /usr verlangt. Ich meinte Scripte, die einfach ohne #! davon ausgehen von der Shell ausgeführt zu werden.
 
"libinlt-irgendwas".
So musste ich ein neues FreeBSD aufsezten

Guck mal:
http://www.bsdforen.de/showthread.php?t=24735
Nun ist es aber wohl zu spät dafür. :ugly:

Ist mir übrigens nur auf einer Kiste passiert,
wo ich gleich am Montag losgelegt hatte,
wie üblich immer mutig gleich mit dem Schalter,
dass die alte libintl nicht in compat aufgehoben wird.
Das ist bei portuprade das -u.
Auf den anderen Kisten hatte ich dann aus dem Fehler mit dem -u gelernt.
Da ist dann auch libintl.so.8 unter:
Code:
/usr/local/lib/compat/pkg/libintl.so.8
zu finden und portupgrade rannte einwandfrei durch.
 
Zurück
Oben