MacOS utiliza las banderas para limitar la forma en que se puede editar un archivo. Se definen de manera diferente por permisos y se ejecutan en una estructura paralela con comandos como chown
y chmod
. usarás chflags
para cambiar las banderas también ls
para ver las banderas. Unix ejecuta un sistema similar, pero con una mayor cantidad de opciones llamadas «atributos» en lugar de banderas.
Mostrar el conjunto de banderas en macOS
En Terminal, puede usar un archivo ls
bandera para mostrar todas las banderas existentes.
ls -lO ~/Librarydrwx------@ 88 alexander staff hidden 2992 Jan 25 14:01 Library
Si no hay ajustes para un archivo o carpeta, se mostrará un guión.
ls -lO ~/Library/Caches drwx------+ 234 alexander staff - 7956 Jan 25 13:03 Caches
Las banderas definidas se pueden eliminar usando su reverso, como se describe a continuación.
Establecer y eliminar banderas en macOS
Las banderas aparecen con mayor frecuencia como un problema. Debido a que establecen permisos adicionales, pueden pasarse por alto fácilmente. ¿Puede encontrar un archivo que no se pueda eliminar, independientemente del tamaño de sus permisos de usuario? Es posible que deba quitar una o dos banderas.
Los indicadores que se pueden configurar en macOS se enumeran a continuación. Aquí está la lista completa de opciones disponibles, junto con una explicación de su funcionalidad. La mayoría de los indicadores solo pueden ser establecidos por el propietario o superusuario del archivo; sappnd
y schg
solo puede ser configurado por el superusuario, ya que estos son indicadores de nivel de sistema. Solo se puede establecer la bandera oculta sin aumentar los privilegios.
Establecer métricas en macOS
Cuando establezca una bandera en macOS, use el comando a continuación. Indicador recursivo -R
está disponible para operaciones a nivel de directorio:
sudo chflags -R [flag] /usr/bin/local sudo chflags [flag] /usr/bin/local/mnt.sh chflags -R hidden ~/Desktop
establecerá la bandera correspondiente. Por ejemplo, lo siguiente establece la bandera de nodump:
sudo chflags nodump /usr/bin/local/tty.sh
Solo se puede establecer o suprimir una señal para cada comando chflags.
- opaco configura la carpeta para que aparezca opaca cuando se ve a través de un montaje de unión, una forma antigua de mostrar varios directorios a la vez.
-
sacudir la cabeza evita que el archivo o carpeta se deseche mientras se usa el archivo
dump
comando para hacer una copia de seguridad del sistema. - sappnd, sappend establece la bandera solo para agregar el sistema, lo que permite agregar el archivo, pero no modificarlo ni eliminarlo. Para suprimir esta señal, debe ingresar al modo de usuario único.
- schg, swap, simmutable establece la etiqueta inmutable del sistema, que bloquea todas las modificaciones de archivos por parte de todos los usuarios de cualquier nivel de privilegio. La eliminación de esta bandera requiere la introducción del modo de usuario único.
-
uappnd, uappend establece la bandera solo para agregar el usuario. Esto puede ser establecido por el propietario del archivo y puede ser anulado por el propietario sin privilegios de escalada. Porque bloquea el archivo con
sappnd
o entoncesschg
con menor seguridad, se usa con mucha más frecuencia. -
uchg, uchange, inmutable establece la bandera inmutable del usuario, que tiene la misma relación que la bandera inmutable del sistema que
uappnd
la bandera debesappnd
. - oculto establecer la bandera oculta. Esto oculta el elemento en la GUI del Finder y los comandos ls.
Eliminar banderas en macOS
Para eliminar un indicador en particular, establezca su opuesto. En la mayoría de los casos, esto significa evitar que su pedido sea «no». En el caso de un nodump, use el indicador de volcado para borrarlo de la siguiente manera:
sudo chflags dump /usr/bin/local/oty.sh
Varios términos estándar se pueden invertir con el prefijo «no», de la siguiente manera:
sudo chflags nosappnd /usr/bin/local/oty.sh
Al igual que con chmod, hay disponible una bandera recursiva:
chflags -R nohidden ~/Desktop
Una vez que se eliminan las banderas, podrá cambiar la propiedad y los permisos del archivo como se esperaba.
Usar atributos en Unix
Unix ejecuta un sistema similar en el backend, pero se administra con diferentes comandos. En las plataformas Linux más populares, tendrá acceso en su lugar chattr
y lsattr
. Estos indicadores se utilizan para modificar y mostrar «atributos», que pasan indicadores a la mayoría de las demás instalaciones de Unix.
Los atributos se pueden ver con lsattr
:
lsattr /path/to/file.txt
La modificación del atributo se basa en un código de inicialización y se enumera en página de manual de chattr:
‘Letters’ acdeijstuADST ‘selecciona nuevos atributos para los archivos: agregar solo (a), tableta (c), sin volcado (d), formato (s) de extensión, inmutable (s), registro de datos (j), eliminación segura (s) , sin cola
El comando tiene este aspecto:
chattr +s /file/name.txtEsto establece el atributo de eliminación segura para la ruta especificada.
conclusión
Las banderas son particularmente útiles para restringir quién puede editar un archivo. Al bloquear archivos, puede evitar cambios accidentales o cambios en el sistema de archivos. Sin escalar a la raíz o al propietario del archivo, estos privilegios no se pueden cambiar, por lo que son moderadamente seguros.