GNU/Linux >> Belajar Linux >  >> Cent OS

Centos – Memindahkan Bin Dan Folder Lainnya! Bagaimana Mendapatkan Mereka Kembali?

Saya tidak sengaja memindahkan semua folder dari root ke subfolder. (/bin , /etc , /home , /lib , /usr … semua dipindahkan) Satu-satunya yang tidak dipindahkan, karena sedang digunakan, adalah /bak , /boot , /dev , /proc , /sys .

Sekarang, perintah apa pun yang saya coba jalankan tidak akan terjadi. Saya terus-menerus mendapatkan "Tidak ada file atau direktori seperti itu".

Saya terhubung melalui ssh dan melalui ftp, tetapi saya tidak dapat memindahkan file melalui ftp, karena login SU langsung dinonaktifkan. Saya juga memiliki akses ke server sebenarnya jika saya perlu melakukan sesuatu langsung dari sana.

Saya berasumsi saya perlu mengedit file konfigurasi untuk memberi tahu di mana menemukan /bin folder dan itu akan membantu saya mendapatkan akses lagi, tetapi saya tidak tahu file mana itu atau bagaimana melakukannya (karena saya bahkan tidak dapat menjalankan chmod untuk mengubah izin).

Apakah ada jalan keluar selain menginstal ulang?

Saya sedang mengerjakan CentOS versi lama.

Saya sangat baru di dunia Linux, oleh karena itu tindakan dan pertanyaan ini…

Jawaban yang Diterima:

Jika Anda masih memiliki shell root, Anda mungkin memiliki kesempatan untuk memperbaiki sistem Anda. Katakanlah Anda memindahkan semua direktori umum (/bin , /etc , /lib , /sbin , /usr — ini adalah yang dapat mempersulit pemulihan) di bawah /oops .

Anda tidak akan dapat mengeluarkan mv perintah secara langsung, bahkan jika Anda menentukan jalur lengkap /oops/bin/mv . Itu karena mv terhubung secara dinamis; karena Anda telah memindahkan /lib direktori, mv tidak dapat dijalankan karena tidak dapat menemukan pustaka yang merupakan bagian dari kodenya. Bahkan, lebih buruk dari itu:mv tidak dapat menemukan pemuat dinamis /lib/ld-linux.so.2 (nama dapat bervariasi tergantung pada arsitektur dan varian unix Anda, dan direktori dapat berupa nama yang berbeda seperti /lib32 atau /lib64 ). Oleh karena itu, sampai Anda memindahkan /lib direktori kembali, Anda perlu memanggil tautan secara eksplisit, dan Anda perlu menentukan jalur ke pustaka yang dipindahkan. Berikut perintah yang diujikan pada Debian Squeeze i386.

export LD_LIBRARY_PATH=/oops/lib:/oops/lib/i386-linux-gnu
/oops/lib/ld-linux.so.2 /oops/bin/mv /oops/* /

Anda mungkin perlu menyesuaikan ini sedikit untuk distribusi atau arsitektur lain. Misalnya, untuk CentOS di x86_64:

export LD_LIBRARY_PATH=/oops/lib:/oops/lib64
/oops/lib64/ld-linux-x86-64.so.2 /oops/bin/mv /oops/* /

Saat Anda mengacaukan sesuatu /lib , ada baiknya memiliki kotak peralatan yang terhubung secara statis. Beberapa distribusi (saya tidak tahu tentang CentOS) menyediakan salinan Busybox yang terhubung secara statis. Ada juga selempang, cangkang mandiri dengan banyak perintah bawaan. Jika Anda memiliki salah satunya, Anda dapat melakukan pemulihan dari sana. Jika Anda belum menginstalnya sebelumnya, sudah terlambat.

# mkdir /oops
# mv /lib /bin /oops
# sash
Stand-alone shell (version 3.7)
> -mv /oops/* /
> exit

Jika Anda tidak memiliki shell root lagi, tetapi Anda masih memiliki daemon SSH yang mendengarkan dan Anda dapat masuk secara langsung sebagai root melalui ssh, dan Anda memiliki salah satu dari kotak peralatan yang terhubung secara statis ini, Anda mungkin dapat masuk ssh. Ini dapat berfungsi jika Anda telah memindahkan /lib dan /bin , tapi bukan /etc .

ssh [email protected] /oops/bin/sash
[email protected]'s password:
Stand-alone shell (version 3.7)
> -mv /oops/* /

Beberapa administrator menyiapkan akun alternatif dengan shell yang terhubung secara statis, atau membuat akun root menggunakan shell yang terhubung secara statis, hanya untuk masalah seperti ini.

Terkait:Izin CentOS untuk pengguna FTP – 550 Buat operasi direktori gagal?

Jika Anda tidak memiliki shell root dan belum mengambil tindakan pencegahan, Anda harus mem-boot dari live CD/USB Linux (apa pun dapat dilakukan selama itu cukup baru untuk dapat mengakses disk dan sistem file Anda) dan pindahkan file kembali.


Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara menginstal Node.js dan NPM di CentOS

  3. Memindahkan tempat sampah dan folder lain! Bagaimana cara mendapatkannya kembali?

  1. Cara Menginstal penggalian di CentOS 7 dan 8

  2. Cara Instal Node.js dan NPM di CentOS 7

  3. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  1. Cara Menginstal dan Mengonfigurasi GitLab di CentOS 7

  2. Cara Instal dan Konfigurasi Redmine di CentOS 7

  3. Cara Instal Node.js dan npm di CentOS 8