Случайно перемещенные каталоги под 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