EDIT : il problema era che Apple utilizza le autorizzazioni per contrassegnare i backup e impedisce di modificarli (probabilmente una funzione di sicurezza). Usando chmod -RN <dir>
ho rimosso i dati ACL da tutte le cartelle con dati importanti e ciò mi ha permesso di diventare il proprietario e applicare le autorizzazioni appropriate.
Domanda originale
Ho un backup estremamente grande (> 700 GB) che ora ha le autorizzazioni sbagliate (il mio UID è cambiato durante un'installazione pulita, una lunga storia) e ho bisogno di cambiarle. L'opzione che richiede tempo è di passare manualmente attraverso ogni cartella e modificare le autorizzazioni, ma ciò richiederà secoli.
Voglio usare chown
per diventare il proprietario di tutti i miei dati importanti e quindi utilizzare chmod 700
su tutte quelle cartelle per dare rwx
autorizzazioni solo a me.
La soluzione ideale è un metodo di utilizzo find
per cercare ricorsivamente cartelle corrispondenti a una regex (la mia attuale è .*/[DCV].*|Pictures|M[ou].*
) e quindi rendere il mio UID il proprietario e impostare le autorizzazioni su 700.
La parte importante che non riesco a cogliere:
tuttavia, quando provo a correre chown Me DirectoryName
ottengo chown: DirectoryName: Operation not permitted
.
Tutto ciò che trovo è legato alla modifica delle autorizzazioni di un file e non di una directory. Forse sto guardando questo nel modo sbagliato?
Qualcosa mi dice che non esiste un modo per dare il mio UID rwx
e ---
a tutti gli altri.
Come posso raggiungere questo obiettivo? Sto eseguendo Mac OS X 10.10.3.
So che questo è un forum UNIX / Linux (e sto correndo Mac), ma questa domanda è molto di più su come utilizzare la shell, chown
, chmod
, e le autorizzazioni e le eventuali soluzioni pubblicati qui sarà applicabile a qualsiasi sistema operativo basato su UNIX. Sarebbe preferibile se le soluzioni inviate riapparissero i miei backup più vecchi in Time Machine.
Grazie a tutti coloro che hanno prontamente risposto, ma chown
per qualche motivo non sembrano lavorare sulle directory. È .sparsebundle
rilevante il fatto che questa sia un'immagine disco su un'unità di rete? Ho pensato che sarebbe stato lo stesso di qualsiasi unità esterna.
find . -user $other_uid -print0 | sudo xargs chown $USER
dovrebbe funzionare.
df -hT <dirname>
dovrei dirtelo.
df -hT <dir>
fornisce alcun output per a) la directory principale dell'HDD di rete b) l'immagine del disco all'interno dell'HDD di rete c) qualsiasi cartella sull'HDD di rete. Forse il comportamento che intendevi è implementato diversamente su Mac e su Linux?
root_squash
abilitato, quindi non sarai in grado di eseguire operazioni solo root comechown
dal client.