Для тех, кто находит эту тему, гораздо проще и быстрее просто использовать инструмент, предназначенный для восстановления данных, например, ddrescue. Сначала он пытается спасти хорошие части в случае ошибок чтения.
Запустите его дважды:
Первый раунд, скопируйте каждый блок без ошибки чтения и запишите ошибки в rescue.og.
sudo ddrescue -f -n /dev/sdX /dev/sdY rescue.log
Второй раунд, скопируйте только плохие блоки и попробуйте 3 раза, чтобы прочитать из источника, прежде чем сдаваться.
sudo ddrescue -d -f -r3 /dev/sdX /dev/sdY rescue.log
Теперь вы можете установить новый диск и проверьте файловую систему на наличие повреждений.
Дополнительная информация: https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html
777 - это плохое разрешение в целом, и я покажу вам, почему.
Несмотря на то, что он может выглядеть в Казино или Лас-Вегасе, 777 не означает, что вы используете джекпот. Скорее, джекпот для тех, кто хочет изменить ваши файлы. 777 (и его уродливый двоюродный брат 666) позволяют разрешать чтение и запись (а в случае с 777, выполнение) другим. Вы можете узнать больше о том, как работают права доступа к файлам, но вкратце есть три группы разрешений: владелец, группа и другие. Установив разрешение на 6 или 7 (rw- или rwx) для других, вы даете любому пользователю возможность редактировать и управлять этими файлами и папками. Обычно, как вы можете себе представить, это плохо для безопасности.
Вот мой пример:
marco@desktop:~/Projects/AskUbuntu/20105$ cd ..
marco@desktop:~/Projects/AskUbuntu$ chmod 0777 20105
marco@desktop:~/Projects/AskUbuntu$ cd 20105/
marco@desktop:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
marco@desktop:~/Projects/AskUbuntu/20105$ touch test
marco@desktop:~/Projects/AskUbuntu/20105$ chmod 0666 test
До сих пор я создал папку и сделал файл с «плохими» разрешениями (777 и 666). Теперь я переключусь на другого пользователя и попытаюсь манипулировать этими файлами.
marco@desktop:~/Projects/AskUbuntu/20105$ sudo su - malicious
malicious@desktop:~$ cd /home/marco/Projects/AskUbuntu/20105
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls
test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco 0 2011-01-04 20:33 test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ touch bad
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cat test
OVERWRITE
Как этот «вредоносный» пользователь, я смог поместить файлы в каталог и вставить текст в уже существующие файлы. Если ниже, в каталоге с 755 и файлами с 644, я могу видеть внутренние файлы и каталоги, но я не могу редактировать файлы и не создавать новые:
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied
Для разрешений Apache, re захочется придерживаться 0755 и 0644 (AKA umask 022) для папок и файлов соответственно. Это позволяет вам, как владельцу файлов, редактировать и манипулировать ими, предоставляя Apache минимальные уровни доступа, необходимые для работы.
777 - это плохое разрешение в целом, и я покажу вам, почему.
Несмотря на то, что он может выглядеть в Казино или Лас-Вегасе, 777 не означает, что вы используете джекпот. Скорее, джекпот для тех, кто хочет изменить ваши файлы. 777 (и его уродливый двоюродный брат 666) позволяют разрешать чтение и запись (а в случае с 777, выполнение) другим. Вы можете узнать больше о том, как работают права доступа к файлам, но вкратце есть три группы разрешений: владелец, группа и другие. Установив разрешение на 6 или 7 (rw- или rwx) для других, вы даете любому пользователю возможность редактировать и управлять этими файлами и папками. Обычно, как вы можете себе представить, это плохо для безопасности.
Вот мой пример:
marco@desktop:~/Projects/AskUbuntu/20105$ cd ..
marco@desktop:~/Projects/AskUbuntu$ chmod 0777 20105
marco@desktop:~/Projects/AskUbuntu$ cd 20105/
marco@desktop:~/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:32 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
marco@desktop:~/Projects/AskUbuntu/20105$ touch test
marco@desktop:~/Projects/AskUbuntu/20105$ chmod 0666 test
До сих пор я создал папку и сделал файл с «плохими» разрешениями (777 и 666). Теперь я переключусь на другого пользователя и попытаюсь манипулировать этими файлами.
marco@desktop:~/Projects/AskUbuntu/20105$ sudo su - malicious
malicious@desktop:~$ cd /home/marco/Projects/AskUbuntu/20105
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls
test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ ls -lah
total 8.0K
drwxrwxrwx 2 marco marco 4.0K 2011-01-04 20:33 .
drwxr-xr-x 3 marco marco 4.0K 2011-01-04 20:32 ..
-rw-rw-rw- 1 marco marco 0 2011-01-04 20:33 test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ touch bad
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ echo "OVERWRITE" > test
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cat test
OVERWRITE
Как этот «вредоносный» пользователь, я смог поместить файлы в каталог и вставить текст в уже существующие файлы. Если ниже, в каталоге с 755 и файлами с 644, я могу видеть внутренние файлы и каталоги, но я не могу редактировать файлы и не создавать новые:
malicious@desktop:/home/marco/Projects/AskUbuntu/20105$ cd /home/marco/Projects
malicious@desktop:/home/marco/Projects$ touch hey
touch: cannot touch `hey': Permission denied
Для разрешений Apache, re захочется придерживаться 0755 и 0644 (AKA umask 022) для папок и файлов соответственно. Это позволяет вам, как владельцу файлов, редактировать и манипулировать ими, предоставляя Apache минимальные уровни доступа, необходимые для работы.
По сути, наличие разрешений 777 не позволит вам взломать самостоятельно, но если кто-то получит какой-либо файл в любом месте, его можно использовать для эскалации разрешений и получения полного контроля над вашим компьютером. Хуже всего то, что ваши разрешения используют «7» - это означает права на чтение, запись и выполнение.
Предположим, что хакер хочет захватить ваш компьютер. Он может подключиться к вашему компьютеру с помощью веб-браузера, подключившись к http://yourcomputer.example.com:80/. Если у вас есть доступные страницы, позволяющие ему загружать изображения, он может переименовать исполняемый файл, чтобы завершить его с помощью «.jpg» и загрузить его на свой сервер. Теперь он просматривает этот файл в своем веб-браузере и запускает его, потому что linux не заботится о расширении, он видит только, что это исполняемый файл. Это может не получить его много, но из-за того, что он работает вообще, он знает, что он работает как пользователь Apache. Затем он загружает измененную версию, которая будет редактировать файлы конфигурации apache, предоставляя ему еще больший доступ - скажем так, что apache выводит содержимое / etc / passwd. Затем он может использовать эту информацию, чтобы узнать, какие пользователи существуют в системе. Затем он может подключиться с помощью ssh и пробовать общие пароли для входа в систему в качестве этих пользователей. Если это не сработает, он активирует атаку полной грубой силы. Если он попадает в качестве пользователя с доступом sudo, то вся система принадлежит ему.
Теперь вы можете сказать, что это маловероятно, или что это не так, как работает настоящий хакер. Это правда, но дело в том, что, установив файлы в chmod 777, вы открыли дыру в безопасности, которую может использовать хакер, но он считает нужным.
Если вы вместо этого следуете за http://yourcomputer.example.com:80/ , то это отверстие не происходит, и ваша система гораздо труднее взломать. Несмотря на то, что делать что-то труднее, вы все равно должны сделать все возможное.
По сути, наличие разрешений 777 не позволит вам взломать самостоятельно, но если кто-то получит какой-либо файл в любом месте, его можно использовать для эскалации разрешений и получения полного контроля над вашим компьютером. Хуже всего то, что ваши разрешения используют «7» - это означает права на чтение, запись и выполнение.
Предположим, что хакер хочет захватить ваш компьютер. Он может подключиться к вашему компьютеру с помощью веб-браузера, подключившись к http://yourcomputer.example.com:80/. Если у вас есть доступные страницы, позволяющие ему загружать изображения, он может переименовать исполняемый файл, чтобы завершить его с помощью «.jpg» и загрузить его на свой сервер. Теперь он просматривает этот файл в своем веб-браузере и запускает его, потому что linux не заботится о расширении, он видит только, что это исполняемый файл. Это может не получить его много, но из-за того, что он работает вообще, он знает, что он работает как пользователь Apache. Затем он загружает измененную версию, которая будет редактировать файлы конфигурации apache, предоставляя ему еще больший доступ - скажем так, что apache выводит содержимое / etc / passwd. Затем он может использовать эту информацию, чтобы узнать, какие пользователи существуют в системе. Затем он может подключиться с помощью ssh и пробовать общие пароли для входа в систему в качестве этих пользователей. Если это не сработает, он активирует атаку полной грубой силы. Если он попадает в качестве пользователя с доступом sudo, то вся система принадлежит ему.
Теперь вы можете сказать, что это маловероятно, или что это не так, как работает настоящий хакер. Это правда, но дело в том, что, установив файлы в chmod 777, вы открыли дыру в безопасности, которую может использовать хакер, но он считает нужным.
Если вы вместо этого следуете за http://yourcomputer.example.com:80/ , то это отверстие не происходит, и ваша система гораздо труднее взломать. Несмотря на то, что делать что-то труднее, вы все равно должны сделать все возможное.