web-dev-qa-db-ja.com

偶発的なchmod後のサーバーの権限を修正

メールサーバーのデバッグを試みているときに、次のように入力しました。

chmod -R 777 /

の代わりに:

chmod -R 777 .

ケーキの上のアイシング、何かを修正するためにサインインに使用するスクリプトを変更したことを忘れたため、これをすべてルートとして実行しました。私はほとんどのシステムのバックアップを持っていません(私が知っている選択の悪さ)。

「chmod -R -777 /からの回復」および「 'chmod -R 777 /'の後にどうするか?」の質問とは異なります。私はまだルートとしてサインインしており、システム全体が変更されたわけではないため、システムをある程度制御できます。また、損傷を最小限に抑えるために、1秒以内にコマンドを^ C dアウトします。それ以来、サーバーをインターネットから物理的に切断しました。

パッケージマネージャーからのデータに基づいてファイルシステムのアクセス許可を復元した場合、スクリプトで修正できると思いますが、これをどのように行うのかわかりません。これが不可能な場合、サーバーからデータを保存してOSを再インストールする方法を教えてください。

ファイルが見つからない場合の潜在的なリスクは承知していますが、それらにも関わらず、再インストールするよりも回復することをお勧めします。

これはls -la /の現在の出力です:

drwxrwxrwx  22 root root  4096 Sep  7  2016 .
drwxrwxrwx  22 root root  4096 Sep  7  2016 ..
drwxr-xr-x   2 root root  4096 May 18 07:55 bin
drwxr-xr-x   3 root root  4096 Sep 21 07:53 boot
drwxr-xr-x  19 root root  3180 Sep 11 20:54 dev
drwxrwxrwx  92 root root  4096 Aug 23 07:50 etc
drwxr-xr-x   4 root root  4096 May 23  2016 home
lrwxrwxrwx   1 root root    31 Feb 24  2016 initrd.img -> /boot/initrd.img-3.16.0-4-AMD64
drwxrwxrwx  18 root root  4096 Feb 24  2016 lib
drwxr-xr-x   2 root root  4096 Jun 20 07:00 lib64
drwx------   2 root root 16384 May 19  2016 lost+found
drwxrwxrwx   2 root root  4096 May  5  2015 media
drwxr-xr-x   2 root root  4096 May  5  2015 mnt
drwxr-xr-x   3 root root  4096 May 28  2016 opt
dr-xr-xr-x 148 root root     0 Sep  3 21:55 proc
drwxrwxrwx  10 root root  4096 Aug 19 17:58 root
drwxr-xr-x  22 root root   800 Sep 21 17:09 run
drwxrwxrwx   3 root root  4096 Jun 20 07:00 sbin
drwxr-xr-x   4 root root  4096 Sep 20 23:18 sftp
dr-xr-xr-x  13 root root     0 Sep  3 21:55 sys
drwxrwxrwx   8 root root  4096 Sep 21 17:17 tmp
drwxrwxrwx  11 root root  4096 Feb 24  2016 usr
drwxr-xr-x  14 root root  4096 Jun 25 06:21 var
lrwxrwxrwx   1 root root    27 Feb 24  2016 vmlinuz -> boot/vmlinuz-3.16.0-4-AMD64

私のパニックで気づいたのは、debianではなくubuntuフォーラムをクリックしたことです...メールサーバーの修正方法ではなく、それを認識しています。何が壊れたのかを見るのはハッキーでずさんな修正でした

ivこれを正しいフォーラムに今すぐ再投稿しました

6
kaioker2

権限エラーの修正

ルートディレクトリのアクセス許可をデフォルトに戻す方法

ルール#1:コマンドラインに慣れていない場合は、rootとしてコマンドを実行しないでください。

chmod -R 777 /をルートとして実行するとシステムが破損します。

rm -rf /をルートとして実行するとが災害になります!.

ルートとしてchmod -R 777 /を実行した場合は、次の手順に従って元に戻します。

ステップ1:

次のスクリプトをコピーし、コンソールに貼り付けてfixpermissionスクリプトを生成します

echo '
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64 \
/media /mnt /opt /run /sbin /srv /usr /var

chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root

' > fixpermission

chmod +x fixpermission

./fixpermission

上記は、fixpermissionという名前のスクリプトを作成し、./fixpermissionによって実行されます(まだ呼び出されていない場合)。

ステップ2:

stat -c '%A %a %n' /*を実行して、適切なディレクトリと復元された権限を表示します。

例:ディレクトリのアクセス許可構造は次のようになります。

root@plab:~# stat -c '%A %a %n' /*
drwxr-xr-x 755 /bin
drwxr-xr-x 755 /boot
drwxr-xr-x 755 /dev
drwxr-xr-x 755 /etc
drwxr-xr-x 755 /home
lrwxrwxrwx 777 /initrd.img
lrwxrwxrwx 777 /initrd.img.old
drwxr-xr-x 755 /lib
drwxr-xr-x 755 /lib64
drwx------ 700 /lost+found
drwxr-xr-x 755 /media
drwxr-xr-x 755 /mnt
drwxr-xr-x 755 /opt
dr-xr-xr-x 555 /proc
drwx------ 700 /root
drwxr-xr-x 755 /run
drwxr-xr-x 755 /sbin
drwxr-xr-x 755 /srv
dr-xr-xr-x 555 /sys
drwxrwxrwt 1777 /tmp
drwxr-xr-x 755 /usr
drwxr-xr-x 755 /var
lrwxrwxrwx 777 /vmlinuz
lrwxrwxrwx 777 /vmlinuz.old

ステップ3:

システムを再起動してください!

これが役立つことを願っています。

8
Prince Adeyemi