Windows no utiliza nada tan primitivo como un montón de números para representar los permisos. En Lunix, chmod 777 establece permisos de lectura, escritura y ejecución para todos. Los permisos de Unix funcionan de forma bastante sencilla, pero son una mierda cavernícola para los entornos complejos modernos. Windows utiliza permisos reales y usuarios reales con una Lista de Control de Acceso adjunta a cualquier objeto (no sólo archivos). Una Lista de Control de Acceso permite permisos más granulares y extensos que una simple máscara de bits de banderas.
Primero, haga clic con el botón derecho en el archivo con el que pretende trabajar. En la captura de pantalla de abajo, sigue las flechas púrpuras para añadir la cuenta «Todos» al archivo (he utilizado Inicio de sesión anónimo como ejemplo, escribe «todos» en el campo, luego pulsa comprobar nombres). Una vez añadida sigue mi flecha verde. Haga clic en Everyone, luego haga clic en «full control».
¿Nota en la captura de pantalla que algunos de los nombres tienen el prefijo Kraken? Esos son grupos locales. Pertenecen a mi máquina. Kraken es el nombre de mi máquina, y es la autoridad de autenticación. Un ordenador en un dominio de red tiene tanto grupos de dominio como usuarios de dominio. La mayoría de los ordenadores en un dominio no tendrán usuarios locales, aparte de las cuentas de servicio. En el caso de un dominio los nombres se verán como «DominioNUsuario». El dominio, antes de la barra, es la autoridad de autenticación. El uso de grupos y cuentas de dominio le permite proporcionar acceso granular a cuentas de red individuales, incluso si su equipo nunca ha interactuado con ese usuario.
¡Los derechos de denegación tienen prioridad sobre los derechos de permiso! Así que si das derechos de «permitir» para el control total a «Todos» pero «DominioKaren» tiene derechos de denegación, Karen será denegada. No deniegue a Everyone pensando que es una cuenta anónima. No importa cuántos derechos de «permitir» tenga para usuarios específicos, si deniega a Todo el mundo ha puesto efectivamente ese archivo en un vacío.
La ACL en este ejemplo se almacena directamente en el sistema de archivos. Si comparte un archivo a través de la red, el recurso compartido de red tiene una ACL única, separada e independiente. Puede denegar a un usuario a través de la red, pero permitirle el acceso si está conectado localmente. La ACL local tiene prioridad sobre la ACL de red. Si su ACL local niega el acceso a «Usuarios del dominio» pero permite el acceso a «Bill local», Bill podrá acceder al archivo ya que su cuenta es local, incluso a través de la red.
Las ACLs también se heredan. Un archivo en un directorio, inicialmente, tiene la misma ACL que el directorio – hasta que lo cambie. En la mayoría de los casos de navegación por archivos mediante una aplicación, antes de poder acceder a un archivo hay que poder acceder al directorio en el que está. Si puedes acceder al archivo directamente eso no se aplica pero los derechos por defecto seguirán siendo un problema potencial.
Las ACLs se aplican a cualquier objeto, no sólo a los archivos. Una clave del registro es un objeto, obvs, un archivo Lunix ini no puede proporcionar una ACL separada a cada línea única del archivo, Windows lo hace.
La línea de comandos para trabajar con ACLs del sistema de archivos es icacls (veo ACLs). La línea de comandos para trabajar con ACLs de red es «net share sharename /grant» que no utiliza todo el conjunto de características de ACLs disponibles.