Jak zmienić właściciela katalogu

14

EDYCJA : Problem polegał na tym, że Apple używa uprawnień do oznaczania kopii zapasowych i uniemożliwia ich modyfikację (prawdopodobnie funkcję bezpieczeństwa). Za pomocą chmod -RN <dir>usunąłem dane ACL ze wszystkich folderów z ważnymi danymi, co pozwoliło mi stać się właścicielem i zastosować odpowiednie uprawnienia.

Oryginalne pytanie
Mam bardzo dużą kopię zapasową (> 700 GB), która ma teraz nieprawidłowe uprawnienia (mój identyfikator UID zmienił się podczas czystej instalacji, długa historia) i muszę je zmienić. Czasochłonną opcją jest ręczne przeglądanie każdego folderu i zmiana uprawnień, ale zajmie to wieki.

Chcę użyć, chownaby stać się właścicielem wszystkich moich ważnych danych, a następnie użyć chmod 700tych wszystkich folderów, aby udzielić rwxuprawnień tylko mnie.

Idealnym rozwiązaniem jest metoda polegająca findna rekursywnym wyszukiwaniu folderów pasujących do wyrażenia regularnego (moim obecnym jest .*/[DCV].*|Pictures|M[ou].*), a następnie uczynienie mojego identyfikatora UID właścicielem i ustawienie uprawnień na 700.

Ważny element, którego nie mogę pojąć:
kiedy próbuję uciec chown Me DirectoryName, dostaję chown: DirectoryName: Operation not permitted.

Wszystko, co znajduję, wiąże się ze zmianą uprawnień do pliku, a nie katalogu. Może patrzę na to w niewłaściwy sposób?
Coś mi mówi, że nie ma sposobu na podanie mojego identyfikatora UID rwxi ---wszystkim innym.

Jak mogę to osiągnąć? Używam Mac OS X 10.10.3.

Wiem, że jest to forum UNIX / Linux (i biegnę Mac), ale to pytanie jest o wiele więcej na temat korzystania z powłoki, chown, chmod, i uprawnienia oraz wszelkie rozwiązania zamieszczonych tu będą mieć zastosowanie do dowolnego systemu operacyjnego UNIX. Byłoby lepiej, gdyby opublikowane rozwiązania sprawiły, że moje starsze kopie zapasowe pojawią się ponownie w Time Machine.

Dziękujemy wszystkim, którzy szybko odpowiedzieli, ale chownz jakiegoś powodu po prostu nie działają na katalogach. Czy fakt, że jest to .sparsebundleobraz dysku na dysku sieciowym, jest istotny? Zakładałem, że będzie tak samo jak na każdym dysku zewnętrznym.

Arc676
źródło
Jakiego rodzaju dysk sieciowy? Jeśli jest to system plików NFS, istnieje duża szansa, że ​​zostanie wyeksportowany z root_squashwłączoną opcją, więc nie będziesz w stanie wykonywać operacji związanych tylko z rootem, na przykład chownz poziomu klienta.
Toby Speight,
To dysk twardy w kapsule czasu Apple. Zasadniczo jest to dysk chroniony hasłem w stacji bazowej WiFi. Jedyna różnica polega na tym, że dysk twardy jest podłączony do komputera za pośrednictwem sieci Ethernet. W rzeczywistości jest port USB, ale nigdy go nie użyłem.
Arc676
W przeciwnym razie standard find . -user $other_uid -print0 | sudo xargs chown $USERpowinien działać.
Toby Speight,
Jaki system plików sieciowych? df -hT <dirname>powinienem ci powiedzieć.
Toby Speight,
@TobySpeight niedf -hT <dir> daje danych wyjściowych dla a) katalogu głównego sieciowego dysku twardego b) obrazu dysku w sieciowym dysku twardym c) dowolnego folderu na sieciowym dysku twardym. Być może zamierzone zachowanie zostało zaimplementowane inaczej na komputerach Mac i Linux?
Arc676

Odpowiedzi:

23

Być może źle zrozumiałem. Ale możesz rekurencyjnie używać chmod i chown np.

chown -R username:username /path/directory

Aby rekursywnie zastosować uprawnienie 700, możesz użyć:

chmod -r 700 /path/directory

Oczywiście powyższe dotyczy Linuksa, więc nie jestem pewien, czy Mac OSX jest taki sam.

EDYCJA: Przepraszam, zapomniałem wspomnieć, że musisz być rootem, aby coś zmienić, po prostu założyłem, że wiesz o tym ... mój zły.

dakka
źródło
1
Mac OS używa tej samej składni. Aby wykonać polecenie jako root, najłatwiejszym sposobem na komputerze Mac jest jego prefiks sudo, więc sudo chmod(zostaniesz poproszony o hasło z dostępem administratora).
mjturner
2

spróbuj jako root

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

gdzie

  • -type d dotyczy tylko reż
  • -name ... twoje wyrażenie regularne
  • -exec chown Me {} \; użyj chown na find reż.

musisz być rootem, aby chown.

Archemar
źródło