意外移动根目录下的目录
我不小心跑了这个命令
sudo mv /* /applications/minced/
代替
sudo mv ./* /applications/minced/
这就是根目录中的所有内容
$ / applications/ dev/ proc/ run/ sys/ tmp/
我仍然有一个活动的ssh连接到服务器。 我尝试直接从/applications/minced/bin/
或/applications/minced/usr/bin/
调用mv
, sudo
和chmod
…但是没有任何作用,尽管我可以使用路径自动完成function找到它们。
$ /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?
正如Barafu Albino所建议的那样,我试图用busybox( .../bin/busybox su -
)调用su
,但它抛出su: must be suid to work properly
。 我想这是因为su
无法找到/etc/passwd
和/etc/shadow
。 好像我已完全搞砸了系统。
您的应用程序无法运行,因为他们想要查找库,而这些库也是错误的。 尝试直接使用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密码。