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
від клієнта.