Cada archivo o carpeta en un volumen NTFS tiene un propietario. Algunos archivos del sistema son propiedad de TrustedInstaller, otros de la cuenta SYSTEM y otros del grupo «Administradores». Si un usuario crea un archivo o carpeta, ese usuario suele ser el propietario del archivo o carpeta. El propietario es el que puede asignar permisos (Permitir o Denegar) a otros usuarios para ese objeto.

Si un usuario no es el propietario de un archivo o carpeta o no tiene permisos para acceder al archivo, obtiene el error «acceso denegado» al acceder al objeto. Si ese usuario es un administrador, puede tomar la propiedad del objeto utilizando la pestaña Propiedades – Seguridad del archivo o carpeta. A continuación, puede asignarse a sí mismo los permisos necesarios.

Este post le dice cómo tomar la propiedad de un archivo o carpeta, y asignar los permisos necesarios para que el uso de la línea de comandos en lugar de GUI.

Windows incluye una herramienta de línea de comandos llamado Takeown.exe, que puede ser utilizado desde un símbolo del sistema de administración para cambiar rápidamente la propiedad de un archivo o carpeta. A continuación se explica cómo tomar la propiedad de un archivo o carpeta y luego asignar permisos para una cuenta utilizando la línea de comandos.

Tomar la propiedad de un archivo

Abra una ventana elevada del Símbolo del sistema. Utilice la siguiente sintaxis para tomar la propiedad de un archivo:

TAKEOWN /F <filename>

Sustituya <nombre de archivo> por el nombre real del archivo con la ruta completa.

El usuario actualmente conectado es ahora el propietario del archivo.

Para que el grupo Administrators sea el propietario del archivo, utilice además el modificador /A:

TAKEOWN /F <filename> /A
  • /ADa la propiedad al grupo Administradores en lugar de al usuario actual. Si no se especifica /A, la propiedad del archivo se otorgará al usuario actualmente conectado. Este parámetro no distingue entre mayúsculas y minúsculas.

Si la operación fue exitosa, debería ver el siguiente mensaje:

«SUCCESS: El archivo (o carpeta): «nombre de archivo» ahora es propiedad del usuario «Nombre del equipo».»

o

Éxito: El archivo (o carpeta): «nombre de archivo» ahora es propiedad del grupo de administradores.

Asignar permisos de archivo

Entonces para conceder a los administradores permisos de control total para el archivo, utilice ICACLS. Esta es la sintaxis:

ICACLS <filename> /grant administrators:F

Ejemplo 2: Para asignar permisos de Control Total para el usuario actualmente conectado, utilice este comando:

ICACLS <filename> /grant %username%:F

%username% representa el nombre de la cuenta del usuario actualmente conectado. ICacls acepta esta variable directamente.

Ejemplo 3: Para asignar permisos de Control Completo para el usuario llamado John, utilice este comando:

ICACLS <filename> /grant John:F

Tomar la propiedad de una carpeta

Utilice la siguiente sintaxis:

takeown /f <foldername>

(o)

takeown /f <foldername> /a
  • /a Otorga la propiedad al grupo Administradores en lugar del usuario actual. Si no se especifica /a, la propiedad se otorgará al usuario actualmente conectado. Este parámetro no distingue entre mayúsculas y minúsculas.

Verás la siguiente salida:

Éxito: El archivo (o carpeta): «nombre_carpeta» ahora es propiedad del usuario «nombre_computador»

(o)

Éxito: El archivo (o carpeta): «nombre_carpeta» ahora es propiedad del grupo de administradores.

Cambiar la propiedad de forma recursiva:

Para cambiar la propiedad de una carpeta, sus subcarpetas y los archivos de cada subcarpeta, utilice esta sintaxis:

takeown /f <foldername> /r /d y

El usuario actualmente conectado es ahora el propietario de la carpeta.

Para establecer el grupo Administrators como propietario de la carpeta, sus subcarpetas y archivos de forma recursiva, utilice además el modificador /A:

TAKEOWN /F <foldername> /a /r /d y
  • /R Recurse: indica a la herramienta que opere sobre los archivos del directorio especificado y todos los subdirectorios.
  • /D prompt Respuesta por defecto utilizada cuando el usuario actual no tiene el permiso «listar carpeta» en un directorio. Esto ocurre cuando se opera recursivamente (/R) sobre subdirectorios. Valores válidos «Y» para tomar la propiedad o «N» para omitirla.

Asignar Permisos de Carpeta

Entonces para asignar al grupo de Administradores Permisos de Control Total para la carpeta, utilice esta sintaxis:

icacls <foldername> /grant administrators:F /T

Se añade el parámetro /T para que la operación se realice a través de todos los subdirectorios y archivos dentro de esa carpeta.

Ayuda de la línea de comandos:

Para conocer la información completa de uso de Takeown.exe y ICacls.exe, ejecute estos comandos desde una ventana del símbolo del sistema.

takeown /?
icacls /?

Métodos más sencillos para tomar la propiedad

Script de comandos

Para simplificar aún más el proceso de tomar la propiedad, Tim Sneath de Microsoft proporciona un archivo .CMD (script de comandos de Windows) que toma la propiedad y asigna permisos de control total a los administradores para el directorio. Para más información, lea el post de Tim, titulado Secret #11: Borrar lo indeleble.

Añade el comando «Take Ownership» al menú del botón derecho del ratón

Esto utiliza de nuevo el verbo especial runas en Windows Vista y superior, del que ya he hablado anteriormente (REF RunAs).

vía WinMatrix.com

Descarga takeown_context.reg y guárdalo en el Escritorio. Haga clic con el botón derecho del ratón en el archivo y elija Fusionar. Haga clic en Sí cuando se le pida confirmación. Esto añade un comando extendido llamado Take Ownership en el menú contextual para archivos y directorios. Para acceder al comando, hay que mantener pulsada la tecla SHIFT y luego hacer clic con el botón derecho en un archivo o carpeta.

(Puedes leer más sobre el ajuste en el artículo Tomar la propiedad de un archivo o carpeta a través del menú contextual del botón derecho en Windows.)

Información adicional

La sección anterior cubre la mayor parte de lo que necesitas. Lea a continuación si necesita más consejos sobre este tema.

¡Icacls.exe también puede cambiar la propiedad de un archivo o carpeta!

Takeown.exe y Icacls.exe son las dos herramientas de consola incorporadas en Windows, que le permiten cambiar la propiedad de archivos o carpetas y asignar permisos de control de acceso, respectivamente. Takeown.exe establece la cuenta del usuario que ha iniciado la sesión como propietaria de un objeto (archivo o carpeta).

Sin embargo, con Takeown.exe, no se puede hacer que otra cuenta sea la propietaria de un objeto.

¿Sabes que la herramienta icacls.exe también se puede utilizar para cambiar la propiedad?

Para cambiar la propiedad a una cuenta ajena (es decir, la cuenta que no está actualmente conectado) o grupo, puede utilizar icacls.exe con el argumento de línea de comandos /setowner, en lugar de takeown.exe.

Cambiar la propiedad de un archivo o carpeta utilizando icacls.exe

Vimos cómo cambiar la propiedad utilizando icacls.exe en la última parte del artículo Tomar la propiedad de un archivo o carpeta utilizando la línea de comandos en Windows. Aquí hay algunos ejemplos más:

La siguiente es la sintaxis de la línea de comandos para cambiar la propiedad de un archivo o carpeta utilizando icacls.exe:

icacls "file_or_folder_name" /setowner "NT Service\TrustedInstaller"

Ejemplos: Conjunto #1: Cambiar la propiedad de un solo archivo o carpeta

icacls "D:\Annual Reports20\November" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "John"
icacls "D:\Tax Audit\November.xlsx" /setowner "Administrators"

Si la operación fue exitosa, verá el siguiente mensaje:

processed file: file_or_folder_nameSuccessfully processed 1 files; Failed processing 0 files

Ejemplo #2: Cambiar la propiedad de una carpeta (subcarpeta y archivos) de forma recursiva

Para cambiar la propiedad de una carpeta, sus subcarpetas y todos los archivos de todas las subcarpetas de forma recursiva, utilice el modificador /T (traverse) además:

icacls "folder_name" /setowner "Administrators" /T
  • /Tindica que esta operación se realiza en todos los archivos/directorios coincidentes por debajo de los directorios especificados en el nombre.

El comando anterior establece a TrustedInstaller como propietario de la carpeta, de sus subcarpetas y de todos los archivos de todas las subcarpetas.

Revertir la propiedad a TrustedInstaller

A veces, para solucionar un problema, puede ser necesario alterar un archivo de datos como XML o una clave de registro propiedad de TrustedInstaller. Para ello, primero debe tomar la propiedad del archivo, la carpeta o la clave del registro.

Después de modificar los archivos o la configuración, debe revertir la propiedad a TrustedInstaller, si TrustedInstaller era el propietario anterior u original. Para devolver la propiedad a TrustedInstaller, siga estos pasos:

El servicio Windows Modules Installer o TrustedInstaller permite instalar, modificar y eliminar actualizaciones de Windows y componentes opcionales. De forma predeterminada, TrustedInstaller también es el propietario de muchas claves del registro y archivos del sistema críticos.

  1. Haga clic con el botón derecho del ratón en un archivo o clave del registro y haga clic en Permisos.
  2. Haga clic en Avanzado para abrir el cuadro de diálogo Configuración de seguridad avanzada.
  3. Cerca de «Propietario:», haga clic en Cambiar.
  4. En el cuadro de diálogo Seleccionar usuario o grupo, escriba «NT SERVICE\TrustedInstaller» y presione ENTER.
  5. Haga clic en Aplicar, Aceptar.

Esto cambia la propiedad del objeto (archivo, carpeta o clave del registro) a TrustedInstaller o Windows Modules Installer.

Usando el comando icacls.exe para establecer TrustedInstaller como propietario de un archivo

Desde una ventana del Símbolo del sistema del administrador, utilice la siguiente sintaxis de línea de comandos:

icacls "path\filename" /setowner "NT Service\TrustedInstaller"

Ejemplo:

icacls "C:\Windows\PolicyDefinitions\WindowsStore.admx" /setowner "NT Service\TrustedInstaller"

TrustedInstaller es ahora propietario del archivo WindowsStore.admx.

icacls /setowner ¿acceso denegado?

A veces, la línea de comandos icacls.exe /setownerpuede encontrar el siguiente error:

filename: Access is denied.Successfully processed 0 files; Failed processing 1 files

Esto puede ocurrir cuando encuentra un enlace duro NTFS. El error suele aparecer cuando se intenta cambiar la propiedad de archivos protegidos en el directorio de Windows – por ejemplo, C:\Windows\Notepad.exe. Un enlace duro es la representación de un archivo en el sistema de archivos mediante la cual más de una ruta hace referencia a un único archivo en el mismo volumen.

Por ejemplo, los archivos Notepad.exe tienen dos archivos con enlaces duros, que puede ver utilizando el siguiente comando:

fsutil.exe hardlink list C:\Windows\notepad.exe

Puede ver que Notepad.exe tiene enlaces duros con los siguientes archivos:

C:\Windows\System32\Notepad.exeC:\Windows\WinSxS\amd64_microsoft-windows-notepad_31bf3856ad364e35_10.0.19041.488_none_4cea9379ceedab35\notepad.exe

El comando icacls.exe /setowner encuentra el error ACCESS_DENIED al procesar estos enlaces duros.

Note que la documentación de icacls.exe dice: «Esta opción no fuerza un cambio de propiedad; utilice la utilidad takeown.exe para ese propósito.»

Si se encuentra con errores de «Acceso denegado» al establecer la propiedad utilizando Icacls, es posible que tenga que confiar en Takeown.exe, SubInACL, o la utilidad de línea de comandos de terceros SetACL.exe (véase el párrafo siguiente).

El uso de SetACL.exe para tomar la propiedad y asignar permisos

SetACL.exe es una herramienta de línea de comandos de terceros (de HelgeKlein.com) de la que ya hemos hablado anteriormente.

SetACL: argumentos de la línea de comandos

Antes de continuar, veamos la sintaxis de la línea de comandos para cambiar la propiedad y los permisos de archivos/registros utilizando SetACL.

SetACL -on objectname -ot objecttype -actn action
  • -on: Especifique la ruta del objeto sobre el que debe operar SetACL (por ejemplo, archivo, clave de registro, recurso compartido de red, servicio o impresora).
  • -ot: Especifica el tipo de objeto. Para cambiar la propiedad o los permisos de un archivo o carpeta, utilice el tipo de objeto file. Para las claves del registro, utilice el tipo de objeto reg
  • -actn: Especifique la acción en cuanto a lo que debe hacer SetACL contra el objeto especificado. Para tomar la propiedad, establezca la acción como setowner. Para cambiar los permisos, establezca la acción como ace.
  • -ownr: Especifique el nombre o SID de un administrador (un usuario o grupo) en este formato – por ejemplo, "n:Administrators"

(Vea la documentación de SetACL para la lista completa de objetos, tipos y acciones soportadas.)

Para cambiar la propiedad y conceder el permiso de control total, aquí hay algunos ejemplos:

Ejemplos: Cambiar la propiedad de un solo archivo o carpeta:

setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on c:\windows\notepad.exe -ot file -actn setowner -ownr "n:John"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:Administrators"setacl.exe -on "d:\test" -ot file -actn setowner -ownr "n:John"

Ejemplos: Cambiar la propiedad de forma recursiva:

Opción 1: Para establecer la propiedad de una carpeta y sus subcarpetas (no para los archivos) de forma recursiva, utilice uno de estos ejemplos:

setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec contsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont
  • -rec – la recursión está activada.
  • cont – Recurrir, y procesar los directorios solamente.

Opción 2: Para establecer la propiedad de los archivos en una carpeta y sus subcarpetas (no carpetas) de forma recursiva, utilice uno de estos ejemplos:

setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec obj
  • -rec – la recursión está habilitada.
  • obj – Recurrir, y procesar sólo los archivos.

Opción 3: Para establecer la propiedad de una carpeta, sus subcarpetas y los archivos de forma recursiva, utilice uno de estos ejemplos:

setacl.exe -on d:\test -ot file -actn setowner -ownr "n:NT Service\TrustedInstaller" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Administrators" -rec cont_objsetacl.exe -on d:\test -ot file -actn setowner -ownr "n:Ramesh" -rec cont_obj
  • -rec – la recursión está habilitada.
  • cont_obj – Recurrir, y procesar directorios y archivos.

Ejemplos: Asignar los permisos necesarios para un archivo o carpeta:

Una vez que se tiene la propiedad, se pueden asignar los permisos necesarios para un objeto. Estos son algunos ejemplos:

Para asignar los permisos de un solo archivo o carpeta, utilice uno de estos ejemplos:

setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test\sample.xlsx" -ot file -actn ace -ace "n:John;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full"setacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full"

Ejemplos: Asignar los permisos necesarios de forma recursiva:

Opción 1: Para una carpeta y subcarpetas (no archivos) de forma recursiva, utilice uno de estos ejemplos:

setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec contsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont
  • -rec – la recursión está activada.
  • cont – Recurrir, y procesar los directorios solamente.

Opción 2: Para los archivos en una carpeta y subcarpetas (no carpetas) recursivamente, utilice uno de estos ejemplos:

setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec obj
  • -rec – la recursión está habilitada.
  • obj – Recurrir, y procesar los archivos solamente.

Opción 3: Para una carpeta, sus subcarpetas, y los archivos de forma recursiva, utilice uno de estos ejemplos:

setacl.exe -on "d:\test" -ot file -actn ace -ace "n:Administrators;p:full" -rec cont_objsetacl.exe -on "d:\test" -ot file -actn ace -ace "n:John;p:full" -rec cont_obj
  • -rec – la recursión está habilitada.
  • cont_obj – Recurrir, y procesar directorios y archivos.

Puede consultar la documentación oficial de SetACL para conocer todas sus capacidades. Sin embargo, para establecer los permisos de propiedad de archivos y carpetas &, takeown.exe e icacls.exe serían más que suficientes para la mayoría de los usuarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.