РЕДАКТИРОВАТЬ : проблема заключалась в том, что 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
образ диска на сетевом диске? Я предполагал, что это будет так же, как на любом внешнем диске.
источник
root_squash
включенным, так что вы не сможете выполнять операции только с правами root, например,chown
с клиента.find . -user $other_uid -print0 | sudo xargs chown $USER
должен работать.df -hT <dirname>
должен сказать вам.df -hT <dir>
не дает никакого вывода для а) корневой каталог сетевого жесткого диска б) образ диска внутри сети HDD с) любую папку на сетевом жестком диске. Возможно, ваше поведение реализовано по-разному на Mac и Linux?Ответы:
Возможно, я неправильно понял. Но вы можете рекурсивно использовать chmod и chown, например.
Для рекурсивного применения разрешения 700 вы можете использовать:
Конечно, вышесказанное относится к Linux, поэтому не уверен, что Mac OSX такой же.
РЕДАКТИРОВАТЬ: Да, извините, забыл упомянуть, что вы должны быть пользователем root, чтобы что-то набивать, я просто предположил, что вы знали это ... мой плохой.
источник
sudo
, поэтомуsudo chmod
(вам будет предложено ввести пароль с правами администратора).попробуй как root
где
-type d
применяется только к директории-name ...
ваше регулярное выражение-exec chown Me {} \;
используйте chown on find dir.ты должен быть root, чтобы chown.
источник