Saltar al contenido

¿Por qué chown informa “Operación no permitida” en OS X?

Solución:

Sí, Mac tiene muchas mejoras a Unix en el área de archivos. Ignorando el todo bifurcación de recursos cosa que ya no se usa mucho, hay:

  • los permisos estándar de Unix ugo rwx etcétera. Se aplican las herramientas normales de Unix.
  • ACL‘s, visible con ls -le y cambiable con chmod [ -a | +a | =a ].
  • banderas de archivo visible con ls -lO (Capital oh, no cero) y se puede cambiar con chflags.
  • atributos extendidos, visible con ls [email protected] (solo claves de atributo) y visible y modificable con xattr. (Usar xattr -h por ayuda si man xattr no te da nada.)
  • A partir de OS X 10.11 “El Capitan”, Protección de la integridad del sistema (SIP) protege aún más algunos archivos de los cambios de los procesos ordinarios, incluso cuando se utiliza sudo correr como root. Los archivos protegidos por SIP se enumerarán por ls -lO como teniendo el restricted bandera y / o ser incluido por ls [email protected] como teniendo el com.apple.rootless atributo.

Se le pueden negar operaciones en un archivo debido a permisos de Unix, ACL, marcas de archivo o SIP. Para desbloquear completamente un archivo:

sudo chmod -N file        # Remove ACLs from file
sudo chmod ugo+rw file    # Give everyone read-write permission to file
sudo chflags nouchg file  # Clear the user immutable flag from file
sudo chflags norestricted file  # Remove the SIP protection from file
sudo xattr -d com.apple.rootless file # Remove SIP protection from file

Si la protección de integridad del sistema (SIP) está habilitada, sudo chflags norestricted y sudo xattr -d com.apple.rootless también devolverá un error de “Operación no permitida”. Para borrar la bandera y / o atributo, debe iniciar en MacOS Recovery y ejecutar los comandos desde la Terminal (es posible que primero tenga que usar la Utilidad de Discos para desbloquear y montar su unidad de arranque, luego recuerde que sus archivos estarán debajo /Volumes/Macintosh HD o como se llame su unidad de arranque) o deshabilite SIP por completo y luego reinicie y los comandos deberían funcionar. Sin embargo, tenga en cuenta que es probable que las futuras actualizaciones del sistema restricted bandera y com.apple.rootless atributo a los archivos de los que lo eliminó.

No se recomienda deshabilitar SIP ya que elimina gran parte de la protección contra malware y daños accidentales, además de que no es necesario cuando simplemente puede eliminar la protección por archivo. Si deshabilita SIP, vuelva a habilitarlo cuando haya terminado de realizar cambios.

Tenga en cuenta que si ls -lO muestra el schg La bandera está configurada, debe ingresar al modo de usuario único para desarmarla. No voy a entrar en eso aquí, ya que hay preguntas más importantes sobre por qué el archivo tiene ese indicador establecido y por qué está tratando de meterse con él y cuáles serán las consecuencias.

Yo tuve el mismo problema. Resulta que el sistema operativo marcó los archivos infractores como “Bloqueados”. Encontré esta solución y resolvió los problemas en segundos:

http://explanatorygap.net/2005/07/10/unlocking-files-recursively-from-the-command-line/

Parece que el rm El comando ha cambiado en Tiger de modo que si usa rm -Rf con privilegios elevados, desbloqueará automáticamente los archivos.

En OS X antes de Tiger: find /Volumes/Transit -flags +uchg -print0 | xargs -0 chflags nouchg

En OS X después de Tiger: sudo rm -Rf foldername/

Además, incluso después de OS X 10.4, puede haber marcas de metadatos de archivos como uchg y uappnd, que impiden cualquier modificación de los permisos o la propiedad del archivo. chflags puede quitar las banderas. Algunos de los atributos / metadatos del archivo y cómo los manejan las diferentes herramientas de copia están aquí.

Tuve el mismo problema con Crashplan.app.

Todas las soluciones enumeradas aquí no me ayudarían, pero esta funcionó: http://forums.macrumors.com/showthread.php?t=1546163

Tienes que cambiar las banderas inmutables del sistema y del usuario:

Haga esto para ver qué banderas están activas en su archivo / carpeta:

ls -lhdO MyFile

La respuesta podría verse así:

drwxrwxr-x 3 root admin schg,uchg 102B Apr 8 2013 MyFile

schg,uchg son esas banderas inmutables. Uno para el sistema y otro para el usuario. Para eliminarlos, haga lo siguiente:

chflags noschg CrashPlan.app # this removes system immutable flag
chflags nouchg CrashPlan.app # this removes the user immutable flags

Entonces, al menos para mí, ¡el archivo está desbloqueado y puedes eliminarlo!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *