Permisos remotos a carpetas Windows por medio de icalcs

Puede ocurrir que como administradores de una red tenemos varios equipos en una LAN y queremos dar permisos remotos de lectura o escritura a carpetas o archivos de computadores, sin tener que ingresar a cada equipo localmente o por acceso remoto RDP. Esta actividad es posible realizarla mediante el uso del comando icalcs de Windows. En este articulo voy a mostrar un ejemplo de cómo automatizar el proceso de permisos remotos  carpetas Windows haciendo uso esencialmente de esa utilidad.

Permisos remotos icalcs
Permisos Windows

Primero vamos a crear dos scripts, uno para permitir (grant.bat) y otro para denegar (deny.gat) permisos:

  • deny.bat:
@echo off
set ruta=%1
set ip=%2
set her=%3
set d=%4
if %d%==d takeown /S %ip% /A /r /f %ruta% /D “S”
if %d%==f takeown /S %ip% /A /f %ruta%
if %her%==e icacls.exe %ruta% /inheritance:e /Q
if %her%==d icacls.exe %ruta% /inheritance:d /Q
if %d%==d icacls.exe %ruta%  /deny *S-1-1-0:(OI)(CI)(F) /Q
if %d%==f icacls.exe %ruta% /deny *S-1-1-0:(F) /Q
exit

En este script pasamos la ruta de la carpeta o archivo al cual le vamos a denegar permisos, cambiamos el propietario al grupo de administradores, y le activamos la herencia  si queremos que el permiso se aplique a los directorios o archivos internos.

  • grant.bat
set ruta=%1
set ip=%2
set her=%3
set d=%4
if %d%==d takeown /S %ip% /A /r /f %ruta% /D “S”
if %d%==f takeown /S %ip% /A /f %ruta%
if %her%==e icacls.exe %ruta% /inheritance:e
if %her%==d icacls.exe %ruta% /inheritance:d
if %d%==d icacls.exe %ruta% /t /grant *S-1-1-0:F
if %d%==f icacls.exe %ruta% /grant *S-1-1-0:F
exit

En este batch también pasamos la ruta de la carpeta o archivo al cual le vamos a dar permisos de lectura y escritura, cambiamos el propietario al grupo de administradores, aplicando recursividad si es un directorio, y finalmente también le activamos la herencia si queremos que el permiso se aplique a los directorios o archivos internos.

Ahora vamos a mostrar cómo usar estos dos scripts:

  • Para denegar acceso a una carpeta o archivo

Comando:

> deny.bat “<ruta>” <ip> <herencia:e,d> <archivo:d,f>
<ruta>: Ruta completa del directorio o archivo al que se le modificarán los permisos.
<ip> : Dirección IP de la máquina remota
<herencia:e,d>: Se indica si se habilita(e) o deshabilita (d) la herencia de permisos de la carpeta padre.
<archivo:d,f>: Se indica si se va a trabajar con los permisos de un directorio (d), o de un archivo (f). Si es un directorio, los permisos se heredan hacia los objetos internos a él.

Ejemplo:

> deny.bat “\\172.17.0.10\d$\test\t.doc”  172.17.0.10 d f

Se deniega acceso a la carpeta D:\test, en la máquina 172.17.0.10, indicando que se deshabilite la herencia (d), y que se trata de un archivo.

  •   Para conceder acceso a una carpeta o archivo

Comando:

> grant.bat “<ruta>” <ip> <herencia:e,d> <archivo:d,f>
<ruta>: Ruta completa del directorio o archivo al que se le modificarán los permisos.
<ip> : Dirección IP de la máquina remota
<herencia:e,d>: Se indica si se habilita(e) o deshabilita (d) la herencia de permisos de la carpeta padre.
<archivo:d,f>: Se indica si se va a trabajar con los permisos de un directorio (d), o de un archivo (f). Si es un directorio, los permisos se heredan hacia los objetos internos a él.

Ejemplo:

> grant.bat “\\172.17.0.10\d$\test” 172.17.0.10 d d

Se permite el acceso a la carpeta D:\test, en la máquina 172.17.0.10, deshabilitando la herencia (d) y que se trata de un directorio (d).

Estas facilidades permiten automatizar procesos engorrosos de los administradores de red, ya sea de una oficina,  de una sala de computadores o sitios similares, permitiendo ahorrar tiempo y costos para hacer cambios en los permisos remotos de computadores.

En FireOS SAS colaboramos con las empresas en el desarrollo de procesos de automatización para actividades como ésta, en la que el uso de la tecnología adecuada sirve para mejorar procesos, tiempo y costos a las organizaciones.

Comentarios

Por favor comenta aquí

Deja un comentario