РЕДАКТИРОВАТЬ : проблема заключалась в том, что Apple использует разрешения для пометки резервных копий и не позволяет вам изменять их (вероятно, функция безопасности). При использовании chmod -RN <dir>
я удалил данные ACL из всех папок с важными данными, и это позволило мне сделать себя владельцем и применить соответствующие разрешения.
Исходный вопрос
У меня очень большая резервная копия (> 700 ГБ), которая теперь имеет неправильные разрешения (мой UID изменился во время чистой установки, длинная история), и мне нужно изменить их. Опция, отнимающая много времени, состоит в том, чтобы вручную просматривать каждую папку и изменять разрешения, но это займет много лет.
Я хочу использовать, chown
чтобы сделать себя владельцем всех моих важных данных, а затем использовать chmod 700
все эти папки, чтобы дать rwx
разрешения только мне.
Идеальным решением является некоторый метод использования find
для рекурсивного поиска папок, соответствующих регулярному выражению (мое текущее .*/[DCV].*|Pictures|M[ou].*
), а затем присвоение моего UID владельцу и установка разрешений на 700.
Важный момент, который я не могу понять:
однако, когда я пытаюсь бежать, chown Me DirectoryName
я получаю chown: DirectoryName: Operation not permitted
.
Все, что я нахожу, связано с изменением прав доступа к файлу, а не к каталогу. Может я смотрю на это не так?
Что-то говорит мне, что нет способа дать мой UID rwx
и ---
всем остальным.
Как мне этого добиться? Я использую Mac OS X 10.10.3.
Я знаю , что это форум UNIX / Linux (и я бегу Mac) , но этот вопрос намного больше об использовании оболочки, chown
, chmod
, и разрешения и любые решения , размещенные здесь , будут применимы к любой UNIX на основе операционной системы. Было бы предпочтительнее, если в результате опубликованных решений мои старые резервные копии снова появятся в Time Machine.
Спасибо всем, кто быстро ответил, но chown
почему-то не работает с каталогами. Имеет ли значение тот факт, что это .sparsebundle
образ диска на сетевом диске? Я предполагал, что это будет так же, как на любом внешнем диске.
find . -user $other_uid -print0 | sudo xargs chown $USER
должен работать.
df -hT <dirname>
должен сказать вам.
df -hT <dir>
не дает никакого вывода для а) корневой каталог сетевого жесткого диска б) образ диска внутри сети HDD с) любую папку на сетевом жестком диске. Возможно, ваше поведение реализовано по-разному на Mac и Linux?
root_squash
включенным, так что вы не сможете выполнять операции только с правами root, например,chown
с клиента.