ash ersetzen durch bash

Status
Für weitere Antworten geschlossen.

Cetax

Benutzer
Mitglied seit
18. Okt 2011
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Hallo allerseits,
ich weiß nicht ob das hier der richtige Bereich ist, aber wenn nicht bitte verschieben, Danke.

Also, folgendes Problem, ich habe eine DS111 die ich von DSM 3.2 auf 4.1 Upgedated habe und nun habe ich keine Bash mehr,
sonder nur dieses Standard ding. ;-)

Nun habe ich einfach per IPKG die bash installalliert und in der /etc/passwd foldendes geändert:
Rich (BBCode):
root:x:0:0:root:/root:/opt/bin/bash
#root:x:0:0:root:/root:/bin/ash

Aber wenn ich mich jetzt wieder einlogge, habe ich immer noch die ash.

Ich hatte das das letzte mal vor 2 Jahren gemacht, was muss ich noch verändern,
das ich die Bash benutzten kann ?

Gibt es dazu ein Wiki oder Anleitung ?

Vielen Dank für Eure Hilfe
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.158
Punkte für Reaktionen
405
Punkte
393
Hallo,
kann eigentlich nicht sein. Was gibt
echo $SHELL
aus?

Gruß Götz
 

Cetax

Benutzer
Mitglied seit
18. Okt 2011
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Hallo Götz,
ein "echo $SHELL" gibt "/opt/bin/bash" aus.

Ich habe folgendes geändert, in der
Rich (BBCode):
/root/.profile

habe ich folgendes auskommentiert und hinzugefügt
Rich (BBCode):
#PS1="`hostname`> "

PS1="\[\033[01;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

Meine /root/.profile sieht jetzt so aus:
Rich (BBCode):
umask 022

#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#export PATH

#This fixes the backspace when telnetting in.
#if [ "$TERM" != "linux" ]; then
#        stty erase
#fi

HOME=/root
export HOME

TERM=${TERM:-cons25}
export TERM

PAGER=more
export PAGER

#PS1="`hostname`> "

PS1="\[\033[01;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
~

Nun funktioniert es, warum auch immer ?!

Jemand vielleicht eine Idee warum das so ist ?

Gruß
Stefan
Ich kann es mir zumindest nicht erklären...
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.158
Punkte für Reaktionen
405
Punkte
393
Hallo,
was hat denn genau nicht funktioniert? Die bash war definitiv aktiv.

Gruß Götz
 

Cetax

Benutzer
Mitglied seit
18. Okt 2011
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Hallo Götz,
die Farbe usw. hat nicht geklappt.
Wenn ich ein
Rich (BBCode):
PS1="\[\033[01;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

in der Konsole eingab, hatte ich eine andere Farbe, aber wenn ich das in die ./bashrc eingefügt hatte, und neu gestarte habe,
sah es immer noch genauso aus.

Wo muss ich das denn EIntragen, damit ich eine Veränderung sehe ?

Mein bashrc sieht so aus:
Rich (BBCode):
echo -en "\033[1;35m"
echo '                                          .'
echo '     .vir.                                d$b'
echo ' _____      ____     ___       ___    _____    _____   ______     ______        ______   __      __  '
echo ' (  __ \    / __ \   (  (       )  )  / ___/   / ___/  (   __ \   (_  __ \      (_   _ \  ) \    / ( '
echo '  ) )_) )  / /  \ \   \  \  _  /  /  ( (__    ( (__     ) (__) )    ) ) \ \       ) (_) )  \ \  / /  '
echo ' (  ___/  ( ()  () )   \  \/ \/  /    ) __)    ) __)   (    __/    ( (   ) )      \   _/    \ \/ /   '
echo '  ) )     ( ()  () )    )   _   (    ( (      ( (       ) \ \  _    ) )  ) )      /  _ \     \  /    '
echo ' ( (       \ \__/ /     \  ( )  /     \ \___   \ \___  ( ( \ \_))  / /__/ /      _) (_) )     )(     '
echo ' /__\       \____/       \_/ \_/       \____\   \____\  )_) \__/  (______/      (______/     /__\    '
echo '                                                                                                     '
echo '                             ____    _____    ________     ____     __     __                        '
echo '                            / ___)   )__  \  (___  ___)   (    )   (_ \   / _)                       '
echo '                           / /        __) /      ) )      / /\ \     \ \_/ /                         '
echo '                          ( (        (__ (      ( (      ( (__) )     \   /                          '
echo '                          ( (           \ \      ) )      )    (      / _ \                          '
echo '                           \ \___    ___/  )    ( (      /  /\  \   _/ / \ \_                        '
echo '                            \____)   )____/     /__\    /__(  )__\ (__/   \__)                       '
echo -e "\033[1;34m"
fortune bofh-excuses chalkboard | awk '{print "              " $0 }'
echo -en "\033[0m"
alia s"d=ls -la"
alias "dir=ls -la"
export PATH=$PATH:~/bin:.
#export PS1="\[\033[1;36m\]\t \[\033[1;32m\]\h \[\033[1;34m\]\w \$ \[\033[0m\]"
export PS1="\[\033[01;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

Aber zu sehen ist das nix, wenn ich mich einlogge....
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
passt auf mit Loginshells auf /opt!
Geht der Mountpunkt /opt oder der Link flöten ist kein root Login mehr möglich Wenn schon das Bash Binary in den Pfad der Firmware kopieren. Dann könnte es aber theoretisch sein, dass das Binary bei einem FW-Update überschrieben (gelöscht wird), dann geht wieder kein root Login mehr
Das Risiko mich auzusperren wäre mir zu gross :)
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.158
Punkte für Reaktionen
405
Punkte
393
Hallo,
hast Du die Datei als .bashrc gespeichert?
Funktioniert bei mir sofort.

Gruß Götz
 

Cetax

Benutzer
Mitglied seit
18. Okt 2011
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Ja habe ich :(
Aber bei mir erscheint immer :
Rich (BBCode):
root@DiskStation:/$

Und wenn ich ein exec bash -$- mache , sieht es so aus wie es soll...
Rich (BBCode):
root@DiskStation:/$ exec bash -$-                                                                                            
                                                                                                     
 _____      ____     ___       ___    _____    _____   ______     ______        ______   __      __  
 (  __ \    / __ \   (  (       )  )  / ___/   / ___/  (   __ \   (_  __ \      (_   _ \  ) \    / ( 
  ) )_) )  / /  \ \   \  \  _  /  /  ( (__    ( (__     ) (__) )    ) ) \ \       ) (_) )  \ \  / /  
 (  ___/  ( ()  () )   \  \/ \/  /    ) __)    ) __)   (    __/    ( (   ) )      \   _/    \ \/ /   
  ) )     ( ()  () )    )   _   (    ( (      ( (       ) \ \  _    ) )  ) )      /  _ \     \  /    
 ( (       \ \__/ /     \  ( )  /     \ \___   \ \___  ( ( \ \_))  / /__/ /      _) (_) )     )(     
 /__\       \____/       \_/ \_/       \____\   \____\  )_) \__/  (______/      (______/     /__\    
                                                                                                     
                             ____    _____    ________     ____     __     __                        
                            / ___)   )__  \  (___  ___)   (    )   (_ \   / _)                       
                           / /        __) /      ) )      / /\ \     \ \_/ /                         
                          ( (        (__ (      ( (      ( (__) )     \   /                          
                          ( (           \ \      ) )      )    (      / _ \                          
                           \ \___    ___/  )    ( (      /  /\  \   _/ / \ \_                        
                            \____)   )____/     /__\    /__(  )__\ (__/   \__)                       

bash: fortune: command not found
bash: alia: command not found
root@DiskStation:/$

Ich verstehe das langsam nicht mehr...
Ich habe nur ein Update von DSM3.2 auf 4.1 gemacht und dann IPKG und BASH neu installiert...

Bin mit meinem Latain am Ende ...
 

Cetax

Benutzer
Mitglied seit
18. Okt 2011
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Ok, habe jetzt folgendes gemacht, nun klappt es...

Ich habe das ganze in die /root/.profile eingetragen, nun sieht es so aus, wenn ich mich anmelde:
Code:
Cetax@linux-q9h3:~> ssh -l root 192.168.178.111
root@192.168.178.111's password: 
 _____      ____     ___       ___    _____    _____   ______     ______        ______   __      __  
 (  __ \    / __ \   (  (       )  )  / ___/   / ___/  (   __ \   (_  __ \      (_   _ \  ) \    / ( 
  ) )_) )  / /  \ \   \  \  _  /  /  ( (__    ( (__     ) (__) )    ) ) \ \       ) (_) )  \ \  / /  
 (  ___/  ( ()  () )   \  \/ \/  /    ) __)    ) __)   (    __/    ( (   ) )      \   _/    \ \/ /   
  ) )     ( ()  () )    )   _   (    ( (      ( (       ) \ \  _    ) )  ) )      /  _ \     \  /    
 ( (       \ \__/ /     \  ( )  /     \ \___   \ \___  ( ( \ \_))  / /__/ /      _) (_) )     )(     
 /__\       \____/       \_/ \_/       \____\   \____\  )_) \__/  (______/      (______/     /__\    
                                                                                                     
                             ____    _____    ________     ____     __     __                        
                            / ___)   )__  \  (___  ___)   (    )   (_ \   / _)                       
                           / /        __) /      ) )      / /\ \     \ \_/ /                         
                          ( (        (__ (      ( (      ( (__) )     \   /                          
                          ( (           \ \      ) )      )    (      / _ \                          
                           \ \___    ___/  )    ( (      /  /\  \   _/ / \ \_                        
                            \____)   )____/     /__\    /__(  )__\ (__/   \__)                       

root@DiskStation:~$

die /root/.profile sieht so aus (ob das richtig ist, weiß ich nicht) :
Code:
umask 022
         
#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#export PATH                                                                                   
            
#This fixes the backspace when telnetting in.
#if [ "$TERM" != "linux" ]; then             
#        stty erase             
#fi                
   
HOME=/root
export HOME
           
TERM=${TERM:-cons25}
export TERM         
           
PAGER=more
export PAGER
            
#PS1="`hostname`> "
                   
#PS1="\[\033[01;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
echo -en "\033[1;35m"                                                   
echo ' _____      ____     ___       ___    _____    _____   ______     ______        ______   __      __  '
echo ' (  __ \    / __ \   (  (       )  )  / ___/   / ___/  (   __ \   (_  __ \      (_   _ \  ) \    / ( '
echo '  ) )_) )  / /  \ \   \  \  _  /  /  ( (__    ( (__     ) (__) )    ) ) \ \       ) (_) )  \ \  / /  '
echo ' (  ___/  ( ()  () )   \  \/ \/  /    ) __)    ) __)   (    __/    ( (   ) )      \   _/    \ \/ /   '
echo '  ) )     ( ()  () )    )   _   (    ( (      ( (       ) \ \  _    ) )  ) )      /  _ \     \  /    '
echo ' ( (       \ \__/ /     \  ( )  /     \ \___   \ \___  ( ( \ \_))  / /__/ /      _) (_) )     )(     '
echo ' /__\       \____/       \_/ \_/       \____\   \____\  )_) \__/  (______/      (______/     /__\    '
echo '                                                                                                     '
echo '                             ____    _____    ________     ____     __     __                        '
echo '                            / ___)   )__  \  (___  ___)   (    )   (_ \   / _)                       '
echo '                           / /        __) /      ) )      / /\ \     \ \_/ /                         '
echo '                          ( (        (__ (      ( (      ( (__) )     \   /                          '
echo '                          ( (           \ \      ) )      )    (      / _ \                          '
echo '                           \ \___    ___/  )    ( (      /  /\  \   _/ / \ \_                        '
echo '                            \____)   )____/     /__\    /__(  )__\ (__/   \__)                       '
echo -e "\033[1;34m"                                                                                        
echo -en "\033[0m"  
alias "d=ls -la"  
alias "dir=ls -la"
export PATH=$PATH:~/bin:.
#export PS1="\[\033[1;36m\]\t \[\033[1;32m\]\h \[\033[1;34m\]\w \$ \[\033[0m\]"
export PS1="\[\033[01;33m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

sieht die /root/.profile bei euch auch so aus ?
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.158
Punkte für Reaktionen
405
Punkte
393
Hallo,
bis auf Deine Änderungen sieht das normal aus.

Gruß Götz
 

Cetax

Benutzer
Mitglied seit
18. Okt 2011
Beiträge
25
Punkte für Reaktionen
0
Punkte
1
Hi,
Ok, aber weißt du vielleicht auch warum ich das in die /root/.profile eintragen muss,
damit es funktioniert und nicht wie du geschrieben hast, in der .bashrc ?

Gruß
Stefan
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.158
Punkte für Reaktionen
405
Punkte
393
Hallo,
ich hab einfach nur Deinen Code als /root/.bashrc gespeichert und bash gestartet, also nicht als login-shell.

Gruß Götz
 

rumknapser

Benutzer
Mitglied seit
02. Mai 2013
Beiträge
329
Punkte für Reaktionen
6
Punkte
24
passt auf mit Loginshells auf /opt!
Geht der Mountpunkt /opt oder der Link flöten ist kein root Login mehr möglich Wenn schon das Bash Binary in den Pfad der Firmware kopieren. Dann könnte es aber theoretisch sein, dass das Binary bei einem FW-Update überschrieben (gelöscht wird), dann geht wieder kein root Login mehr
Das Risiko mich auzusperren wäre mir zu gross :)
Hallo, ich möchte ich hier mal einklinken.
Was gibt es denn für Möglichkeiten, der möglichen Gefahr vor der Aussperrung zu entkommen und dennoch beim Einloggen die BASH (automatisch) zu starten?

Tante EDITh: Ich meine, ich habe es selber gefunden. Entschuldigung also für den Aufruhr ;-)

http://www.synology-forum.de/showth...bash-als-Shell&p=200743&viewfull=1#post200743

Tante EDITh nochmal:

mit dem Inhalt des geposteten Links von 2011 funktioniert es nun, ich habe die BASH laufen, wenn ich mich neu einlogge,
aber, kann mir bitte jmd. erklären, wieso ich bei
echo $SHELL trotzdem noch /bin/ash angezeigt bekomme?
Auch ein env bringt SHELL=/bin/ash

laut
[*]bash --login ersetzt die aktuelle Shell, d.h. die Alte wird wirklich ersetzt (es läuft kein /bin/ash Prozess mehr!)
sollte das doch nicht mehr so sein, oder werfe ich hier evtl., etwas durcheinander?

(Dass die BASH läuft, meine ich daran zu erkennen, dass ich den Prompt in der .bash_profile erkennbar angepasst habe und vor allem CRTL+R (interaktive Suche in den letzten Befehlen) funktioniert, was bei der ASH nicht funktioniert hat.)
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
da läuft kein ash mehr ist nicht dasselbe wie die Umgebungsvariable SHELL. Kannst ja probieren im Script (unter dem Link oben) die SHELL zu setzen z.B.
Code:
[COLOR=#333333][ -f /opt/bin/bash ] && export SHELL=/opt/bin/bash && exec /opt/bin/bash --login
[/COLOR]

 

rumknapser

Benutzer
Mitglied seit
02. Mai 2013
Beiträge
329
Punkte für Reaktionen
6
Punkte
24
So sieht es nun für mich richtig aus :cool:
Es lag also daran, das die Umgebungsvariablen nicht gesetzt wurden und von der "ersten" Shell aus dem initialen Login (vor "exec /opt/bin/bash --login") nicht neu/passend gesetzt wurden, nehme ich an. Man loggt sich also initial in die ASH ein und wird direkt durch die Zeilen der .profile neu "in die" BASH eingelogt... ok, dankeschön!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat