/bin、/boot、および/devに対する権限が壊れています。混乱した部分を整理する方法は?

/bin、/boot、および/devに対する権限が壊れています。混乱した部分を整理する方法は?

ちょっとひどいミスを犯して自分で修正しようとしていますが、助けが必要です。

構文エラーのため、すべてのファイルとフォルダの権限が変更されました。幸いなことに、この問題が発生している間にこれを見て正常に防止しました。 「のみ」/bin/bootおよび/dev影響を受けます。以下は、発生したイベントの一部です(完全ログ:http://pastebin.com/4BkbXEqD):

Apr 11 21:34:08 *** sftp-server[20582]: set "/.newrelic" mode 40754
Apr 11 21:34:08 *** sftp-server[20582]: set "/bin" mode 40554
Apr 11 21:34:09 *** sftp-server[20582]: set "/boot" mode 40554
Apr 11 21:34:09 *** sftp-server[20582]: set "/cgroup" mode 40754
Apr 11 21:34:09 *** sftp-server[20582]: set "/dev" mode 40754
Apr 11 21:34:09 *** sftp-server[20582]: opendir "/.newrelic"
Apr 11 21:34:09 *** sftp-server[20582]: closedir "/.newrelic"
Apr 11 21:34:09 *** sftp-server[20582]: opendir "/.newrelic"
Apr 11 21:34:10 *** sftp-server[20582]: closedir "/.newrelic"
Apr 11 21:34:10 *** sftp-server[20582]: opendir "/"
Apr 11 21:34:10 *** sftp-server[20582]: closedir "/"
Apr 11 21:34:10 *** sftp-server[20582]: opendir "/bin"
Apr 11 21:34:10 *** sftp-server[20582]: closedir "/bin"
Apr 11 21:34:10 *** sftp-server[20582]: set "/bin/mknod" mode 100754
Apr 11 21:34:10 *** sftp-server[20582]: set "/bin/cat" mode 100754
Apr 11 21:34:10 *** sftp-server[20582]: set "/bin/ping6" mode 100754

たとえば、MySQLはこれ以上実行されておらず、ダメージがさらに大きいようです。

これらのフォルダとファイルの読み取りおよび実行権限を復元しようとしましたが、実際には以前の状態が何であるかわかりません。

システムを動作状態に復元するには?

ベストアンサー1

ルートシェルを起動したら、ルートシェルから権限を復元できる必要があります。コンソールにrootとしてログインすると、rootシェルを取得できます。この時点で、構成によっては、su通常のアカウントを使用してrootアクセス権を取得したり取得できなかったりsudo、root以外のアカウントを使用してログインできないことがあります。

投稿した履歴が完全であれば幸運になり、ファイル(/etcおよび回復するのが最も難しい権限を持つファイル/var)は影響を受けません。

Apr 11 21:34:08 *** sftp-server[20582]: set "/.newrelic" mode 40754
Apr 11 21:34:08 *** sftp-server[20582]: set "/bin" mode 40554
Apr 11 21:34:09 *** sftp-server[20582]: set "/boot" mode 40554
Apr 11 21:34:09 *** sftp-server[20582]: set "/cgroup" mode 40754
Apr 11 21:34:09 *** sftp-server[20582]: set "/dev" mode 40754

40754(8進表記)は、所有者が書き込み可能で、所有者とグループが実行可能で、誰もが読み取ることができるディレクトリを表します。一番右の3桁だけが権限を表し、前の数字はファイル形式をエンコードし、変更できません。ディレクトリに対する「実行」権限は、実際にはそのディレクトリのファイルにアクセスする権限を意味するため、ほとんどのユーザーはそのディレクトリのファイルにアクセスできなくなります。ほとんどの最上位ディレクトリには権限755が必要です。これは、誰もが読んで実行でき、所有者だけが書き込むことができることを意味します(例外は/lost+found通常700/tmpで、1777でなければならず、所有者などの特殊なファイルシステムには書き込めませ/proc/sys)。それが何であるかわかりません/.newrelic。標準のトップレベルディレクトリではありません。

chmod 755 /bin /boot /cgroup /dev
Apr 11 21:34:10 *** sftp-server[20582]: set "/bin/mknod" mode 100754

/binとにあるほとんどのファイルは、/sbin誰でも読んで実行できる必要があり、所有者だけが書き込むことができます。それらのいくつかは必要ですユーザーIDの設定

chmod a+x /bin/* /sbin/*
chmod 4755 /bin/su /bin/sudo /bin/mount /bin/umount /bin/ping /bin/ping6
chmod 4754 /bin/fusermount

私の考えでは、/bootすべてのファイルとディレクトリは誰でも読むことができ、ディレクトリは実行可能でなければなりませんが、ファイルはそうではありません。

find /boot -type d -exec chmod 755 {} + -type f -exec chmod 644 {} +

これにより、/devファイル間で権限が大きく異なります。幸いなこと/devに、インメモリファイルシステムなので、再起動後は問題ありません。再起動せずに権限を復元できる場合は、/dev次のコマンドが有効になると思います。

udevadm trigger --sysname-match='*'

おすすめ記事