EDITAR : El problema era que Apple usa permisos para marcar las copias de seguridad y evita que las modifique (probablemente una característica de seguridad). Al usar chmod -RN <dir>
, eliminé los datos de ACL de todas las carpetas con datos importantes y eso me permitió convertirme en el propietario y aplicar los permisos apropiados.
Pregunta original
Tengo una copia de seguridad extremadamente grande (> 700 GB) que ahora tiene los permisos incorrectos (mi UID cambió durante una instalación limpia, una larga historia) y necesito cambiarlos. La opción que consume mucho tiempo es ir manualmente a través de cada carpeta y cambiar los permisos, pero eso llevará años.
Quiero usar chown
para convertirme en el propietario de todos mis datos importantes y luego usar chmod 700
en todas esas carpetas para dar rwx
permisos solo a mí.
La solución ideal es algún método de uso find
para buscar de forma recursiva carpetas que coincidan con una expresión regular (mi actual es .*/[DCV].*|Pictures|M[ou].*
) y luego hacer que mi UID sea el propietario y establecer los permisos en 700.
Lo importante que no puedo entender: sin
embargo, cuando intento correr chown Me DirectoryName
me sale chown: DirectoryName: Operation not permitted
.
Todo lo que encuentro está relacionado con el cambio de los permisos de un archivo y no de un directorio. Tal vez estoy mirando esto de la manera incorrecta?
Algo me dice que no hay forma de dar mi UID rwx
y ---
a todos los demás.
¿Cómo puedo conseguir esto? Estoy ejecutando Mac OS X 10.10.3.
Sé que este es un foro de UNIX / Linux (y estoy corriendo Mac), pero esta pregunta es mucho más acerca del uso de la cáscara, chown
, chmod
, y los permisos y las soluciones publicadas aquí será aplicable a cualquier sistema operativo basado en UNIX. Sería preferible que las soluciones publicadas hagan que mis copias de seguridad anteriores vuelvan a aparecer en Time Machine.
Gracias a todos los que respondieron con prontitud, pero chown
simplemente no parece funcionar en los directorios por alguna razón. ¿Es .sparsebundle
relevante el hecho de que se trata de una imagen de disco en una unidad de red? Supuse que sería lo mismo que en cualquier unidad externa.
find . -user $other_uid -print0 | sudo xargs chown $USER
debería funcionar.
df -hT <dirname>
debería decirte
df -hT <dir>
proporciona salida para a) el directorio raíz del HDD de la red b) la imagen del disco dentro del HDD de la red c) ninguna carpeta en el HDD de la red. ¿Quizás el comportamiento que pretendía se implementa de manera diferente en Mac y Linux?
root_squash
habilitado, por lo que no podrá realizar operaciones solo de raíz, comochown
las del cliente.