1. Ana Sayfa
  2. Server 2003
  3. File Server Paylaşımlarınızı Kontrol Edin!

File Server Paylaşımlarınızı Kontrol Edin!

File ’da paylaşıma açtığınız tüm klasörlere sadece olması gereken kullanıcılar mı erişiyor? Farkında olmadan ilgisi olmayan kullanıcılara da hak vermiş olabilir misiniz?

Datalarımızın güvenliği açısından, paylaşıma açtığınız klasörlerde, kullanıcılarınızın sadece işi ile ilgili datalara erişmesini, diğer yerlere erişimini kısıtlamak istersiniz. Bu şekilde çok sayıda klasör ve dosyamızın olduğunu düşünelim. Her birisinde kime hangi hakkı vermişiz? Bunların toplu bir raporunu alarak, doğru yerlere doğru kişiler erişiyor mu kontrol edebilirsiniz. Nasıl mı? ’un resource kit içinde bize sunduğu .exe aracını bu işlem için kullanabiliriz.

Araç tek başına bu raporu sunmak için yeterli olmayacaktır. Makalenin sonunda yer alan scripti bir bat dosyası olarak kaydetmeniz gerekecek. Ben masaüstüne .bat adıyla kaydediyorum.

Rmtshare.exe dosyasını buraya klikleyerek indirip, paylaşımların olduğu sunucuda System32 klasörü altına kopyalayalım.

C:\’de boş bir txt dosyası oluşturalım (istediğiniz başka bir lokasyon da olabilir) ve komut satırını açarak aşağıdaki komutu uygulayalım;

>Report.bat C:\test.txt


Şekil-1

C:\’de oluşturduğunuz txt dosyasını açtığınızda içerisinde bu bilgisayardaki Admin$, IPC$, Print$ ve <Drive_Letter>$ dışındaki paylaşımların adlarını NTFS ve Share permission’larını görebilirsiniz.

Örneğin bende resimde de işaretlediğim “schema” ve “test” paylaşımlarını ve paylaşımın sunucu üzerinde bulunduğu konumu NTFS ve share permissionları görebilirsiniz.


Şekil-2

Script dosyasının içeriği;

@echo off

setlocal ENABLEDELAYEDEXPANSION

IF {%1}=={} GOTO bad

set report=%1

if exist %report% del /q %report%

set except=”%TEMP%\RptSPX_%RANDOM%.TMP”

@echo ADMIN$>%except%

@echo IPC$>>%except%

@echo print$>>%except%

:excl

if {%2}=={} goto begin

set wrk=%2

shift

set wrk=%wrk:”=%

@echo %wrk%>>%except%

goto excl

:begin

set f1=Findstr /v /b /C:”The command completed successfully.”

set f2=findstr /v /b /L /i /g:%except%

for /f “Skip=4 Tokens=1*” %%a in (‘RMTSHARE \\%computername%^|%F1%^|%F2%’) do (

set shr=%%a

if “!shr:~1,2!#” NEQ “$#” call :share

)

del /q %except%

endlocal

GOTO :EOF

:bad

@echo Usage: RptSPX ReportFile [Except1 Except2 … ExceptN]

@echo.

endlocal

:share

for /f “Tokens=*” %%r in (‘RMTSHARE \\%computername%\%shr%^|%F1%’) do (

@echo %%r>>%report%

set line=%%r

if “!line:~0,5!” EQU “Path ” if “!line:~19,1!” EQU “:” call :folder “!line:~18!”

)

)

@echo ……………………………………………….>>%report%

goto :EOF

:folder

set pf=%1

set wrk=%pf:”=%#

if “%wrk:~2,2%” EQU “\#” set pf=%pf:\=%

cacls %pf%>>%report%

for /f “Tokens=*” %%a in (‘dir %pf% /ad /s /b’) do (

cacls “%%a”>>%report%

)

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

Yorum Yap

Yorum Yap