Permisos para nuevos archivos en el directorio compartido


31

Acabamos de recibir un nuevo iMac que está utilizando el /Users/Shareddirectorio para almacenar recursos multimedia (imágenes, audio, video) que queremos que estén accesibles para todos los usuarios de la máquina. Después de copiar todos los archivos inicialmente, establecemos los permisos deseados y luego aplicamos los mismos permisos a todos los contenidos del directorio de forma recursiva. Esto funciona bien, excepto que cada vez que alguien crea un nuevo archivo o directorio, no tiene los mismos permisos y tenemos que repetir todo el proceso de permisos antes de que todos puedan acceder a él.

¿Hay alguna manera de establecer permisos para todos los archivos / directorios nuevos creados dentro de ese directorio?


Los atributos extendidos le permitirán establecer algunos permisos de acceso muy liberales y decirles que se propaguen dentro del directorio y que continúen haciéndolo en nuevas creaciones, pero por mi vida no puedo encontrar instrucciones. Solo puedo hacerlo en los servidores OSX usando las Herramientas de administración del servidor, lo que supongo que no es una opción viable aquí.
Jason Salaz

No Solo tenemos acceso a los discos del sistema operativo que vienen con el iMac.
Daniel Standage

1
Si está contento de trabajar en la Terminal, esta puede ser la respuesta que está buscando.
boehj

Respuestas:


32

No puede hacer esto con los permisos tradicionales de estilo POSIX, pero puede hacerlo con entradas de control de acceso heredables. Para permitir el acceso de lectura + escritura para todo el grupo "personal" a todo en / Users / Shared / reallyshared, usaría:

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

La file_inherit,directory_inheritparte significa que esta entrada de control de acceso se agregará automáticamente a los nuevos archivos y carpetas creados dentro de esta carpeta, pero no se aplica automáticamente a los elementos que ya están allí (es por eso que agregué la -Rbandera chmod, eso se aplica a todo lo que está actualmente dentro la carpeta), y no se aplicará a los elementos creados en otro lugar y luego se moverá a esta carpeta (no sé una forma de evitar esto, lo siento).


Realmente me encantaría encontrar una manera de que esto funcione incluso para archivos que se mueven a un directorio compartido. Es frustrante tener archivos en un directorio compartido que realmente no se comparten completamente.
Radven

Esto todavía no permite escribir en una carpeta si los permisos posix no lo permiten. Es decir, creo esta carpeta en Finder: el signo drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folder+ al final significa que se ha aplicado la ACL extendida con el comando anterior, pero Windows aún dice que se ha denegado el permiso si intento escribir un archivo en esta carpeta. Solo chmod g+w untitled\ folderme deja escribirle. Podría ser porque instalé Samba para solucionar la horrible nueva implementación de SMB de OSX.
Chris Dragon

@ChrisDragon: eso suena como que la samba no respeta adecuadamente la ACL. Encontré una sugerencia aquí para agregar nt acl support = noa la [Global]sección de /etc/smb.conf, pero no estoy seguro de que siga siendo relevante en las versiones actuales de samba.
Gordon Davisson

4

Otro enfoque es usar Terminal (también conocido como shell o símbolo del sistema) para crear / editar (debe realizarse como superusuario, ver sudo) el archivo:
/etc/launchd-user.conf
agregando la línea:
umask 000
guardar y reiniciar. Los nuevos archivos / carpetas (incluidos los archivos modificados por guardar como) permitirán a todos leer / escribir.

Esto funciona cambiando los permisos de creación de archivos predeterminados para los programas, mientras que el enfoque ACL funciona en términos de reglas de acceso vinculadas a archivos y carpetas particulares.

Sin este ajuste, los archivos se crean permitiendo al usuario: lectura-escritura, grupo y otros: solo lectura.

Si está compartiendo entre varias computadoras, debe hacer esto para todas las computadoras que usarán el recurso compartido.

Si tiene archivos y carpetas existentes en el área compartida, debe hacer que todos puedan leerse y escribirse para que todos los usuarios utilicen:
sudo chmod -R og+w <shared-folder-name>

El comando se lee en inglés como modo de cambio, recursivo a través de todas las subcarpetas y archivos, otros permisos de grupo agregan acceso de escritura, comenzando en la carpeta con.

Este enfoque se menciona en foros para trabajar con al menos 10.6 y todavía funciona en 10.7.

Otros factores aún afectan el acceso al contenido. Por ejemplo, los permisos establecidos en el panel de control Compartir, los permisos de carpeta de inicio / ACL y, cuando se usa Terminal, cualquier umask vigente para el shell.

Busque permisos de archivos umask y Posixpara detalles sobre estos conceptos de Unix. En las redacciones, el directorio de palabras es el lenguaje Unix sinónimo de carpeta. También encontrará los términos UID y GID: ID de usuarios y grupos, que definen la propiedad de Posix de los programas (procesos) en ejecución. Tenga en cuenta que los UID y GID son números que pueden ser iguales o diferentes para un nombre de usuario dado en diferentes computadoras. Estos números se asignan a los nombres en el orden en que las cuentas se crean en una computadora determinada, generalmente comenzando con la ID 501. Las redes domésticas carecen de un mecanismo para armonizar estas asignaciones en las computadoras. Por lo tanto, en redes compartidas, puede parecer que un archivo pertenece a diferentes usuarios porque la identificación del usuario al enlace del nombre de usuario se determina desde la perspectiva de que la computadora está accediendo al archivo. Por lo tanto, los recursos compartidos realmente siempre permiten a todos acceder a los archivos a varios grados de todos. En otras palabras, el permiso Posix "otro" es un límite indefinido en el acceso que va desde permitir un grado de acceso bastante predecible pero aparentemente incierto dependiendo de las ID de usuario asignadas en diferentes computadoras. Esto lleva a variaciones aparentemente absurdas en las experiencias, donde en algunas redes, por ejemplo, una configuración con solo una cuenta de usuario creada en cada Mac, podrá compartir sin ningún ajuste de permisos porque todas las cuentas tendrán el mismo UID (501, no no importa cómo se llamen las cuentas), mientras que otra red que use varias cuentas de usuario por Mac verá los problemas de inmediato. Por lo tanto, algunos grupos nunca lucharán con esto, mientras que otros pueden ver problemas que se desarrollan con el tiempo, o problemas que aparecen / desaparecen espontáneamente,

Es un misterio por qué Apple ha dejado un defecto de usabilidad tan intenso en la configuración de una capacidad de intercambio de archivos tan fácil de habilitar.

En discos externos, este problema se soluciona con la opción "Ignorar permisos en este volumen". Puede haber una característica similar para compartir archivos de Apple, pero ¿dónde está?

Si ejecuta su propia configuración del servicio Samba, existen otros mecanismos para manejar estos problemas, pero Samba no es nada fácil de usar.


/etc/launchd-user.conf está en desuso a favor del uso launchctl. Ver support.apple.com/en-us/HT201684
Jess Bowers
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.