La shell di root modificata in un path non esistente

Ho appena fatto un po 'di un errore:

  • Installazione fresca di FreeBSD 8.2
  • acceduto come root
  • bash installato dalle porte
  • creati gli utenti, impostando bash come shell
  • vipw (modifica il file passwd)
  • la shell di root modificata da /bin/csh a /bin/bash
  • disconnesso
  • accedere come root
  • SBAGLIATO!!

Come probabilmente avete indovinato, la shell di bash non viene inserita in / bin 🙁 Errore molto scomodo!

Ora non posso accedere come root. Posso accedere come utente della ruota, ma non posso vipw .

Ho provato le seguenti senza fortuna:

  • Riavviare il singolo utente, /rescue/vi /etc/passwd
  • Accesso come utente ruota, su -m

Quindi, come posso cambiare la shell di root in /bin/csh ?

Potrei ri-installare – ma preferirei imparare alcune cose nuove!

  • Logging a un file, prepending a timestamp per each row (Debian)
  • C'è un modo per fare un telecommand "ls" molto simile a "scp" fa una copia remota?
  • Shell = Controlla se la variabile inizia con #
  • chroot'ing directory home SSH, problema shell
  • L'output di command Shell script in se il confronto di condizioni non riesce a confrontarsi con la stessa string di valori
  • Come eseguire uno script di shell in un altro utente senza digitare la password
  • Come posso impedire l'accesso della shell a un account utente ma mostrare invece un messaggio personalizzato (su linux)?
  • Come limitare la shell degli utenti che consente di eseguire i programmi di shell
  • 7 Solutions collect form web for “La shell di root modificata in un path non esistente”

    Avviare in modalità utente singolo e quindi:

     mount -w / vipw 

    Cambiare il path su /usr/local/bin/bash

     exit 

    Utilizza un CD / DVD in diretta di qualche tipo. (Gentoo è una buona scelta.) Basta montare l'unità e modificare il file / etc / passwd.

    Solo una punta … Dopo il primo accesso come root, ho cambiato la password del toor. In questo modo, anche con il danneggiamento dei dati / disco o partizione persa, ho un utente con privilegi e 2 shell differenziati.

    Puoi su (senza - )?

    Altrimenti, forse sudo -u root /usr/bin/bash potrebbe funzionare?

    Altrimenti, avviare da CD, montare il file system root, modificare il etc/passwd sul file system root, sincronizzare, umount, riavviare.

    Provare a modificare la string di avvio del grub durante l'avvio in modo che non riesca a trovare il kernel. grub ti butterà in busybox. Ha un editor vi integrato. Montaggio, modifica e riavvio.

    Il command corretto per la modalità utente singolo è:

    mount -u -rw / mount -a -t ufs
    mount -u -rw / mount -a -t ufs 

    allora basta fare: chsh -s / usr / local / bin / bash root

    Ho appena fatto esattamente lo stesso su una Synology Diskstation – ho assunto che / bin / bash era disponibile quando si cambiava rapidamente la shell di root. Doh.

    Ho usato l'opzione -s di su quando si è connesso come amministratore per forzare una shell:

     -s, --shell=SHELL run SHELL if /etc/shells allows it 

    Questo è:

     su -s /bin/ash 

    Uff.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.