Назад | Перейти на главную страницу

Изменил / bin / sh на / bin / busybox для root, нарушил доступ по SSH. Как это исправить?

Я сделал глупую ошибку ... Я играл с busybox и использовал chsh чтобы переключить корневую оболочку с / bin / sh на / bin / busybox, что, похоже, нарушило доступ SSH.

Когда я делаю:

root@dev:~$ ssh root@ip.of.ser.ver

Я получил:

root@ip.of.ser.ver's password: 
BusyBox v1.22.1 (2015-06-19 07:36:41 CEST) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list
   or: function [arguments]...

  BusyBox is a multi-call binary that combines many common Unix
  utilities into a single executable.  Most people will create a
  link to busybox for each function they wish to use and BusyBox
  will act like whatever it was invoked as.

Currently defined functions:
  [, [[, addgroup, adduser, ar, ash, awk, basename, brctl, bunzip2, bzcat, cat, chattr, chgrp, chmod, chown, chroot, chvt, clear, cmp, cp, cpio, cut, date, dc, dd, deallocvt, delgroup, deluser, depmod, df,
  diff, dirname, dmesg, dnsdomainname, du, dumpkmap, dumpleases, echo, egrep, env, expr, false, fbset, fdisk, fgrep, find, flock, free, fsck, fstrim, fuser, getty, grep, groups, gunzip, gzip, halt, head,
  hexdump, hostname, hwclock, id, ifconfig, ifdown, ifup, insmod, ip, kill, killall, less, ln, loadfont, loadkmap, logger, logname, losetup, ls, lsmod, md5sum, microcom, mkdir, mkfifo, mknod, mkswap,
  mktemp, modprobe, more, mount, mv, nc, netstat, nohup, nslookup, od, openvt, patch, pidof, pivot_root, poweroff, printf, ps, pwd, rdate, readlink, realpath, reboot, renice, reset, rfkill, rm, rmdir,
  rmmod, route, run-parts, sed, seq, setconsole, sh, sha3sum, sleep, sort, start-stop-daemon, stat, strings, stty, sulogin, swapoff, swapon, switch_root, sync, sysctl, tail, tar, tee, telnet, test, tftp,
  time, top, touch, tr, true, tty, udhcpc, udhcpd, umount, uname, uniq, unzip, uptime, users, usleep, vi, watch, wc, wget, which, who, whoami, xargs, yes, zcat

Connection to ip.of.ser.ver closed.

Технически я не уверен, почему он закрывает соединение. Технически я не знаю, как это исправить, и хотел бы восстановить доступ к устройству.

Насколько я знаю, мне просто нужно отредактировать /etc/passwd и изменить его обратно, но как я могу это сделать с тем, что сейчас произошло?

Соединение закрыто, потому что звонит /bin/busybox просто показывает вам вывод, который вы видите, но не запускает сеанс оболочки (попробуйте его в терминале). Вам нужно создать символическую ссылку /usr/bin/ash -> /bin/busybox и позвони /usr/bin/ash чтобы запустить оболочку busybox.

Вам, вероятно, придется исправить это с помощью спасательной системы, чтобы вернуть обратно.

Если вы включили SFTP-доступ к этому компьютеру, попробуйте его. Скорее всего, он настроен так, чтобы не требовать действительную оболочку (internal-sftp). Затем вы можете отредактировать свой / etc / passwd файл.