Назад | Перейти на главную страницу

Потеря данных из-за изменения разрешений?

Кажется, я удалил некоторые файлы на моем носителе, просто изменив разрешения.

История

У меня на компьютере установлено много операционных систем, и я постоянно переключаюсь между ними. Я купил жесткий диск емкостью 1 ТБ и отформатировал его как HFS + (без журналирования). Он хорошо работал между OSX и всеми моими установками Linux, имея гораздо лучшую поддержку метаданных, чем NTFS. Я никогда не синхронизировал UID для своих операционных систем, поэтому разрешения всегда делали забавные вещи. Вчера я попытался исправить разрешения, сначала изменив UID других операционных систем в соответствии с OSX, а затем изменив права собственности на файлы для всех файлов на диске в соответствии с OSX. Около 50% файлов на диске изначально принадлежали OSX, другая половина принадлежала различным установкам Linux. Я начал пытаться изменить права доступа к файлам для папок, и тут дело пошло на юг.

Команды

Эти команды выполнялись рекурсивно на одном разделе диска.

sudo chflags nouchg
sudo chflags -N
sudo chown myusername
sudo chmod 666
sudo chgrp staff

Плохо

Когда-то во время выполнения этих команд все файлы, принадлежащие OSX, были удалены. Если в папке были файлы на основе Linux, она осталась бы нетронутой, но любая папка, содержащая только файлы OSX, была стерта. Если папка, содержащая файлы linux, также содержит подпапку только с файлами OSX, подпапка останется, но будет недоступна и будет отображать размер файла 0 байт.

К счастью, эти команды были запущены только в папке с видео, у меня также есть музыкальная папка с той же проблемой, но я не выполнял на ней ни одну из этих команд. По сути, у меня есть примеры прав доступа к файлам для всех трех состояний - файлы linux до и после и файлы OSX до.

Файл OSX до

-rw-r--r--@ 1 charliehorse  1000  3634241 15 Nov  2008 /path/to/file
    com.apple.FinderInfo         32 

Файл Linux до:

-rw-r--r--@ 1 charliehorse  1000  5321776 20 Sep  2002 /path/to/file/
    com.apple.FinderInfo         32 

Linux File After (только чтение): (Другой файл, но я считаю, что изначально те же разрешения)

-rw-rw-rw-@ 1 charliehorse staff  366982610 17 Jun  2008 /path/to/file
    com.apple.FinderInfo           32 

Эти файлы все еще существуют, поэтому, если есть какие-либо другие команды, которые нужно запустить для них, чтобы определить, что здесь произошло, я могу это сделать.

РЕДАКТИРОВАТЬ

Запуск ls в одной из "пустых" удаленных папок OSX дает следующее:

ls: .: Permission denied
ls: ..: Permission denied
ls: subdirA: Permission denied
ls: subdirB: Permission denied
ls: subdirC: Permission denied
ls: subdirD: Permission denied

Я считаю, что мои файлы все еще могут быть там, но разрешения не работают.

Ну, ваш каталог был «пустым», потому что вы убрали «бит выполнения» для каталогов с помощью вашего рекурсивного chmod, который вам нужен, чтобы иметь возможность отображать файлы в каталоге.

Что касается того, почему «root» не сможет изменить разрешения: я предполагаю, что вы запускали команды «root» через sudo, что не сработало, потому что ваша пользовательская оболочка не могла «видеть» каталог. Выполнение команд через настоящую корневую оболочку не имело бы таких проблем.