Файловый сервер установлен. Об установке и настройке файлового сервера смотрите статью «Файловый сервер на базе Windows Server 2016». В этой статье я расскажу о настройке прав доступа к сетевым папкам на файловом сервере.
На логическом диске D: файлового сервера создадим папку, например, share-local. Это будет корневая папка для всего файлового сервера.
Включаем Sharing для этой папки. Нажимаем Advansed Sharing > удаляем Everyone и добавляем Authenticated Users или Domain Users.
Устанавливаем права для Authenticated Users.
Теперь включаем ABE (Access Based Enumeration) — папки, к которым нет доступа, не будут отображаться. На Windows Server 2016 опция ABE находится в File and Storage Services > Shares. Выбираем нашу папку, клик правой кнопкой мыши >Properties и в пункте меню Settings ставим флаг — Enable access-based enumeration.
Возвращаемся к нашей папке share-local. Заходим на вкладку Security, нажимаем Advansed. В появившемся окне Advansed Security нажимаем Disable inheriatance (Отключить наследование). Отключаем наследование с преобразованием унаследованных прав в явные.
Оставляем полный доступ для этой папки, ее подпапок и файлов администраторам и системе, права создателя-владельца урезаем, остальные права доступа удаляем.
Добавляем группу Domain Users c правом только чтения и только этой папки.
Создаем подпапки отделов. Вновь созданные папки будут видны только администраторам. Добавим группы, которые должны получить доступ к ним. И не забываем поставить флаг Write для групп.
Как видно, теперь пользователь сети нужного отдела видит папку своего отдела и может в ней создавать папки и файлы.
Создаем папку для второго отдела, добавляем нужную группу к доступу — у нашего пользователя по прежнему только его папка.
Помним, что один из отделов уже имеет общий ресурс для отдела. И нужно этому отделу подключить еще одну сетевую папку. Для этих целей мы создали наш Namespace. O Namespace смотрите статью
«Файловый сервер на базе Windows Server 2016».
Подключаем сетевой ресурс через \unitec.localshare-files
Видим 2 папки нашего отдела. Одна из них корневая со старого сетевого ресурса (dc share), а вторая подпапка отдела (new share) с нового файлового сервера. У пользователя все работает, есть возможность создавать файлы и папки.
Представим ситуацию, что кто-то вне нашего отдела узнал, что в локальной сети есть сетевой ресурс \unitec.localshare-files и решил проверить — будет ли у него доступ.
В результате такой пользователь увидит следующее. У него будут отображаться 2 папки первого отдела. Если он зайдет в корневую папку старого сетевого ресурса (dc share) — то для него папка будет пуста, так как на папке включен ABE. При попытке входа на подпапку отдела нового файлового сервера — получит ошибку.
Права доступа у нас работают.
Хочу добавить, что у меня не стояла задача создания структуры папок в корневой папке отдела и назначения прав на папки структуры.
Обновлено: 05.10.2020
Опубликовано: 2016 год или раньше
В качестве примера используется Windows Server 2012 R2 (2016, 2019). Инструкция разбита на несколько шагов и представляет из себя полный цикл настройки файлового хранилища для использования в малых и средних компаниях.
Выбор оборудования и подготовка сервера
Установка Windows и настройка системы
Базовые настройки файлового сервера
Тюнинг файлового сервера или профессиональные советы
Настройка средств обслуживания
Тестирование
Шаг 1. Выбор оборудования и подготовка сервера
В качестве сервера, желательно, выбрать профессиональное оборудование. Системные требования для файлового сервера не высокие:
- Процессор может быть самый простой;
- Оперативная память также не сильно используется;
- Дисковая система — самый основной компонент. Ее объем зависит от специфики бизнеса. Примерная формула — не менее 15 Гб на пользователя и не менее 1 Тб на сервер. До 50 пользователей можно рассматривать диски SATA, после — SAS или SSD.
Например, для компании в 300 пользователей подойдет сервер с процессором Xeon E3, 8 Гб ОЗУ и 5 Тб дискового пространства на дисках SAS 10K.
Дополнительные требования
- Для обеспечения сохранности информации при выходе из строя жесткого диска, необходим RAID-контроллер. Настройка последнего выполняется из специального встроенного программного обеспечения, которое запускается при загрузке сервера;
- Сервер должен быть подключен к источнику бесперебойного питания;
- Необходимо предусмотреть резервное копирование. Для этого нужен дисковый накопитель (внешний жесткий диск) или другой сервер.
Подробнее о выборе оборудования читайте статью Как выбрать сервер.
Шаг 2. Установка Windows и настройка системы
Установка системы
На этом шаге все стандартно, за исключением одного нюанса: разбивая во время установки Windows жесткий диск, стараемся выделить небольшую часть (70 — 120 Гб) для системы и все остальное под данные. Если выделить много дискового пространства для системного раздела, увеличится время его обслуживания и фрагментация, что негативно скажется на производительности и надежности системы в целом.
Настройка системы
- Проверяем правильность настройки времени и часового пояса;
- Задаем понятное имя для сервера и, при необходимости, вводим его в домен;
- Если сервер не подключен напрямую к сети Интернет, стоит отключить брандмауэр;
- Для удаленного администрирования, включаем удаленный рабочий стол;
- Устанавливаем все обновления системы.
Шаг 3. Базовые настройки файлового сервера
Это стандартные действия, которые выполняются при настройке обычного файлового сервера.
Установка роли и вспомогательных компонентов
Как правило, данная роль устанавливается вместе с Windows. Остается только это проверить и доустановить компоненты, которые нужны для полноценной эксплуатации сервиса.
Открываем Диспетчер серверов. Он может быть запущен из панели быстрого запуска.
Нажимаем Управление — Добавить роли и компоненты.
В открывшемся окне оставляем Установка ролей и компонентов и нажимаем Далее.
В следующем окне выбираем нужный сервер (выбран по умолчанию, если работаем на сервере, а не через удаленную консоль) и нажимаем Далее.
Среди ролей находим Файловые службы и службы хранилища, раскрываем ее и проверяем, что установлены галочки напротив следующих компонентов:
- Службы хранения;
- Файловый сервер;
Если данные службы не установлены, выбираем их и нажимаем Далее.
В окне Выбор компонентов просто нажимаем Далее.
Откроется окно Подтверждение установки компонентов. Нажимаем Установить и после окончания процесса перезагружаем сервер.
Настройка шары (общей папки)
Создаем первую папку, которую хотим предоставить в общее использование. Затем кликаем по ней правой кнопкой мыши и нажимаем Свойства:
В открывшемся окне переходим на вкладку Доступ и нажимаем Расширенная настройка:
Ставим галочку Открыть общий доступ к этой папке и нажимаем кнопку Разрешения:
Предоставляем полный доступ всем пользователям:
* конечно же, мы не будем давать доступ всем пользователям, но для этого есть вкладка безопасность (см. ниже).
Нажимаем OK и еще раз OK.
Теперь переходим на вкладку Безопасность и нажимаем Дополнительно:
В открывшемся окне нажимаем Отключение наследования и Преобразовать унаследованные разрешения в явные разрешения этого объекта.
Нажимаем OK и Изменить.
Выставляем необходимые права на папку, например:
Совет: старайтесь управлять правами на ресурсы только при помощи групп. Даже если доступ необходимо предоставить только одному человеку!
Теперь нажимаем OK два раза. Папка настроена для общего использования и в нашем примере доступна по сетевому пути \fs1Общая папка.
Шаг 4. Тюнинг файлового сервера или профессиональные советы
Данные настройки, по сути, представляют секреты того, как сделать файловый сервер лучше, надежнее и безопаснее. Применяя их, администраторы создают более правильную и профессиональную среду ИТ.
DFS
С самого начала стоит создавать общие папки в пространстве имен DFS. На это есть две основные причины:
- При наличии или появлении нескольких файловых серверов пользователям будет удобнее находить общие папки в одном месте.
- Администратор легко сможет создать отказоустойчивую систему при необходимости.
Как создать и настроить DFS читайте в статьях Как установить и настроить DFS и Как установить и настроить DFS с помощью Powershell.
Теневые копии
Позволят вернуться к предыдущим версиям файлов. Это очень полезная функция позволит не только восстановить некорректно отредактированный документ, но и вернуть случайно удаленный файл или папку.
Как настроить и пользоваться данной возможностью, читайте подробнее в инструкции Как включить и настроить теневые копии.
Аудит
Аудит позволит вести протокол доступа к данным — понять, кто и когда удалил важные данные или внес в них изменения.
О том, как настроить данную возможность читайте статью Как включить аудит доступа к файлам Windows.
Анализатор соответствия рекомендациям
В диспетчер управления серверами Windows встроен инструмент для проверки конфигурации сервера — анализатор соответствия рекомендациям. Чтобы им воспользоваться переходим в диспетчере в Локальный сервер:
Находим раздел «Анализатор соответствия рекомендациям» и справа кликаем по ЗАДАЧИ — Начать проверку BPA:
Рассмотрим решения некоторых рекомендаций.
1. Для XXX должно быть задано рекомендованное значение.
Это набор однотипных рекомендаций, для выполнения которых нужно обратить внимание на описание и задать значение параметро, которое в нем указано. Например, для CachedOpenLimit в описании проблемы есть описание решения — «Задайте для CachedOpenLimit рекомендуемое значение 5». Чтобы это сделать, открываем Powershell от администратора и вводим команду:
Set-SmbServerConfiguration -CachedOpenLimit 5
* мы задаем параметру CachedOpenLimit значение 5, как это и рекомендовано анализатором.
На запрос, уверены ли мы, что хотим выполнить команду, отвечаем утвердительно.
Остальные параметры задаем аналогичными действиями.
2. Файл Srv.sys должен быть настроен на запуск по требованию.
В командной строке от имени администратора вводим:
sc config srv start= demand
3. Создание коротких имен файлов должно быть отключено.
В командной строке от имени администратора вводим:
fsutil 8dot3name set 1
Шаг 5. Настройка средств обслуживания
Ни одна инфраструктура не может полноценно существовать без мониторинга и резервного копирования. Предупредить о возможной проблеме, узнать о последней раньше пользователей или иметь возможность восстановить данные — показатели высокой ответственности и профессионализма системного администратора.
Резервное копирование
Для файлового сервера все просто — необходимо резервировать все рабочие папки и файлы. Лучшим решением будет ежедневное копирование новых данных, и с определенной периодичностью (например, раз в месяц), создавать полный архив.
Мониторинг
Мониторить стоит:
- Сетевую доступность сервера;
- Свободное дисковое пространство;
- Состояние жестких дисков.
Шаг 6. Тестирование
Тестирование состоит из 3-х основных действий:
- Проверить журналы Windows и убедиться в отсутствие ошибок. В случае их обнаружения, необходимо устранить все проблемы.
- Выполнить действия анализатора соответствий рекомендациям.
- Провести живой тест работы сервиса с компьютера пользователя.
- Remove From My Forums
-
Вопрос
-
Добрый день, коллеги!
Описание вопроса:
Имеется ОС Windows Server 2016 Standard, среда — workgroup.
Задача — предоставить доступ к директории на уровне группы пользователей.
При предоставлении полного доступа на требуемую директорию для группы, пользователь входящий в группу не имеет доступа. Доступ для пользователя возможен только после явного добавления в список доступа на директорию. Но в таком случае
настройка прав неэффективна.Наследование для директории отключено
Подскажите, каким образом возможно разрешить вопрос посредством использования групп доступа
Спасибо
-
Изменено
28 мая 2018 г. 13:46
-
Изменено
Ответы
-
На сервере расположены : Директория, группа доступа, и учетная запись пользователя
Пользователь подключается по rdp и получается доступ к директории возможен только после явного добавления пользователя в список acl директории, хотя ранее в данный список была уже добавлена группа с правами доступа full, в которую входит пользователь
для начала убедитесь что пользователь таки входит в группу при помощи команды whoami /groups (под тестируемым пользователем). Если пользователь не состоял в группе на момент логина, то описанное поведение закономерно.
Для решения задачи достаточно перелогиниться
The opinion expressed by me is not an official position of Microsoft
-
Предложено в качестве ответа
Vector BCOModerator
28 мая 2018 г. 15:06 -
Помечено в качестве ответа
Petko KrushevMicrosoft contingent staff, Moderator
6 июня 2018 г. 7:49
-
Предложено в качестве ответа
Файловый сервер – что это? При разговоре многие IT специалисты отвечают очень просто: “шара” она и в Африке “шара”. Задаешь следующий вопрос, как ты считаешь у файлового сервера может быть логика функционирования? И в ответ получаешь, что-то подобное ответу на первый вопрос. Ну и в заключении просишь показать скриншот рабочего файлового сервера компании со стороны обычного пользователя, результат обычно такой…
И еще пару-тройку десяток папок своих и не своих, которые видит пользователь.
А как ты предоставляешь доступ пользователю?
Захожу на файловый сервер, открываю свойства конкретной папки далее вкладка Security и добавляю требуемые разрешения конкретному пользователю.
А ты слышал, что в Active Directory есть группы?
Да конечно, но я так привык делать.
А если тебе придётся администрировать файловый сервер к примеру на одну тыс. человек, как ты считаешь твоя модель будет эффективной?
Ответ зависит от креативности конкретной личности)))
Недавно мне попался такой файловый сервер который нужно было оптимизировать и продумать новую логику работы с учетом роста компании.
Какие проблемы будут решены после оптимизации файлового сервера:
1) Зайдя на файловый сервер человек будет видеть только “свои” папки.
2) Доступ к папкам будет предоставляться через ролевые группы на базе групп Active Directory.
При таком подходе предоставление доступа к ресурсу осуществляется лишь добавлением определенного пользователя в требуемую группу через оснастку Active Directory Administrative Center.
Цитата из книги “Эффективное Администрирование. Windows Server 2008.” Автор: Холме Дэн.:
Ролевая группа определяет набор компьютеров или пользователей, ориентируясь на их общие черты с точки зрения бизнеса. Это помогает установить, кем является данный пользователь или компьютер
В книге очень подробно описано как грамотно организовать файловый север. Советую.
3) Файловый сервер будет работать на базе технологии Distributed File System.
4) Будет активирована технология Data Deduplication.
К примеру в моем случаи Deduplication rate (при дефолтовых настройках) составляет 43%:
Устанавливаем роли:
Создаем папку самого верхнего уровня:
Когда создаем папку или папки верхнего уровня лучше избежать русских букв в названии и пробелов. Если этим пренебречь, то к примеру некоторые Linux клиенты могу при монтирование этой папки испытывать дополнительные проблемы.
Далее заходим в свойства этой папки на вкладку Security –> Advanced и выключаем наследование прав:
Далее приводим группы в такое соответствие:
Если группе Domain Users не сделать This folder Only, то технология ABE не отработает. Плюс мы выключи наследование прав.
Далее открываем Server Manager переходим:
Выбираем нашу папку верхнего уровня:
На следующем шаге включаем технологию ABE:
Permissions мы уже указали. Management Properties и Quota мы конфигурировать так же не будем.
В конечном итоге доходим до конца мастера и нажимаем Create и получаем такие результаты:
На этом этапе стоит пояснить одну фундаментальную вещь.
Цитата из блога Vadims Podans (ссылка на статью):
Как известно, при доступе к общим ресурсам (сетевым папкам) мы различаем 2 типа прав:
Share Permissions
NTFS RightsОба типа прав влияют на результирующие (эффективные) права пользователя при доступе к сетевому ресурсу. В общем смысле эффективные права будут являть собой наиболее ограничивающее разрешение из обоих типов прав. Например, на ресурс установлено право Share Permissions = Read, а NTFS = Full Control, то исходя из наиболее ограничивающего разрешения эффективным будет Read. Если Share Permissions = FullControl, а NTFS = Modify, то эффективным правом для пользователя будет Modify. Вот такая несложная схема. Т.е. там, где прав меньше, те и будут ваши Как известно, эта проблема редко кого касается, т.к. обычно на уровне Share Permissions выдают FullControl на ресурс и дальше уже права регулируют за счёт NTFS
Теперь запускаем DFS Management и создадим New NameSpace…:
Практически всегда ваш файловый сервер должен “жить” в пространстве DFS. При таком подходе доступ к файловому серверу или серверам осуществляется через единый NameSpace в нашем случае \Contoso.comFileServer
Запускаем мастер вводим Name, далее Edit Settings и выбираем нашу первую папку в иерархии:
Далее кнопка Customize и поправим права иначе мастер нам их сбросит:
Нажимаем Next и получаем предупреждение:
Так как для папки мы уже заранее все настроили отвечаем на вопрос — Yes.
На следующем шаге оставляем все как есть:
Конечный результат:
Теперь на клиенте можно создавать такие ярлыки (удобно это делать через групповую политику):
Теперь если мы захотим добавить к нашему файловому серверу еще один сервер и начнем уже там размещать новые данные, то конечный пользователь даже не поймет, что был добавлен второй файловый сервер:
Папка “Кадровая служба” физически располагается на втором файловом сервере, но путь ко всем папкам один \Contoso.comFileServer:
Как это реализовать в этой заметке рассказано не будет.
Если на данном этапе реализации файлового сервера взять обычного пользователя и попытаться открыть наш файл сервер, то никаких файлов и папок мы не увидим, хотя они там есть:
Отрабатывает технология Access-based enumeration:
Скрин со стороны сервера:
Нашему тестовому вновь созданному пользователю не предоставлено по умолчанию никаких прав, а мы помним если задействована технология ABE и пользователь не имеет хотя бы права Read на файл или папку то ему этот файл или папка не видны.
Пришло время создать ролевые группы, вначале этой заметке я уже приводил цитату из книги, но хочу добавить еще одну:
Цитата из книги “Эффективное Администрирование. Windows Server 2008.” Автор: Холме Дэн:
Ролевые группы определяют набор компьютеров или пользователей на основе сходства, которым обладают объекты в бизнесе, их территориального размещения, подразделений, функций, трудового стажа или статуса, команд, проектов или любых других связанных с бизнесом характеристик
Я создал типичную структуру отделов-подразделений компании (предыдущий скриншот).
На основании этой структуры мы создадим первые ролевые группы (отмечены стрелочками):
Так как в AD DS я никогда не использую русский язык кроме поля Description в названиях групп мы используем английские аналоги, но для удобства в поле Description можно вписать русское название.
Имя_Группы к примеру Accounting (ролевая группа) – глобальная группа в этот тип групп у нас входят пользователи.
Группа Accounting входит в состав (Member Of) группы ACL_Accounting_FC или RW или RO
Еще раз:
User –> Accounting –> ACL_Accounting_RO (Read Only) –> Папка Бухгалтерии
User –> Accounting –> ACL_Accounting_RW (Read and Write) –> Папка Бухгалтерии
User –> Accounting –> ACL_Accounting_FC (Full Control) –> Папка Бухгалтерии
ACL_Имя_Группы_FC или RW или RO — это доменно локальная группа которая регулируют уровень доступа к файлам и папкам.
Теперь раздаем разрешения:
ACL_Accounting_RO – доменно локальная группа. NTFS разрешения на папку или файл Read Only
Доменно локальная группа это:
ACL_Accounting_RW — доменно локальная группа. NTFS разрешения на папку или файл Read and Write
ACL_Accounting_FC — доменно локальная группа. NTFS разрешения на папку или файл Full Control
Кто задается вопрос о модели вложенности групп в Active Directory статья Дмитрия Буланова
Сценарий 1:
Предоставить право на чтение и запись в папку Бухгалтерия пользователю User2.
”Вложить” пользователя User2 в группу ACL_Accounting_RW — это решит поставленную задачу, но противоречит нашей логике ролевого доступа.
“Вложить” пользователя User2 в ролевую группу Accounting, в свою очередь группа Accounting должна входить в группу доступа ACL_Accounting_RW – это решит поставленную задачу, но при таком подходе встает вопрос, а если части сотрудников отдела Бухгалтерия нужно дать доступ типа Read Only или Full Control на папку Бухгалтерия? В какую ролевую группу мы должны включить этого сотрудника?
Создаем ролевую группу Accounting_RO в которую будет входить наш пользователь, а сама группа будет входит в группу доступа ACL_Accounting_RO
Можно сразу пойти по такому пути и создавать группы по такой логике:
Accounting_FC —> ACL_Accounting_FC
Accounting_RW —> ACL_Accounting_RW
Accounting_RO —> ACL_Accounting_RO
Такой подход требует больших первоначальных трудозатрат, но когда дело касается практики он себя оправдает.
Вернемся к нашему вопросу:
Предоставить права на чтение и запись в папку Бухгалтерия пользователю User2.
Решение:
Ответственный инженер добавит пользователя User2 в ролевую группу Accounting_RW.
Результат:
В итоге пользователь видит только свою папку. Так же в корневой папке он не имеет никаких прав:
Идем в папку бухгалтерия и видим, что уже в папке бухгалтерия пользователь User2 имеет права Read and Write:
Сценарий 2:
Предоставить права Read Only в папку Бухгалтерия пользователю User3.
Решение:
Ответственный инженер добавит пользователя User3 в ролевую группу Accounting_RO
Так же как и User2, User3 увидит на файловом сервере только папку Бухгалтерия, но уже записать и удалить какие либо файлы не сможет:
Сценарий 3:
Предоставить права Read and Write в папку Бухгалтерия для User7 , но при увольнении User7 захочет удалить все файлы из папки Бухгалтерия.
Решение:
Ответственный инженер добавит пользователя User7 в ролевую группу Accounting_RW.
По легенде в папку бухгалтерия складывают свою данные еще четыре бухгалтера – это User2,4,5,6, но User7 при увольнении решил удалить все бухгалтерские документы, к счастью удаление файлов у которых пользователь не является владельцем удалить нельзя.
Но если у пользователя права Full Control, то в конечной папке он может делать все что ему вздумается.
Сценарий 4:
В папке Бухгалтерия должна быть создана подпапка Документы_Клиент_Банк. Этa папка будет использовать ответственными сотрудниками для хранения документов экспортируемые из клиент банков. Эту папку должны видеть только ответственные сотрудники.
Решение:
Первым делом выключаем наследовании этой подпапки Документы_Клиент_Банк:
Удаляем все унаследованные группы кроме:
Итог, на файловом сервере папка есть, но пользователь с правами которая предоставляет ролевая группа Accounting_RW или Accounting_FC или Accounting_RO ее не видит:
Дальше создаем ролевую группу к примеру ClientBank_RW (глобальаня) –> ALC_ClientBank_RW (доменно локальная) и назначаем разрешения:
Но так как папка Документы клиент банк вложена в папку Бухгалтерия и если просто добавить пользователя в группу ClientBank_RW, то пользователь увидит такую картину:
Почему? У пользователя нет никаких прав на папку верхнего уровня Бухгалтерия.
К примеру если он взаимодействует только с папкой Документы клиент банк то ему достаточно будет дать права Accounting_RO и ClientBank_RW после этого он сможет без проблем добраться до папки Документы клиент банк.
И в заключении включаем Data Dedeuplication:
Подведем итоги:
Мы создали файл сервер с ролевым типом доступа. Каждый пользователь файлового сервера видит только свои папки. Наш файловый сервер “живет” в пространстве DFS, что позволяет в будущем при необходимости масштабировать. Задействовали технологию Data Deduplication.
Соблюли вложенность групп в AD DS.
Будет интересно узнать о ваших мыслях о правильных, на ваш взгляд, практиках развёртывания и настройки файлового сервера на базе Windows Server.
Для управления доступом к файлам и папкам в Windows на каждый объект файловой системы NTFS (каталог или файл) назначается специальный ACL (Access Control List, список контроля доступа). В ACL объекта задаются доступные операции (разрешения), которые может совершать с этим объектом пользователь и/или группы . В большинстве случаев администраторы Window для управления NFTS разрешениями на файлы и папки используют графический интерфейс File Explorer (свойства папки/файла -> вкладка Security/Безопасность) или консольную утилиту icacls. В этой статье мы рассмотрим способы управления разрешениями на объекты файловой системы NTFS из PowerShell. Вы можете использовать эти команды в скриптах и для автоматизации управлением NTFS разрешениями на файловых серверах Windows.
Содержание:
- Встроенные командлеты для управления ACL в NTFS: Get-Acl и Set-Acl
- Используем модуль NTFSSecurity для управления разрешениями из PowerShell
- Проверка эффективных NTFS разрешений на объекты из PowerShell
Встроенные командлеты для управления ACL в NTFS: Get-Acl и Set-Acl
В PowerShell v5 (Windows 10 / Windows Server 2016) для управления ACL имеется два отдельных встроенных командлета (входят в модуль Microsoft.PowerShell.Security):
- Get-Acl — позволяет получить текущие ACL для конкретного объекта на файловой системе NTFS;
- Set-Acl – используется для добавления/изменения текущих ACL объекта.
Мы не будем подробно останавливаться на этих встроенных командлетах, т.к. их функционал в большинстве случае недостаточен для управления NTFS разрешениями в реальных задачах. Рассмотрим лишь несколько типовых примеров их использования.
Выведем текущего владельца папки (файла) и список назначенных NTFS разрешений:
get-acl C:Drivers |fl
Path : Microsoft.PowerShell.CoreFileSystem::C:Drivers
Owner : WORKSTAT1root
Group : WORKSTAT1Отсутствует
Access : NT AUTHORITYAuthenticated Users Allow Modify, Synchronize
NT AUTHORITYSYSTEM Allow FullControl
BUILTINАдминистраторы Allow FullControl
BUILTINПользователи Allow ReadAndExecute, Synchronize
WORKSTAT1root Allow Modify, Synchronize
Audit :
Sddl : O:S-1-5-21-3650440056-3766451173-3310994491-1001G:S-1-5-21-3650440056-766451173-3310994491-513D:PAI(A;OICI;0x 1301bf;;;AU)(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;BU)(A;OICI;0x1301bf;;;S-1-5-21-3650440056-37664 51173-3310994491-1001)
Как вы видите, текущие разрешения также представлены в виде SDDL строки – мы вкратце рассматривали этот формат описания доступа в статье Управление правами на службы Windows.
Можно вывести только списки NTFS разрешений в более понятном формате:
(get-acl C:Drivers).access
С помощью следящей команды можно скопировать NTFS разрешения с одной папки и применить их на другую:
Get-Acl C:Drivers | Set-Acl C:Distr
Для выполнения этой операции учетная запись должна быть владельцем ресурса (Owner) и обладать правами Take Ownership.
Главная проблема при использовании Set-ACL – командлет всегда пытается сменить владельца ресурса, даже если вы просто хотите изменить NTFS разрешения. В результате, чтобы добавить права на объект нужно использовать такую конструкцию:
$path = "c:drivers"
$user = "WORKSTAT1user1"
$Rights = "Read, ReadAndExecute, ListDirectory"
$InheritSettings = "Containerinherit, ObjectInherit"
$PropogationSettings = "None"
$RuleType = "Allow"
$acl = Get-Acl $path
$perm = $user, $Rights, $InheritSettings, $PropogationSettings, $RuleType
$rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $perm
$acl.SetAccessRule($rule)
$acl | Set-Acl -Path $path
Чтобы убрать NTFS доступ к папке для пользователя или группы:
$path = "c:drivers"
$acl = Get-Acl $path
$rules = $acl.Access | where IsInherited -eq $false
$targetrule = $rules | where IdentityReference -eq "WORKSTAT1user1"
$acl.RemoveAccessRule($targetrule)
$acl | Set-Acl -Path $path
Чтобы отключить наследование для папки из PowerShell:
$path = 'C:dist'
$acl = Get-ACL -Path $path
$acl.SetAccessRuleProtection($True, $True) # первый $True указывает, является ли данный каталог защищенным, второй $True – нужно ли скопировать текущие NTFS разрешения
Set-Acl -Path $path -AclObject $acl
Используем модуль NTFSSecurity для управления разрешениями из PowerShell
Как я уже говорил, встроенный модуль для управления ACL на объекты в PowerShell не самый удобный. Для управления NTFS правами на файлы и папки в Windows лучше использовать отдельный модуль их галереи PowerShell – NTFSSecurity. Последнюю версию модуля NTFSSecurity (4.2.4 на данный момент) можно установить командой
Install-Module -Name NTFSSecurity
, или скачать вручную (линк). При ручной установке достаточно распаковать содержимое архива модуля в каталог C:WindowsSystem32WindowsPowerShellv1.0ModulesNTFSSecurity (не забудьте разблокировать скачанные файлы).
Импортируйте модуль NTFSSecurity в сессию PowerShell:
Import-Module NTFSSecurity
Выведем список команд, доступных в модуле (доступно 36 командлетов):
Get-Command -Module NTFSSecurity
Выведем текущие NTFS разрешения на каталог:
Get-Item 'c:distr' | Get-NTFSAccess
Как вы видите, текущие разрешения представлены в более удобной форме.
Чтобы предоставить конкретному пользователю и группе группе полные права на папку, выполните команду:
Add-NTFSAccess -Path C:distr -Account 'WORKSTAT1confroom','BUILTINАдминистраторы' -AccessRights 'Fullcontrol' -PassThru
Совет. По умолчанию командлеты модуля NTFSSecurity не возвращают никаких данных, чтобы команда после выполнения выводила новые ACL, используйте параметр PassThru.
Чтобы предоставить права только на верхнем уровне и не изменять разрешения на вложенные объекты (только на папку), используйте команду:
Add-NTFSAccess c:datapublic -Account corpaaivanov -AccessRights Modify -AppliesTo ThisFolderOnly
Удалить назначенные NTFS разрешения:
Remove-NTFSAccess -Path C:distr -Account 'WORKSTAT1confroom' -AccessRights FullControl -PassThru
Следующей командой можно лишить указанную учетную прав на все вложенные объекты в указанной папке (наследованные разрешения будут пропущены):
Get-ChildItem -Path C:distr -Recurse | Get-NTFSAccess -Account 'WORKSTAT1confroom' -ExcludeInherited |Remove-NTFSAccess -PassThru
Следующей командой можно назначить учетную запись Administrator владельцем всех вложенных объектов в каталоге:
Get-ChildItem -Path C:distr -Recurse -Force | Set-NTFSOwner -Account 'Administrator'
Чтобы очистить все разрешения, назначенные на объекты каталога вручную (не будет удалены унаследованные разрешения):
Get-ChildItem -Path C:distr -Recurse -Force | Clear-NTFSAccess
Включить NTFS наследование для всех объектов в каталоге:
Get-ChildItem -Path C:distr -Recurse -Force | Enable-NTFSAccessInheritance
Чтобы вывести все разрешения, которые назначены вручную, исключая унаследованные разрешения:
dir C:distr | Get-NTFSAccess –ExcludeInherited
Можно вывести разрешения, назначенные для определенного аккаунта (не путайте с эффективными разрешениями, речь о них ниже):
dir C:distr | Get-NTFSAccess -Account corpaaivanov
Проверка эффективных NTFS разрешений на объекты из PowerShell
Вы можете проверить эффективные NTFS разрешения на конкретный файл или папку с помощью командлета
Get-EffectiveAccess
. Допустим вы предоставили доступ на некоторую папку нескольким группам безопасности AD и теперь хотите понять, есть ли у конкретного аккаунта (SID) доступ к данной папке или нет. Как это сделать, не выводя состав групп AD, в которых входит его учетная запись? В этой ситуации как раз поможет функция проверки эффективные NTFS разрешений. Допустим, нужно проверить эффективные права на все вложенные папки в каталоге для пользователя confroom.
Get-ChildItem -Path c:distr -Recurse -Directory | Get-NTFSEffectiveAccess -Account 'WORKSTAT1confroom' | select Account, AccessControlType, AccessRights, FullName
Либо вы можете проверить эффективные разрешения на конкретный файл:
Get-Item -Path 'C:distrmstsc.exe.manifest' | Get-NTFSEffectiveAccess -Account 'WORKSTAT1confroom' | Format-List
Мы с вами проделали уже большую работу. Развернули сервер, настроили основные службы, создали пользователей. Давайте теперь перейдем к теме сетевого доступа. Ведь не удобно если люди будут бегать с флешками или отправлять другу другу письма.
Сетевые паки.
В прошлой статье мы создали пользователя и группу Public, допустим у нас в этой группе даже несколько пользователей. Для совместного использования файлами логично создать им сетевую папку(Public), где они могли-бы хранить файлы.
Так же нам потребуется роль Файловые службы и службы хранилища ( по умолчанию у меня стоит, если нет добавляем роль)
Создадим папку где нам удобно, зайдем в свойства паки, вкладка Доступ. Выберем общий доступ и добавим нашу группу Public.
Вот и все. Для всех пользователей группы Public доступна сетевая папка расположенная на сервере.
Теневые копии.
Папку мы создали, но встает вопрос о бэкапа файлов. Кто то может случайно удалить например или изменить важный файл. Самый простой вариант это включение Теневых копий на диске Volume Shadow Copy Service (VSS) .
Что же такое теневая копия? По сути это снапшот (снимок) всей информации, хранящейся на диске. После создания теневой копии служба VSS начинает отслеживать изменение данных на диске. VSS разбивает все данные на блоки по 16Кб каждый, и если данные в таком блоке были изменены, служба записывает в файл теневой копии этот блок целиком. Таким образом получается, что при создании следующей теневой копии данных система не копирует данные целиком, а только лишь блочные изменения. Благодаря этому система теневого копирования позволяет существенно сэкономить место на диске. Теневые копии могут храниться на том же диске, на котором хранятся данные, либо на отдельном (решение для высоконагруженных систем с большой частотой изменения данных). Все файлы теневых копий хранятся в служебном каталоге System Volume Information. Эти файлы можно отличить по имени, все они содержат в имени идентификатор службы VSS — 3808876b-c176-4e48-b7ae-04046e6cc752.
- По-умолчанию максимальное количество хранимых снапшотов для диска – 64. При превышении этого значения, служба VSS начинает циклическую перезапись теневых копий, удаляя самые ранние снапшоты.
- Под теневые копии система выделяет 10% емкости раздела, однако это значение можно изменить.
- Теневое копирование включается для тома целиком, и включить его для отдельной общей папки невозможно.
- Microsoft не рекомендует создавать снапшоты чаще, чем раз в час (однако, это всего лишь рекомендации).
Для включения данной функции переходим в Управление компьютером — Общие папки — Все задачи.
Ну и конечно нам не мешало бы настроить расписание :
Тут мы выбрали ежедневно с 9.00 до 18.00 каждые 60 минут делать копии.
Обратите внимание, что для восстановления не требуется права Администратора. То есть любой пользователь имеющий доступ может восстановить старую версию папки ( свойства — предыдущие версии).
Ошибка в тексте? Выделите её и нажмите «Ctrl + Enter»
Часто при реализации структуры на базе Windows Server возникают задачи связанные с настройкой сервера для файлов и распределением прав на пользователейгруппы.
В нашем случае мы будем настраивать файловый сервер на Windows Server 2019.
1. Подготовка.
Для того чтобы настроить файловый сервер на Windows Server 2019, требуется установить операционную систему на виртуальную или физическую машину. Активировать операционную систему и подключиться на сервер с правами администратора.
2. Установка роли файлового сервера.
Чтобы установить роль файлового сервера, требуется:
- Зайти в диспетчер серверов.
- Управление => Добавить роли и компоненты.
- В мастере добавления ролей нажимаем “Далее” до Ролей сервера.
- Устанавливаем роль “Файловый сервер” и нажимаем “Далее”.
- Нажимаем “Установить”Нажимаем “Установить”.
3. Настройка файлового сервера.
- Заходим в Диспетчер Серверов => Файловые службы и службы хранилища => Общие ресурсы.
- Нажимаем “Задачи” и выбираем “Новый общий ресурс”.
- Выбираем подходящий нам профиль общего файлового сервера. В нашем случае мы выбираем “Общий ресурс SMB — быстрый профиль” и нажимаем “Далее”.
- Выбираем том на котором будет располагаться папка для доступа по сети, нажимаем “Далее”.
- Создаем имя общего ресурса, нажимаем “Далее”.
- В следующем окне выбираем требуемые параметры и нажимаем “Далее”.
- В окне “Распределения разрешение для управления доступом” мы настраиваем параметры безопасности на сетевую папку. А именно распределяем правами разрешения для определенных пользователей или групп, нажимаем “Далее”.
- В подтверждающем окне мы видим какие параметры будут сделаны и нажимаем “Создать”.
Рисунок 1 — Подтверждение выбора в мастере создания ресурсов
Убеждаемся в правильной настройки общей папки.
4. Проверка работоспособности файлового сервера.
Заходим на рабочую машину расположенную внутри локальной сеть. Подключаемся через проводник на сервер в нашем случае мы подключаемся к \10.15.73.38 так же можно вводить адрес сервера \domain.site.ru или по имени сервера \file-server
После авторизации мы подключились на сервере и видим нашу общую папку:
Рисунок 2 — Созданная общая папка
Мы провели настройку файлового сервера, чтобы можно было пользоваться общими папками и распределять права на определенные файлы. В дальнейшем можно увеличивать количество папок и строить файловую структуру по нуждам компании.
Эти и другие настройки для наших клиентов мы осуществляем в рамках ИТ-аутсорсинга.
Ниже будет рассказано как настроить различные права доступа для конкретной директории в режиме работы нескольких пользователей. Операционная система в моем примере — Microsoft Windows Server 2008 R2. Но для других ОС семейства Windows действия будут аналогичными.
0. Задача:
На сервере в терминальном режиме работают несколько пользователей. Необходимо для папки «С:Общий ресурс» настроить права таким образом, чтобы у группы «Пользователи» были права только на чтение в этой директории, а у Администраторов и пользователя «Онянов» были права и на чтение, и на запись.
1. Решение:
Находим в проводнике необходимую папку, кликаем по ней правой кнопкой мыши и в контекстном меню выбираем «Свойства» (Properties).
В открывшемся окне свойств папки, переходим на вкладку «Безопасность» (Security) и нажимаем «Изменить…» (Edit…). Откроется окно «Разрешения для группы...» в котором видим, что для 3 системных групп уже определены параметры безопасности. В частности для группы «Администраторы» установлен полный доступ к папке. Для добавления групп и пользователей нажмем кнопку «Добавить…» (Add…).
В окне выбора пользователей и групп, нажмем «Дополнительно» (Advanced…), а в окне подбора кнопку «Поиск» (Find Now), чтобы вывести все группы и всех пользователей, существующих в системе. Выберем в результатах поиска необходимую нам группу «Пользователи» и нажмем «ОК» для добавления ее в список.
Аналогичным образом добавим в список пользователя «Онянов» и нажмем «ОК» для завершения подбора.
Теперь выберем разрешения для каждой добавленной позиции. Для группы «Пользователи» установим права только для просмотра списка, чтения и выполнения файлов и, соответственно, для пользователя «Онянов» отметим флаг «Полный доступ» .
(Здесь же можно как разрешить какие либо действия с папкой для выбранного пользователя, так и запретить, установив соответствующий флаг. Необходимо помнить, что запрещающие правила всегда в большем приоритете чем разрешающие. )
Выбрав необходимые параметры жмем «Применить» (Apply) для сохранения настроек и нажимая «ОК» закрываем все открытие окна.
Вот и все. Мы установили настройки безопасности для выбранной директории в соответствии с поставленной задачей.