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


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.