Управление корзиной
В Эллес реализована поддержка функциональности корзины.
Общие сведения
Функциональность корзины (Recycle Bin) в Active Directory позволяет восстанавливать удаленные объекты без потери данных. При удалении объекта он не удаляется физически из базы данных, а отмечается как подлежащий удалению. При этом объект перемещается в контейнер Deleted Objects со всеми атрибутами, связями, информацией о членствах в группах и метаданными, что позволяет администратору в течение определенного времени восстановить его в том состоянии, в котором он находился до удаления.
Объект в корзине хранится в течение определенного срока, который задается настраиваемым атрибутом. По истечении установленного срока хранения объект физически удаляется из базы данных каталога.
Особенности и ограничения
Реализация функциональности корзины имеет следующие особенности и ограничения:
-
по умолчанию корзина отключена;
-
для включения корзины требуется функциональный уровень леса Windows Server 2008 R2 или выше;
-
корзина может быть включена только для всего леса; включение на уровне отдельного домена в рамках леса невозможно;
-
для включения корзины домен должен владеть FSMO-ролью Domain Naming Master;
-
после включения корзины невозможно восстановить ранее удаленные объекты.
Атрибуты объекта
Для управления состоянием объекта в корзине используются следующие атрибуты:
-
isDeleted:-
существует у каждого объекта каталога;
-
признак того, что объект удален, но может быть восстановлен;
-
-
isRecycled:-
существует у каждого помещенного в корзину объекта;
-
признак того, что объект удален и не может быть восстановлен;
-
-
mfsDS-deletedObjectLifetime:-
устанавливается в контейнере
CN=Directory Service,CN=Windows NT, CN=Services, CN=Configuration, DC=domain,DC=name; -
задает период, в течение которого удаленный объект может быть полностью восстановлен через корзину;
-
-
tombstoneLifetime:-
устанавливается в контейнере
CN=Directory Service,CN=Windows NT, CN=Services, CN=Configuration, DC=domain,DC=name; -
задает период, в течение которого удаленный объект может быть частично восстановлен с применением авторитативного восстановления.
Объект лишается большинства своих атрибутов и используется исключительно при репликации между контроллерами домена для уведомления других контроллеров об удалении.
По истечении данного периода объект удаляется окончательно.
-
Стадии нахождения объекта в корзине
При перемещении объекта в корзину он проходит через следующие стадии (Рис. 1):
-
Объект находится в активном состоянии.
-
Администратор удаляет объект.
-
Объект перемещается в контейнер
Deleted Objects. -
Для объекта устанавливается признак
isDeleted. Практически все атрибуты объекта сохраняются.
На этом этапе объект удален логически и при необходимости может быть восстановлен администратором из корзины без потери данных.
В этом состоянии объект находится в течение периода, заданного атрибутомmsDS-deletedObjectLifetime. По умолчанию он равен периоду хранения объекта в корзине после утилизации (установки атрибутаisRecycled). -
Объект утилизируется. Для него устанавливается признак
isRecycled. Запись об объекте остается в базе данных, но практически все атрибуты удаляются.
На этом этапе объект не может быть восстановлен администратором.
В новом лесу по умолчанию период нахождения объекта в этом состоянии составляет 180 дней. -
Объект физически удаляется из корзины.
Операции
Для управления функциональностью корзины с помощью утилиты samba-tool используется подкоманда recyclebin.
Просмотр состояния функциональности корзины
Формат вызова
Общий формат вызова:
samba-tool recyclebin status [options]
Подкоманда возвращает информацию о статусе функциональности корзины:
-
enabled— функциональность корзины включена; -
disabled— функциональность корзины отключена.
Включение функциональности корзины
Формат вызова
Общий формат вызова:
samba-tool recyclebin enable [options]
Подкоманда включает функциональность корзины на уровне леса. Ее достаточно выполнить на одном контроллере домена Эллес с доступом к базе данных каталога на запись и чтение (RWDC). На остальных контроллерах домена Эллес в лесу корзина будет включена автоматически.
Подкоманда выполняется один раз — отключить корзину после этого невозможно.
По умолчанию используется интерактивный режим, предусматривающий запрос подтверждения от пользователя. Для принудительного включения корзины без дополнительных проверок и запроса подтверждения используйте ключ -f|--force.
| Для запуска подкоманды требуются права суперпользователя (root/sudo). |
Просмотр содержимого корзины
Формат вызова
Общий формат вызова:
samba-tool recyclebin list [options]
Подкоманда выводит список находящихся к корзине объектов.
Для ограничения списка объектов при вызове подкоманды в ключе -e|--expression может использоваться выражение для поиска в БД LDAP.
По умолчанию при вызове подкоманды отображается следующая информация:
-
количество объектов, находящихся в корзине (контейнер
CN=Deleted Objects,DC=domain,DC=name) или соответствующих заданному LDAP-фильтру; -
записи об удаленных объектах в формате:
dn: 'CN=<object-cn>\0ADEL:<ObjectGUID>,CN=Deleted Objects,DC=domain,DC=name'
Для отображения минимального набора атрибутов удаленного объекта, необходимого для его однозначной идентификации, при вызове подкоманды также может быть передан ключ -a|--print-all.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
-e|--expression— выражение для поиска в БД LDAP; -
-a|--print-all— вывод минимального набора атрибутов удаленного объекта, необходимого для его однозначной идентификации.
Примеры
Пример отображения содержимого корзины:
samba-tool recyclebin list Deleted objects count: 6 # record 1 dn: 'CN=object1\0ADEL:2fdb1731-e022-43a2-b9fc-2a14bcb62e8d,CN=Deleted Objects,DC=domain,DC=name' # record 2 dn: 'CN=object2\0ADEL:46991241-293e-49ce-ad9e-209ab0ca2aa3,CN=Deleted Objects,DC=domain,DC=name' # record 3 dn: 'CN=object3\0ADEL:fda13375-5027-4870-b05a-090f5000437b,CN=Deleted Objects,DC=domain,DC=name' # record 4 dn: 'CN=object4\0ADEL:0c947ae6-fae0-4e33-92bc-7e016a2bff8,CN=Deleted Objects,DC=domain,DC=name' # record 5 dn: 'CN=object5\0ADEL:23e9be91-3f95-460d-88bf-11ba0478f818,CN=Deleted Objects,DC=domain,DC=name' # record 6 dn: 'CN=object6\0ADEL:45e9499e-d896-481f-9706-7051667a29a3,CN=Deleted Objects,DC=domain,DC=name'
Пример использования LDAP-фильтра для поиска в корзине удаленных объектов определенного класса с выводом минимального набора атрибутов, необходимого для их однозначной идентификации:
samba-tool recyclebin list \ --expression "(&(objectClass=user))" \ --print-all Deleted objects count: 1 # record 1 dn: 'CN=user1\0ADEL:46991241-293e-49ce-ad9e-209ab0ca2aa3,CN=Deleted Objects,DC=domain,DC=name' objectClass: 'top' objectClass: 'person' objectClass: 'organizationalPerson' objectClass: 'user' whenCreated: '20240917181459.0Z' whenChanged: '20240917181510.0Z' uSNCreated: '15867' uSNChanged: '15870' objectGUID: '46991241-293e-49ce-ad9e-209ab0ca2aa3' lastLogon: '0' primaryGroupID: '513' objectSid: 'S-1-5-21-1159061634-2679507100-403793082-2179' accountExpires: '9223372036854775807' sAMAccountName: 'user1' userPrincipalName: 'user1@domain.name' lastKnownParent: 'CN=Users,DC=domain,DC=name' msDS-LastKnownRDN: 'user1'
Восстановление удаленного объекта из корзины
Формат вызова
Общий формат вызова:
samba-tool recyclebin restore <del_dn> [new_dn] [options]
При вызове подкоманды в качестве первого аргумента ожидается DN-имя удаленного объекта, находящегося в корзине. Для получения DN-имени может использоваться подкоманда samba-tool recyclebin list (см. «Просмотр содержимого корзины»).
По умолчанию объект восстанавливается в том же контейнере, в котором он размещался в момент удаления.
Для восстановления в другом контейнере необходимо указать его DN в качестве второго аргумента при вызове подкоманды.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.
Примеры
Пример восстановления удаленного объекта из корзины в исходном контейнере:
samba-tool recyclebin restore \ 'CN=user1\0ADEL:46991241-293e-49ce-ad9e-209ab0ca2aa3,CN=Deleted Objects,DC=domain,DC=name' Object has been restored.
Пример восстановления удаленного объекта из корзины в контейнере, отличном от исходного:
samba-tool recyclebin restore \ 'CN=user1\0ADEL:46991241-293e-49ce-ad9e-209ab0ca2aa3,CN=Deleted Objects,DC=domain,DC=name' \ 'CN=NewGroup,OU=OrgUnit,DC=domain,DC=name' Object has been restored.