Як змінити власника каталогу


14

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актуальний факт, що це образ диска на мережевому диску? Я припускав, що це буде так само, як і на будь-якому зовнішньому диску.


Що таке мережевий накопичувач? Якщо це NFS, є хороший шанс, що він експортується з root_squashувімкненою функцією, тому ви не зможете виконувати лише кореневі операції, наприклад, chownвід клієнта.
— Toby Speight

Це жорсткий диск всередині Apple Time Capsule. По суті це диск, захищений паролем всередині базової станції WiFi. Єдина відмінність полягає в тому, що жорсткий диск підключений до комп'ютера через Ethernet. Насправді є порт USB, але я ніколи його не використовував.
— Arc676

В іншому випадку стандарт find . -user $other_uid -print0 | sudo xargs chown $USERповинен працювати.
— Toby Speight

Яка мережна файлова система? df -hT <dirname>повинен вам сказати.
— Toby Speight

@TobySpeight неdf -hT <dir> дає виводу для а) кореневого каталогу мережевого жорсткого диска; б) образу диска всередині мережевого жорсткого диска; в) будь-якої папки на мережевому жорсткому диску. Можливо, поведінка, яку ви задумали, реалізується по-різному на Mac та Linux?
— Arc676

Відповіді:


23

Можливо, я зрозумів неправильно. Але ви можете рекурсивно використовувати chmod і chown, наприклад.

chown -R username:username /path/directory

Для рекурсивного застосування дозволу 700 можна використовувати:

chmod -r 700 /path/directory

Звичайно, вище для Linux, тож не впевнений, чи mac osx такий самий.

EDIT: Так вибачили, що забули згадати, що вам потрібно мати корінь, щоб щось заглушити, я просто припустив, що ви знали це ... моє погано.


1
Mac OS використовує той самий синтаксис. Для того, щоб виконати команду як корінь, найпростіший спосіб на Mac є префіксом з sudo, так що sudo chmod(вам буде запропоновано ввести пароль з доступом Adminstrator).
— mjturner

2

спробуйте як корінь

 find wherever -type d -name ... -exec chown Me {} \;

де

  • -type d застосовуватись лише до режисура
  • -name ... ваш регепс
  • -exec chown Me {} \; використовувати чуун на пошуку режисера.

Ви повинні бути корінним для того, щоб заморочити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.