Случайно перемещенные каталоги под root

Я случайно запустил эту команду

sudo mv /* /applications/minced/

вместо

sudo mv ./* /applications/minced/

Это все, что осталось в корневом каталоге

$ /
applications/ dev/          proc/         run/          sys/          tmp/       

У меня все еще есть активное соединение SSH с сервером. Я пробовал звонить mv, sudo а также chmod... прямо из /applications/minced/bin/ или же /applications/minced/usr/bin/, но ничего не работает, хотя я могу найти их там, используя автозаполнение пути.

$ /applications/minced/bin/ls
-bash: /applications/minced/bin/ls: No such file or directory

Я читал Revert, перемещая корневой каталог рекурсивно, но монтирование системы под LiveCD мне не подходит, так как это VPS, а не физическая машина. Есть идеи?

Обновить

Я понял, что это связано с проблемами связывания библиотек, поэтому я сделал это

$ export LD_LIBRARY_PATH=/applications/minced/lib/x86_64-linux-gnu/
$ /applications/minced/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /applications/minced/bin/mv /applications/minced/* /

Очевидно, я столкнулся с проблемами разрешения. призвание sudo с компоновщиком выдает эту ошибку

$ /applications/minced/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /applications/minced/usr/bin/sudo ...
sudo: effective uid is not 0, is /applications/minced/usr/bin/sudo on a file system with the 'nosuid' option set or an NFS file system without root privileges?

По предложению Барафу Альбино, я попытался позвонить su с busybox (.../bin/busybox su -), но бросает su: must be suid to work properly, Я думаю, это происходит потому, что su не могу найти /etc/passwd а также /etc/shadow, Похоже, я полностью облажался.

3 ответа

Решение

Ваши приложения не могут работать, потому что они хотят найти библиотеки, и они тоже неуместны. Попробуйте использовать busybox непосредственно.

bin/busybox ls

должен работать как ls и так далее.

Давайте сделаем другой подход. Я предполагаю, что вы не знаете настоящий пароль пользователя root. Вот список библиотек, которые нужны sudo:

linux-vdso.so.1 =>  (0x00007ffea6be9000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fbbad17b000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fbbacf78000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbbacd74000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbbac9aa000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fbbac73d000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbbad5c5000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbbac51f000)

Вот список файлов в пакете sudo (только соответствующие):

/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/sudo.service
/usr
/usr/lib
/usr/lib/sudo
/usr/lib/sudo/system_group.so
/usr/lib/sudo/sudo_noexec.so
/usr/lib/sudo/sudoers.so
/usr/lib/sudo/group_file.so
/usr/lib/sudo/sesh
/usr/bin
/usr/bin/sudoreplay
/usr/bin/sudo

Попробуйте переместить библиотеки в двоичный файл, в ту же папку. Может быть, это будет работать. su имеет меньше зависимостей, но требует знать настоящий пароль пользователя root.

Я просто столкнулся с этой проблемой точно так же, как этот пост. Я использую сервер Ubuntu, который имеет отключенного пользователя root и использует sudo делать корневые команды. поэтому я не могу войти в систему как пользователь root случайно, единственный способ для меня - sudo работает. к сожалению, прошли часы, я потерпел неудачу, это очень плохо.

А для пользователей, которые могут войти в систему с правами root, я полагаю, что вы, ребята, забыли упомянуть другой способ, который может быть намного проще: busybox sulogin

Другие вопросы по тегам