EDIT : Проблема полягала в тому, що 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 на основі операційної системи. Було б краще, якщо розміщені рішення змусять мої старіші резервні копії з’являтися знову в машині часу.
Дякуємо всім, хто негайно відповів, але chownпросто не здається, що з деякими причинами працює над каталогами. Чи .sparsebundleактуальний факт, що це образ диска на мережевому диску? Я припускав, що це буде так само, як і на будь-якому зовнішньому диску.
find . -user $other_uid -print0 | sudo xargs chown $USERповинен працювати.
df -hT <dirname>повинен вам сказати.
df -hT <dir> дає виводу для а) кореневого каталогу мережевого жорсткого диска; б) образу диска всередині мережевого жорсткого диска; в) будь-якої папки на мережевому жорсткому диску. Можливо, поведінка, яку ви задумали, реалізується по-різному на Mac та Linux?
root_squashувімкненою функцією, тому ви не зможете виконувати лише кореневі операції, наприклад,chownвід клієнта.