GNU/Linux >> Linux の 問題 >  >> Cent OS

Centos –移動したビンとその他のフォルダー!それらを取り戻す方法は?

誤ってすべてのフォルダをルートからサブフォルダに移動しました。 (/bin/etc/home/lib/usr …すべて移動)使用されていたために移動されなかったのは、/bakだけです。 、/boot/dev/proc/sys

さて、私が実行しようとするコマンドは、単純に発生しません。 「そのようなファイルやディレクトリはありません」というメッセージが常に表示されます。

sshとftpを介して接続していますが、直接SUログインが無効になっているため、ftpを介してファイルを移動できません。そこから直接何かをする必要がある場合は、実際のサーバーにもアクセスできます。

/binの場所を指定するために、構成ファイルを編集する必要があると想定しています。 フォルダとそれは私が再びアクセスするのに役立ちますが、それがどのファイルになるのか、それをどのように行うのかわかりません(chmodを実行することさえできないため) 権限を変更するには)

再インストール以外の方法はありますか?

古いバージョンのCentOSに取り組んでいます。

私はLinuxの世界に非常に慣れていないので、この行動と質問…

承認された回答:

ルートシェルがまだある場合は、システムを修復する機会があるかもしれません。すべての共通ディレクトリ(/bin)を移動したとしましょう 、/etc/lib/sbin/usr —これらは回復を困難にする可能性のあるものです)/oops

mvを発行することはできません フルパス/oops/bin/mvを指定した場合でも、コマンドを直接実行します 。これは、mv 動的にリンクされています。 /libを移動したため ディレクトリ、mv コードの一部を構成するライブラリが見つからないため、実行できません。実際、それよりもさらに悪いです:mv ダイナミックローダー/lib/ld-linux.so.2が見つかりません (名前はアーキテクチャとUNIXバリアントによって異なる場合があり、ディレクトリは/lib32などの別の名前である可能性があります。 または/lib64 )。したがって、/libを移動するまで ディレクトリに戻るには、リンカを明示的に呼び出す必要があり、移動したライブラリへのパスを指定する必要があります。これがDebiansqueezei386でテストされたコマンドです。

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

他のディストリビューションやアーキテクチャでは、これを少し調整する必要があるかもしれません。たとえば、x86_64上のCentOSの場合:

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

/libを台無しにしたとき 、静的にリンクされたツールボックスを配置すると便利です。一部のディストリビューション(CentOSについてはわかりません)は、静的にリンクされたBusyboxのコピーを提供します。多くのコマンドが組み込まれたスタンドアロンシェルであるsashもあります。これらのいずれかをお持ちの場合は、そこから回復できます。事前にインストールしていない場合は、手遅れです。

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

ルートシェルがもうないが、SSHデーモンがリッスンしていて、root over sshとして直接ログインでき、これらの静的にリンクされたツールボックスの1つがある場合は、sshでログインできる可能性があります。 /libを移動した場合に機能します および/bin 、ただし/etcではありません 。

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

一部の管理者は、この種の問題のために、静的にリンクされたシェルを使用して代替アカウントを設定したり、rootアカウントに静的にリンクされたシェルを使用させたりします。

関連:FTPユーザーのCentOS権限– 550ディレクトリの作成操作に失敗しましたか?

ルートシェルがなく、予防策を講じていない場合は、LinuxライブCD / USBから起動する必要があります(ディスクやファイルシステムにアクセスできるようになるのに十分な最新のものであれば、何でもかまいません)。ファイルを元に戻します。


Cent OS
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOSにNode.jsとNPMをインストールする方法

  3. ビンと他のフォルダを移動しました!それらを取り戻す方法は?

  1. CentOS7および8にdigをインストールする方法

  2. CentOS7にNode.jsとNPMをインストールする方法

  3. CentOS7にRedisをインストールして設定する方法

  1. CentOS7にGitLabをインストールして構成する方法

  2. CentOS7にRedmineをインストールして設定する方法

  3. CentOS8にNode.jsとnpmをインストールする方法