BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/forum/faq/sysadmin/diskmap.html

Подключение сетевых дисков в домене
[CB]
Опубликовано: dl, 16.10.06 00:39

"Лень - это двигатель прогресса"
не знаю, кто автор,
но так говорил мой
препод по информатике

Иногда у системного администратора появляются такие задачи, как настройка перемещаемых профилей, redirect папок, подключение сетевых дисков. Все эти задачи можно осуществить через групповую политику (GPO), профиль, или же через скрипты.

Однажды мне была поставлена задача - у определенных пользователей должен быть подключен сетевой диск, где они будет хранить служебную и/или конфиденциальную информацию. Эта информация должны быть доступна только ему одному, никому более. И таких пользователей набралось около 40 штук. Имя папки, которая будет подсоединяться как сетевой диск, не имело значения, так что для себя я решил назначить в качестве имени папки имя, под которым пользователь входит в сеть (User logon name). Заводить такое количество папок, настраивать разрешения не очень было охота, да и как-то непрофессионально. Хотелось, чтоб был 1 рабочий скрипт для всех.

При обращении к поисковикам, сайтам и форумам ИТ-тематики конкретного ответа на свой вопрос так и нашел. Было принято решение написать скрипт самому.

Для начала эти определенные пользователи были объединены в домен-локальную группу безопасности с названием VIP в домене DOMAIN. Было выделено место для хранения информации на файловом сервере с именем Fileserver. Создана папка Data - для группы VIP на нее были выставлены Special разрешения, т.е. Full за минусом двух свойств "Delete subfolders and Files " и "Take Ownership". Эта же папка была расшарена в сети с именем Data, для группы VIP с доступом Full.

Теперь нужен сам скрипт, который бы проверял наличие папки и если:

  1. этой папки не было, то чтоб скрипт создал папку, назначил на нее разрешения, и подключил ее как сетевой диск Т;
  2. эта папка была, просто подключил ее как сетевой диск Т;

Проблем с проверкой на наличие папки не было. А вот как назначить разрешения? Майкросовская программа cacls при замене разрешений всегда спрашивала подтверждение, что было приемлемо, но неудобно. Пришлось взять Xcacls.exe (средства Extended Change Access Control List) входящую в состав пакета Windows 2000 Resource Kit, ее можно взять по адресу: http://download.microsoft.com/download/win2000platform/Update/1.00.0.1/NT5/EN-US/xcacls_setup.exe

В результате чего появился вот такой скрипт net_disk.bat (для удобства я вставил комментарии)

if exist \\Fileserver\Data\%username% (goto ok)
rem  проверяем наличие папки, если  есть такая папка, то идем на ок,
rem  если нету папки, идем дальше
mkdir \\Fileserver\Data \%username% 
rem создаем папку c таким же именем, с каким пользователь входит в сеть
xcacls \\Fileserver\Data \%username% /t /c /g Domain\%username%:c /y
rem назначаем для пользователя на папку разрешения Change
:ok net use t: \\Fileserver\Data \%username%
rem подключаем папку как сетевой диск Т

Теперь выкладываем скрипт в Domain\Netlogon и в свойствах профиля каждого нужного пользователя на вкладке Profile в Logon script пишем net_disk. И все.

В результате всего этого каждый пользователь получил сетевой диск Т, доступный только для него одного (ну или почти, принятие во владение разрешено только администратору домена, т.е. только мне :).

[CB]



обсудить  |  все отзывы (12)

[52177]





  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach