bash als default login shell

B

boba23

Guest
Hi Leute,

würde gern bash als default shell haben. Hab sie natürlich bei den paketen mit compiliert. Kann bash auch manuell starten, kein problem.
Jetzt hab ich /etc/passwd geänder von /bin/sh auf /bin/bash für root.
Per telnet komm ich danach auch drauf und hab bash als shell. Nur ssh will nach der änderung nicht mehr. Er baut ne kurze Verbindung auf, ich geb root als username ein aber danach wirft er mich sofort raus, krieg kein password prompt.
Woran könnte das liegen? Problem mit dropbear und bash?
Hab übrigens ne 7270 16mb mit trunk rev 3471 laufen ....

danke

boba
 
$ cat /etc/shells
/bin/sh
/bin/ash

Ja, da scheint die bash zu fehlen. Liegt es daran? Und wie änder ich das? :)

danke

boba
 
ok, aber wo? kuck mich grad im svn tree um. in root/etc gibt's leider kein file namens "shells"

boba
 
Dein Kandidat ist die fwmod_custom. In der kann man das hinbekommen. Wie das geht, sagt dir die Boardsuche und das Wiki.
 
Bin z. Zt. nicht in meiner Build-Umgebung für Freetz und kann nicht nachschauen. Versuch mal mit:
find / -name 'shells'
 
ok, danke, hab's gefunden. werd auch ma weiter nach fwmod_custom suchen. ma sehn was darüber geht.

boba
 
Dein Kandidat ist die fwmod_custom. In der kann man das hinbekommen. Wie das geht, sagt dir die Boardsuche und das Wiki.

fwmod_custom würd ich mir gerne anschauen nur hab ich keine in meinem FS:

$ find / -iname *fwmod*
root@fritz /
$

Muss ich die selbst anlegen?

boba
 
Vor dem Bauen. Die ist in deiner Build-Umgebung vorhanden, und dazu da, noch Sachen an der Firmware zu ändern, bevor sie gepackt wird.
 
Dein Kandidat ist die fwmod_custom. In der kann man das hinbekommen. Wie das geht, sagt dir die Boardsuche und das Wiki.

Hab' mich schon immer gefragt, warum man 'bash als login shell' nicht als eine freetz-Option zur Verfügung stellen kann. Der Aufwand ist ja geringer als die Anfragen danach zu beantworten :)
 

Anhänge

  • bash_as_login_shell.patch.txt
    1.5 KB · Aufrufe: 45
Eine blöde Frage am Rande: Könnte es irgendwelche Auswirkung auf normale Shell-Skripte / Programme haben? Oder betrifft diese ver-bash-ung nur den eingeloggten Benutzer auf seiner Konsole und nicht die Hintergrundprozesse und z.B. Startskripte? Denn wenn ich es richtig verstanden hatte, gibt es da schon Unterschiede, welchen Interpräter man benutzt. Vor allem sed-Syntax kann sich unter Umständen ändern. Nicht, dass man nachher zwar bash als Shell hat, aber dafür eine halbfunktionierende Box.

MfG
 
Jedes Skript gibt selbst am Anfang an, mit welcher Shell es ausgeführt werden will. Es sollte als nur Auswirkungen auf Login-Sessions haben. Und falls es doch Probleme gibt, werden wir es vermutlich bald von er13 hören. Dabei bin ich davon ausgegangen, daß sh unverändert bleibt und nicht ein Link auf bash ist. Ansonsten sollte bash überwiegend aufwärts kompatibel sein. Probleme treten normal eher in die andere Richtung auf, wenn man Skript schreibt, die bash Erweiterungen nutzen.

Ich kann mich übrigens nicht an viele Anfragen nach bash als Login-Shell erinnern.

Aber wenn schon, würde ich es nicht als auswählbare Option machen, sondern bash (wenn vorhanden) immer in /etc/shells eintragen. Das macht ca. 10 Bytes Speicherplatz aus. Wenn man dafür noch ash entfernt, was sowieso keiner als Login-Shell einträgt, dann ist es sogar nur 1 Byte.
 
Jedes Skript gibt selbst am Anfang an, mit welcher Shell es ausgeführt werden will.
Stimmt, das heißt aber nicht, dass es auch mit dieser ausgeführt wird :) Wird ein Script per . inkludiert, so wird die #!-Zeile ignoriert und das Script von der Aufruf-Shell interpretiert.

Es sollte als nur Auswirkungen auf Login-Sessions haben. Und falls es doch Probleme gibt, werden wir es vermutlich bald von er13 hören.
Mir sind bisher keine bekannt. An dem Boot-Prozess ändert sich durch die Änderung ja nichts - die geänderte passwd-Datei steht erst nach einem modload zur Verfügung und dieses wird ganz am Ende von rc.S aufgerufen.

Probleme treten normal eher in die andere Richtung auf, wenn man Skript schreibt, die bash Erweiterungen nutzen.
Was mir schon mal aufgefallen ist, dass es in verschiedenen freetz-Scripten, die angeben /bin/sh Scripte zu sein, == als Vergleichsoperator verwendet wird. Wenn ich mich nicht irre, ist das ein Bashism, aber offensichtlich kann die busybox-Version von /bin/sh damit umgehen.

Ich kann mich übrigens nicht an viele Anfragen nach bash als Login-Shell erinnern.

Aber wenn schon, würde ich es nicht als auswählbare Option machen, sondern bash (wenn vorhanden) immer in /etc/shells eintragen. Das macht ca. 10 Bytes Speicherplatz aus. Wenn man dafür noch ash entfernt, was sowieso keiner als Login-Shell einträgt, dann ist es sogar nur 1 Byte.
Es gab schon welche, zu den 10 Bytes kein Kommentar :)
 
Ich wäre auch dafür die bash fest einzugtragen. Als Option könnte ich mir vorstellen, dass man den Symlink /bin/sh auf /bin/bash umbiegt. Dazu gabs hier auch schonmal eine Anfrage.

MfG Oliver
 
Hi Leute,

würde gern bash als default shell haben. Hab sie natürlich bei den paketen mit compiliert. Kann bash auch manuell starten, kein problem.
Jetzt hab ich /etc/passwd geänder von /bin/sh auf /bin/bash für root.
Hallo, das habe ich auch gemacht. Nach einem Neustart der Box ist die Änderung aber wieder weg. Ganauso wie das Rootpasswort, dass ich mit passwd geändert habe wieder auf "freetz" zurückgesetzt ist.
Ist eine dauerhafte Änderung nur über die fwmod_custom vor dem Erzeugen der FW möglich?
 
Ja, sonst wird bei jedem Neubau und Flash wieder alles überschrieben
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.