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 :-)