Permisos en disco duro USB bajo Win 7

Escrito por Sandor el 28 de septiembre de 2015.
Categorías • Sincorbata
Etiquetas • windows • permisos • truecrypt • veracrypt • seguridad

Como ya os he contado en alguna otra ocasión, tengo un disco duro cifrado (durante años con Truecrypt y ahora, después de la polémica de los servicios secretos y demás, con Veracrypt, un digno sucesor que guarda compatibilidad con Truecrypt).

El caso es que al migrar uno de mis ordenadores a Windows 7, me dí cuenta que no podía ejecutar programas desde la unidad montada a no ser que fuera ejecutado como administrador. También mi imprescindible wiki quedó como solo lectura y, en definitiva, era incapaz de realizar cambios en un montón de documentación con la que trabajo diariamente.

Tras leer un poco, me dí cuenta que era un tema de permisos, así que opté por otorgar al grupo "Todos" permisos totales. Al ser un volumen cifrado, tampoco consideré una operación de riesgo hacerlo así.

Para asignar al grupo "Todos" permisos de Control Total, lo podemos hacer desde la consola, o desde el entorno gráfico. Para hacerlo desde la consola, debemos ejecutar con permisos de administrador la utilidad cmd, y hacer uso del comando ICACLS. Un simple icacls /? nos ofrece la ayuda básica:

ICACLS nombre /save archivoACL [/T] [/C] [/L] [/Q]
    almacena las DACL para los archivos y carpetas cuyos nombres coinciden
    en archivoACL para su uso posterior con /restore. Tenga en cuenta que no
    se guardan las SACL, el propietario ni las etiquetas de identidad.

ICACLS directorio [/substitute SidOld SidNew [...]] /restore archivoACL
                  [/C] [/L] [/Q]
    aplica las DACL almacenadas a los archivos del directorio.

ICACLS nombre /setowner usuario [/T] [/C] [/L] [/Q]
    cambia el propietario de todos los nombres coincidentes. Esta opción
    no fuerza un cambio de propiedad; use la utilidad takeown.exe
    con esta finalidad.

ICACLS nombre /findsid Sid [/T] [/C] [/L] [/Q]
    busca todos los nombres coincidentes que contienen una ACL
    que menciona el SID de forma explícita.

ICACLS nombre /verify [/T] [/C] [/L] [/Q]
    busca todos los archivos cuya ACL no está en formato canónico o cuyas
    longitudes no son coherentes con los recuentos de la ACE.

ICACLS nombre /reset [/T] [/C] [/L] [/Q]
    reemplaza las ACL con ACL heredadas predeterminadas para todos
    los archivos coincidentes.

ICACLS nombre [/grant[:r] Sid:perm[...]]
       [/deny Sid:perm [...]]
       [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
       [/setintegritylevel nivel:directiva[...]]

    /grant[:r] Sid:perm concede los derechos de acceso al usuario
        especificado. Con :r, los permisos reemplazan cualquier permiso
        explícito concedido anteriormente. Sin :r, los permisos se agregan a
        cualquier permiso explícito concedido anteriormente.

    /deny Sid:perm deniega de forma explícita los derechos de acceso al
        usuario especificado. Se agrega una ACE de denegación explícita
        para los permisos indicados y se quitan los mismos permisos de
        cualquier concesión explícita.

    /remove[:[g|d]] Sid quita todas las repeticiones del SID en la ACL. Con
        :g, quita todas las repeticiones de derechos concedidos a ese SID. Con
        :d, quita todas las repeticiones de derechos denegados a ese SID.

    /setintegritylevel [(CI)(OI)]nivel agrega de forma explícita una ACE de
        integridad a todos los archivos coincidentes. El nivel se debe
        especificar como:
            L[ow] - para bajo
            M[edium] - para medio
            H[igh] - para alto
        Las opciones de herencia para la ACE de integridad pueden preceder al
        nivel y se aplican sólo a los directorios.

    /inheritance:e|d|r
        e - habilita la herencia
        d - deshabilita la herencia y copia las ACE
        r - quita todas las ACE heredadas

Nota:
    Los SID pueden tener un formato numérico o de nombre descriptivo. Si se da
    un formato numérico, agregue un asterisco (*) al principio del SID.

    /T indica que esta operación se realiza en todos los archivos o
        directorios coincidentes bajo los directorios especificados en el
        nombre.

    /C indica que esta operación continuará en todos los errores de archivo.
        Se seguirán mostrando los mensajes de error.

    /L indica que esta operación se realiza en el vínculo simbólico en sí
        en lugar de en su destino.

    /Q indica que icacls debe suprimir los mensajes de que las operaciones
       se realizaron correctamente.

    ICACLS conserva el orden canónico de las entradas ACE:
            Denegaciones explícitas
            Concesiones explícitas
            Denegaciones heredadas
            Concesiones heredadas

    perm es una máscara de permiso que puede especificarse de dos formas:
        una secuencia de derechos simples:
                N - sin acceso
                F - acceso total
                M - acceso de modificación
                RX - acceso de lectura y ejecución
                R - acceso de sólo lectura
                W - acceso de sólo escritura
                D - acceso de eliminación
        una lista separada por comas entre paréntesis de derechos específicos:
                DE - eliminar
                RC - control de lectura
                WDAC - escribir DAC
                WO - escribir propietario
                S - sincronizar
                AS - acceso al sistema de seguridad
                MA - máximo permitido
                GR - lectura genérica
                GW - escritura genérica
                GE - ejecución genérica
                GA - todo genérico
                RD - leer datos/lista de directorio
                WD - escribir datos/agregar archivo
                AD - anexar datos/agregar subdirectorio
                REA - leer atributos extendidos
                WEA - escribir atributos extendidos
                X - ejecutar/atravesar
                DC - eliminar secundario
                RA - leer atributos
                WA - escribir atributos
        los derechos de herencia pueden preceder a cualquier forma y se
        aplican sólo a directorios:
                (OI) - herencia de objeto
                (CI) - herencia de contenedor
                (IO) - sólo herencia
                (NP) - no propagar herencia
                (I) - permiso heredado del contenedor principal

Ejemplos:

        icacls c:\windows\* /save archivoACL /T
        - Guardará todas las ACL para todos los archivos en c:\windows
          y sus subdirectorios en archivoACL.

        icacls c:\windows\ /restore archivoACL
        - Restaurará todas las ACL para cada archivo dentro de
          archivoACL que exista en c:\windows y sus subdirectorios.

        icacls file /grant Administrador:(D,WDAC)
        - Concederá al usuario permisos de administrador para eliminar y
          escribir DAC en el archivo.

        icacls file /grant *S-1-1-0:(D,WDAC)
        - Concederá al usuario definido por el SID S-1-1-0 permisos para
          eliminar y escribir DAC en el archivo.

Este mismo proceso se puede hacer haciendo uso del entorno gráfico: botón derecho sobre la letra de la unidad, ir a la pestaña Seguridad -> Opciones avanzadas -> Permisos -> Cambiar permisos -> Agregar -> añadir grupo "Todos", seleccionar "Control total" y aplicar los cambios a "Esta carpeta, subcarpeta y archivos".

Tardará un poquito, en función del tamaño de vuestro disco, pero no volveréis a comeros la cabeza con este tema :-)


¡Participa y escribe tu comentario! ;-)