誤って、タイプミスのある愚かなコマンドを実行しました。ユーザー「teamspeak」を作成し、現在のディレクトリとそのサブディレクトリのファイル所有者を変更したかったのですが、誤って「/」で実行しました。
コマンドの実行中は「root」ではなく「teamspeak」のユーザーでしたそして次のようなものを実行しました:
chown -r teamspeak:teamspeak /*
私は多くの行を見ました、私が読むことができたのは、ファイル所有者の変更に失敗したこと、進行状況は/ libの周りであり、CTRL + Cを押して停止したときはおそらく/ bootでした。
ただし、再起動後にサーバーが使用可能になることはありません(ファイル所有者のことは90%確信しています)。
ホストが提供するレスキューイメージモードで起動しようとしています。
ファイルパーミッションを元に戻す方法があるかどうか疑問に思いました。
および/または
teamspeak:teamspeakに属するすべてのファイルを検索し、それらをroot:rootにするコマンド
少なくとも、正しく起動して、サーバーからすべてのデータベースをフェッチします。
この問題は修正され、データセンターの技術者が開始して次のように述べました。
マシンはエラーでBIOSで停止し、介入を待っていました。
詳細情報を待っていますが、/ bootディレクトリがroot:root以外のユーザーに設定されているため、おそらく起動の警告でした。
今、私はsshに入り、find / -user 'teamspeak'
を実行して、間違ったユーザー設定のファイルを確認しました。
/mnt
/lib
/lost+found
/root
/etc
/lib64
/opt
/sbin
/var
/var/tmp/yum-teamspeak-6jBpFg
/usr
/boot
/home
/home/teamspeak
/home/teamspeak/.viminfo
/home/teamspeak/.bashrc
/home/teamspeak/.bash_profile
/home/teamspeak/.bash_logout
/home/teamspeak/.bash_history
/srv
/selinux
/tmp
/bin
/media
これらは多くの変更されたファイル/フォルダではなく、結果にはサブディレクトリも含まれているようです。そこで、同じOS(CentOS 6)を搭載した別のマシンと比較しました。これらはすべてroot:rootであるはずでした。元に戻し、再起動すると、正常に起動しました。
Pfew :)
"teamspeak:teamspeakに属するすべてのファイルを検索し、それらをroot:rootにするコマンド"
試してみてください
find / -user 'teamspeak' | xargs chown root:root
問題は、root
がすべてのファイル/フォルダーの所有者ではないため、ファイル/フォルダーの所有者をroot
に戻すとすべての問題が解決しない場合があることです。
2つの選択肢があると思います。
奇妙なことに、OPはroot
の代わりにユーザー「teamspeak」としてコマンドを実行することにより、明らかにマシンをダウンさせました(または少なくとも再起動を阻止しました)。コマンドが実行される前にボックスにすでにアクセス許可の問題がない限り、これは発生しないはずです。
変更されたファイルは最初からルート所有されるべきではないため、Janneの答えは機能しませんが、find
を使用するという考えは有効かもしれません。
AdrianTNTが回復プロセスのどこにあるかはわかりませんが、これが私が行うサニティチェック/検証です。
1)それを実行しますfind / -user teamspeak
そして変更されたファイルのリストを取得します2)このリストを別のCentOSボックスのファイル所有権と比較します3)別のCentOSボックスが利用できない場合(または十分に迅速に起動できない場合)、少なくとも目玉を実行しますファイルリストの。所有権が変更されたシステムファイルを探します。
このリストができたら、別のCentOSボックスを見たいと思うでしょう。前述のように、非特権ユーザーによるchown
は、そのようなボックスを台無しにしないでください。間違いの前に許可の問題があった可能性があります。
バックアップがない場合、私の頭に浮かぶ唯一の解決策は、サーバーを再インストールし、そのコマンドを二度と実行しないことです:D
CDから起動し、ディスクをマウントして、必要なファイルを回復することもできます。