Sí, Mac tiene muchas mejoras con respecto a Unix en el área de archivos. Ignorando todo el asunto de resource fork que ya no se usa mucho, hay:
- los permisos estándar de Unix
ugo rwx y así sucesivamente. Se aplican las herramientas normales de Unix.
- ACL‘s, visibles con
ls -le y modificables con chmod [-a | +a | =a].
- banderas de archivo visibles con
ls -lO (mayúsculas, no cero) y modificables con chflags.
- atributos extendidos , visibles con
ls -l@ (sólo claves de atributos) y visibles y modificables con xattr. (Use xattr -h para la ayuda si man xattr no le da nada).
- A partir de OS X 10.11 “El Capitan”, * System Integrity Protection ** (SIP) protege aún más algunos archivos de los cambios de los procesos ordinarios, incluso cuando se usa
sudo para ejecutar como root. Los archivos protegidos por SIP serán listados por ls -lO como si tuvieran la bandera restricted y/o serán listados por ls -l@ como si tuvieran el atributo com.apple.rootless.
Se le pueden negar operaciones en un archivo debido a los permisos Unix, ACLs, banderas 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á activada, sudo chflags norestricted y sudo xattr -d com.apple.rootless también devolverán un error de “Operación no permitida”. Para borrar la bandera y/o el atributo necesita arrancar en Recuperación de macOS y ejecutar los comandos desde el Terminal (puede que tenga que usar primero la Utilidad de Discos para desbloquear y montar su unidad de arranque, entonces recuerde que sus archivos estarán bajo /Volumes/Macintosh HD o cualquiera que sea el nombre de su unidad de arranque) o deshabilitar SIP por completo y luego reiniciar y los comandos deberían entonces funcionar. Tenga en cuenta, sin embargo, que las futuras actualizaciones del sistema operativo probablemente restaurarán la bandera restricted y el atributo com.apple.rootless a cualquier archivo del que lo haya eliminado.
_ No se recomienda deshabilitar el SIP _ ya que elimina gran parte de la protección contra el malware y los daños accidentales, además de que no es necesario cuando se puede eliminar simplemente la protección por archivo. Si desactiva el SIP, vuelva a activarlo cuando termine de hacer los cambios.
Tenga en cuenta que si ls -lO muestra que la bandera schg está activada, tiene que entrar en el modo de usuario único para desactivarla. No voy a entrar en eso aquí, ya que hay preguntas más importantes acerca de por qué el archivo tiene esa bandera establecida y por qué estás tratando de jugar con ella y cuáles serán las consecuencias.