我不小心运行了这个命令
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
我读了递归还原移动根目录,但由于它是 VPS,而不是物理机器,因此无法在 LiveCD 下安装系统。有什么想法吗?
更新
我发现这是由于库链接问题引起的,所以我这样做了
$ 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?
根据 Barafu Albino 的建议,我尝试su
使用 busybox ( .../bin/busybox su -
) 进行调用,但它会抛出su: must be suid to work properly
。我猜这是因为su
无法定位/etc/passwd
和/etc/shadow
。看来我彻底搞砸了系统。
答案1
您的应用程序无法运行,因为它们需要查找库,但这些库也放错了位置。请尝试busybox
直接使用。
bin/busybox ls
應該可以起到ls
诸如此类的作用。
答案2
让我们采用另一种方法。我假设您不知道真正的 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 密码。
答案3
我刚刚遇到了和这篇文章一模一样的问题。我使用的 Ubuntu 服务器禁用了 root 用户,并正在使用sudo
root 命令。所以我无法以 root 用户身份登录,对我来说,唯一的办法就是进行操作sudo
。不幸的是,几个小时过去了,我失败了,太糟糕了。
对于可以使用 root 身份登录的用户,我想你们忘了提到另一种可能更简单的方法:busybox sulogin