Podemos inventariar los permisos adicionales añadidos en los directorios de Webs de Windows mediante el software SetACL. El comando siguiente saca un listado de todos los directorios de forma recursiva (es sólo para los directirios por el parámetro cont) a partir de la raiz web mencionada y lo almacena en el fichero test.txt:

setacl -on D:Inetpubwww.domain.org_wwwroot -ot file -rec cont -actn list -bckp test.txt

Para hacerlo más simple y poder programar inventarios automàticos, existe en todas las máquinas web el script Cygwin scripts/PermsInventory/perms-inventory.sh:

$ cat perms-inventory.sh
#!/bin/bash

DIRECTORY=”/home/Administrator/scripts/PermsInventory”

if [ “$#” -ne 1 ]; then
echo “Use: ./perms-inventory.sh [DIRECTORIO_FORMATO_WINDOWS]”
exit
fi

“$DIRECTORY”/SetAcl.exe -on $1 -ot file -rec cont -actn list | tr “\” “#” | tr
” ” “@” > “$DIRECTORY”/perms-inventory.tmp.$$
cat “$DIRECTORY”/perms-inventory.tmp.$$ | grep -v “finished@successfully” | whil
e read N
do

echo “$N” | cut -d” -f2 | tr “#” “\” | tr “@” ” ” | sed -e ‘s/^….//g

for i in `echo “$N” | cut -d” -f4 | tr “:” ” “`
do
IS_DACL=`echo $i | grep “^DACL”`
if [ -z “$IS_DACL” ]; then
echo ” $i” | tr “#” “\” | tr “@” ” ”
fi

done

done
rm “$DIRECTORY”/perms-inventory.tmp.$$

Para las máquinas que manejo en mi trabajo, programo la ejecución semanal de inventario de permisos mediante el script C:cygwinPermsInventory.bat que se almacena en E:ScriptsPermsInventory.

@echo off

C:
chdir C:cygwinbin

bash –login -c “/home/Administrator/scripts/PermsInventory/perms-inventory.sh ‘D:Inetpub’ | unix2dos > /cygdrive/e/Scripts/PermsInventory/PermsInventory.txt”

E:
cd E:ScriptsPermsInventory
del PermsInventory.%date:~6,4%%date:~3,2%%date:~0,2%.txt
ren PermsInventory.txt PermsInventory.%date:~6,4%%date:~3,2%%date:~0,2%.txt

La forma de ejecutar el script a mano es la siguiente, obteniendo algo como lo que sigue (es importante poner el directorio entre comillas simples):

$ ./perms-inventory.sh ‘D:Inetpub151www.domain.com’

D:Inetpubwww.domain.com
BUILTINAdministrators,full,allow,container_inherit+object_inherit
HOSTASPNET,change,allow,container_inherit+object_inherit
CREATOR OWNER,full,allow,container_inherit+object_inherit+inherit_only
HOSTdodonnell,change,allow,container_inherit+object_inherit
HOSTIIS_WPG,read_execute,allow,container_inherit+object_inherit
HOSTIUSR_SRV-PROD-WEB01,read_execute,allow,container_inherit+object_inherit
NT AUTHORITYSYSTEM,full,allow,container_inherit+object_inherit
HOSTweb_domain_write,change,allow,container_inherit+object_inherit