Come risolvere bash o auto run / bin / bash al login SSH


16

Quando eseguo l'accesso come rootsul mio server, tutto myusernamefunziona correttamente , ma quando eseguo l'accesso come bash non funziona correttamente.

La linea inizia con:

$ 

invece di

myusername@myserver:~$

e tutti i tasti speciali come i tasti freccia, i tasti di tabulazione, ecc. non funzioneranno.

Quando scrivo bin/bash, funziona di nuovo, ma mi piacerebbe risolvere il problema o eseguirlo automaticamente bin/bashall'accesso. Come posso risolvere questo problema?

ssh  bash 

Risposte:


16

Devi solo cambiare la tua shell. Come tale utente, esegui:

$ chsh -s /bin/bash

Quindi disconnettersi e accedere nuovamente.

Dopo aver fatto questo il prompt non sembra quello che desideri, dovrai iniziare a modificare la variabile PS1 del tuo ambiente.


Questo è in realtà un po 'pericoloso poiché la domanda è rootsull'utente. Probabilmente non sta usando Linux. La radice dovrebbe rimanere con la shell predefinita poiché il fornitore probabilmente farà affidamento su di essa ksho su qualsiasi altra scelta. Invece, la vera risposta è "non dovresti comunque accedere come root".
bahamat,

12

Devi cambiare la tua shell. Esegui il comando

chsh -s /bin/bash

quindi accedi di nuovo.

Tuttavia, non tutti gli utenti hanno il diritto di cambiare la propria shell. Se usi sudoricordati di aggiungere il tuo nome utente al chshcomando come

sudo chsh <username> -s /bin/bash

altrimenti cambierai involontariamente la shell per root.


Punto valido. Esteso leggermente la risposta.
Mikael Fremling

Sono stato molto ingenuo da provare: sudo chsh -s /bin/bashdal momento che il mio utente non aveva il permesso di cambiare shell. La tua risposta mi ha aiutato a risolverlo. Grazie!
Edenshaw,

5

Una possibile ragione è che la shell predefinita di myusername non è bash.

Puoi controllare la shell dell'utente corrente con:

  • echo ${SHELL}
  • echo $0

Per modificare la shell utente in modo permanente vedere man chsh , ad esempio:

chsh -s /bin/bash

2

Se la password utente sudo è disabilitata, è possibile modificare la /etc/passwddirettamente, trovare la linea in cui l'utente è e modifica il percorso della shell in /bin/bash.

Ecco la spiegazione del formato / etc / passwd .


0

Volevo solo aggiungere un'altra cosa.

Se è necessario l'accesso sudo per modificare bash per quell'utente, allora è necessario menzionare anche il proprio nome utente nel comando sudo poiché senza nome utente si applicherà all'utente root.

$ sudo chsh -s /bin/bash <user>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.