web-dev-qa-db-ja.com

ルートとして「chown www-data:www-data / -R」を誤って実行した

数秒前に実行しました。なんとかしました CtrlC 自分がやっていることに気づいた途端に。

これまでのところ、このディレクトリが通過するのは/binだけです。

私は他に何かすることを恐れています。これまでのところ、もう通常のユーザーとしてsuを使用できないことに気付きました。

幸い、私はまだ別のrootターミナルを開いています。私は何をしますか?

26
Will

/ bin /のほとんどすべてはroot:rootが所有する必要があるため、以下を実行すると、これらのファイルの所有権を修正できます。

chown root:root -R /bin/ 

また、setuidビットが/ bin/suに正しく設定されていることを確認することもできます。これは、次のように修正できます。

chmod 4755 /bin/su
10
epic9x

Redhatユーザー:

chown 0:0 /bin/rpm && rpm -qa | xargs rpm --setugids

Debian/Ubuntuユーザー:

chown 0:0 /bin/*  /usr/bin/*
chown daemon:daemon /usr/bin/at
chown 0:utmp /usr/bin/screen
chmod 02755 /usr/bin/screen
chmod u+s /bin/fusermount /bin/mount /bin/su /bin/mount
chmod u+s /usr/bin/Sudo /usr/bin/passwd
screen

画面の実行中に、これを少なくとも2回実行します。

dpkg --get-selections | awk '{ if ($2 == "install") print $1}' \
    | xargs apt-get install --reinstall --

支払いvery出力に細心の注意を払ってください。間違った権限を持つ何かについて不平を言った場合は、別の画面ウィンドウで修正する必要があります。

画面のクラッシュコース:

Control+A     - command key
Control+A a   - emit a control+A
Control+A n   - next "screen"
Control+A c   - create "screen"

Solarisユーザー:

あなたはめちゃくちゃです。

pkgchk -R / -f -a

すべての権限をリセットしますが、setuid-nessは引き続き壊れます。バックアップまたは別のsolarisマシンを使用して、setuid/setgidスクリプトとファイルを探し、手動で修正します。

バックアップに関する重要なこと

あなたがそれらを取ることではなく、あなたがそれらを回復することができるということです。

他の人からバックアップを取るようにアドバイスされましたが、テストする必要があることを付け加えておきます。 unixishシステムを使用している場合、理由はまったくありませんがあり、ファイルを定期的に別のマシンにダンプして、すべてが機能することを確認することはできません。

36
geocar

影響を受けるバイナリのset-uidフラグも削除されている可能性があることに注意してください。これはchownのセキュリティ機能です。どのバイナリにset-uidフラグまたはset-gidフラグが設定されているかを他のシステムに確認し、必ずバイナリにも設定してください。

3
Teddy

RPMを使用してファイルのアクセス許可をリセットする方法の詳細を説明するつもりでしたが、 詳細 の多いサイトを見つけました。また、Ubuntu/Debian(一般に.debs)がサポートしていないことについても触れています。

しかし、一般的にあなたが探しているオプションは次のようなものです:

rpm --setugids {packagename}
3
Coops

これがdebianシステムの場合、aptitudeはすべてを再インストールします。

2
ptman

すばらしい対応に感謝し、すべてが修正されたようです。

/ bin/suは一度chmodして4755に動作しました(chownがsuidビットを変更した理由がわかりません)

私は気づきませんでしたが、/ homeディレクトリでも機能し始めましたが、それは十分簡単な修正でした(user:groupを各ディレクトリのユーザーに設定するだけです)。

0
Will

動作するバックアップはありますか?はいの場合は、binフォルダーを復元します。

それ以外の場合は、動作中のインストールで見つかったものと同じバージョンのubuntuとchownをインストールした他のボックスを確認してください。

0
Christian

これを試してください:/ binディレクトリですべてのwww-dataを見つけます

# find /bin -user www-data

次にwww-dataを元のユーザーに戻します

# find /bin -user www-data -exec chown ORiginalUser {} \;

# then change www-data back to oringal group
# find /bin -group www-data -exec chgrp originaluser {} \;
0
SkyHi