Cómo cambiar recursivamente compartir / permiso de una carpeta en Mac OS X

55

¿Hay herramientas o scripts de Mac OS X que me permitan cambiar las propiedades de compartir / permisos de archivos y subcarpetas en una carpeta de forma recursiva? Por ejemplo, para que todos o un usuario específico puedan leer y escribir, solo lectura o solo escritura.

puri
fuente

Respuestas:

75

Prueba el comando chmod. Por ejemplo, si tiene un nombre de directorio mydir, el siguiente comando habilitará la lectura / escritura para ese mydir de forma recursiva.

$ chmod -R +rw mydir

Para más información:

$ man chmod
Hai Vu
fuente
19
Buena respuesta, mal ejemplo. Al agregar acceso de lectura y / o escritura a las carpetas, también debe agregar el acceso de ejecución ("x", también conocido como búsqueda), de lo contrario, el r / w es un poco inútil. Por otro lado, generalmente no desea agregar ejecutar a los archivos. Al hacer un cambio recursivo, estás operando en una mezcla de archivos y carpetas. La respuesta es utilizar la función "ejecución inteligente" (mayúscula X) de chmod: chmod -R +rwX mydiragregará ejecutar solo cuando tenga sentido.
Gordon Davisson el
Gordon: Gran observación. Sin embargo, un directorio normalmente tiene activada la x, a menos que el usuario haga algo funky para desactivarla.
Hai Vu el
1
Depende de los permisos iniciales. Si echa un vistazo a una carpeta de inicio de Mac de configuración predeterminada, por ejemplo, verá que para la mayoría de las carpetas (Escritorio, Documentos, Biblioteca, etc.) el propietario tiene acceso completo (rwx) a todo, pero al grupo y a otros no tiene acceso (no leer, escribir o ejecutar). Si agrega lectura o escritura para un grupo u otros a una de estas carpetas, debe agregar también ejecutar.
Gordon Davisson el
1
No funciona para mí, solo se aplica a la carpeta principal, no a las subcarpetas.
delphirules
29

Seleccione la carpeta raíz con la que desea trabajar y abra el Inspector (CMD-i o haga clic derecho y "Mostrar información"). El panel inferior es donde puede administrar los permisos.

Agregue y elimine permisos a la lista allí. Para aplicar los mismos permisos de forma recursiva a cada subcarpeta, haga clic en el engranaje y seleccione "Aplicar a elementos adjuntos ..."

Nota: Me di cuenta de que "Aplicar a elementos cerrados ..." aparece atenuado cuando el pequeño ícono de candado en la parte inferior derecha de la ventana está bloqueado. Si este es el caso, simplemente haga clic en el candado para desbloquearlo ingresando sus credenciales y luego intente nuevamente con "Aplicar a elementos adjuntos ..."

Gregsabo
fuente
Aunque generalmente es útil, no logrará lo que se pide. Reemplaza los permisos en subdirectorios, en lugar de, por ejemplo, agregar un usuario a todos ellos, sin importar cuáles fueran los permisos anteriores.
Daniel Beck
@DanielBeck te equivocas, aplica todos los elementos de permisos, chmod y chown, esta es la forma correcta de 'mac' para hacerlo
Rob
Acabo de probar esta respuesta (en una carpeta de prueba) y no funcionó correctamente: dado que una carpeta es típicamente 'ejecutable', ese bit también se configuró en todos los archivos adjuntos, lo cual es incorrecto. Solo quería cambiar de usuario y grupo.
fluye el
12

Desea usar los comandos chmody chown.

Si no recuerdo mal, puede cambiar los permisos de esta manera:

chmod -R +a "joshhunt allow read" /some/file/or/folder/
chmod -R +a "Guest deny read" /some/other/folder/
chmod -R +a "Guest deny write" /some/other/folder/

Para obtener más detalles sobre estos comandos, busque sus respectivas páginas de manual en Terminal:

man chmod
man chown
Josh Hunt
fuente
1
La mejor manera cuando se trata de especificar permisos para un usuario en particular
megalucio