Cambie "ignorar la propiedad en este volumen" desde la línea de comandos para el volumen de Mac OS X

17

(Esta pregunta es un spin-off de otra pregunta que hice en este sitio).

Las imágenes nuevas siempre ignoran al propietario / grupo

Al crear una nueva imagen de disco desde la Utilidad de Discos, se monta automáticamente. Si luego selecciona el volumen en Finder y presiona Cmd-I (para la ventana de información), verá esto en la parte inferior de la ventana:

ingrese la descripción de la imagen aquí

Esto significa que los propietarios y grupos de archivos serán ignorados en este volumen. Esto es muy conveniente para unidades externas que se comparten entre máquinas con diferentes cuentas de usuario en ellas. Para un volumen de copia de seguridad, no es una buena idea, ya que le gustaría conservar la información del propietario / grupo para los archivos de los que se realizó la copia de seguridad.

Cambiar esto desde Finder

Para cambiar esto, simplemente desmarque la casilla de verificación y se recordará después de expulsar y volver a montar la imagen.

Cambiar desde la línea de comando (Terminal)

En lugar de montar la imagen desde Finder, también puede montarla desde la línea de comando usando este comando (suponiendo que se llame a la imagen testimage.sparsebundle):

$ hdiutil attach testimage.sparsebundle/

Aún así, los propietarios son ignorados en el volumen. Agregar la -owners onopción es (casi) equivalente a desmarcar la casilla de verificación en la imagen de arriba:

$ hdiutil attach -owners on testimage.sparsebundle/

Sin embargo, después de desmontar y volver a montar el volumen desde Finder (o desde la línea de comando sin la -owners onopción), la casilla de verificación se vuelve a marcar.

¿Alguien sabe cómo hacer que este cambio sea persistente mediante una llamada de línea de comandos?

mgd
fuente

Respuestas:

17

Usas diskutilpara eso. Ver diskutil(1)bajo enableOwnership y disableOwnership . Tenga en cuenta que esta configuración es específica para la instalación de un sistema operativo en particular, ya que está almacenada en /var/db/volinfo.database. Es decir, si copia la imagen del disco en una computadora nueva, la configuración no persistirá, pero persistirá en reinicios, montajes, montajes, etc., todo en una sola computadora.

Use diskutilpara encontrar el identificador, luego cambie la opción:

$ diskutil list
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            Disk Image             *41.0 MB    disk2
$ sudo diskutil enableOwnership disk2
File system user/group ownership enabled
bahamat
fuente
2
Esto no es completamente exacto: diskutil le dirá que necesita especificar un disco con un punto de montaje, lo que significa que debe apuntarlo al segmento para el volumen que desea cambiar de nombre. La sintaxis correcta (suponiendo que el segmento 2 del disco 2) sería: sudo diskutil enableOwnership / dev / disk2s2 Si ejecuta: sudo diskutil list, podrá ver toda la información del disco y encontrar el disco y el segmento correctos para su volumen .
He descubierto que debo volver a invocar diskutil enableOwnershipentre montajes, o de lo contrario no puedo ejecutar binarios y scripts en el volumen montado.
psoft
5

Descubrí que ambas respuestas funcionaban para permitir la propiedad de una manera que se recuerda:

sudo diskutil enableOwnership <diskname>s<slicenum>

Y:

vsdbutil -a /Volume/<volname>

Sin embargo, lo contrario no es cierto, al menos en OS X 10.11.3:

sudo diskutil disableOwnership <diskname>s<slicenum>

Y:

vsdbutil -d /Volume/<volname>

Ambos cambian temporalmente el estado, pero la propiedad se vuelve a habilitar la próxima vez que monte el volumen. Esto parece ser un error en el sistema operativo. Afortunadamente encontré una solución que funciona. Expulse todos los discos externos para los que desea deshabilitar la propiedad. Luego elimine la base de datos apropiada usando:

sudo rm /var/db/volinfo.database
Russell Owen
fuente
puede dar un ejemplo, no obtuve lo que debería escribir en lugar de s <slicenum>
Dom
2

Use vsdbutilpara configurarlo para una ruta en lugar de una unidad física:

vsdbutil -a /Volume/Diskname

Aunque la manpágina sugiere que está en desuso, la manpágina diskutiltodavía se refiere a ella y el mecanismo parece estar basado en el Volumen, UUIDsno en el disco físico / ID de corte.

Chris F Carroll
fuente