Обсуждение участника:Nir

Материал из ALT Linux Wiki

Введение в Active Directory File System

Настройки Active Directory представляются деревьями LDAP. Данный подход сложен для человеческого восприятия. Существует утилита называемая hadfs, которая представляет дерево объектов Active Directory в виде структуры файлов и каталогов. Таким образом становится возможным редактировать настройки контроллера домена простыми способами - в текстовом редакторе, с помощью скриптов или с помощью специализированного ПО.

Сборка и установка

Сборка из исходного кода

Исходный код находится по адресу: https://github.com/omgbebebe/hadfs

Данное ПО написано на языке программирования Haskell, потому вам понадобится компилятор (например, GHC - Glasgow Haskell Compiler) и, желательно, утилиты cabal-install или stack.

Вам понадобятся следующие зависимости:

  • git
  • libfuse-devel
  • libldap-devel
  • libsasl2-devel
  • libsasl2-plugin-gssapi
  • ghc8.6.4
  • ghc8.6.4-cabal-install

В репозитории с программой находятся детальные инструкции, но, в целом, решение проблемы для опытных специалистов можно свести к процедуре:

sudo apt-get install git libfuse-devel libldap-devel libsasl2-devel libsasl2-plugin-gssapi ghc8.6.4 ghc8.6.4-cabal-install
git clone https://github.com/omgbebebe/hadfs.git
cd hadfs
git submodule update --init --recursive
cabal update
cabal new-build

Использование

Подключение схемы

Для получения дерева объектов в требуемом вам каталоге необходимо подключить утилиту hadfs-exe к контроллеру домена. Сделать это можно командой:

hadfs-exe dc0.domain.alt /mnt/dc0.domain.alt

Данное действие импортирует схему от контроллера домена dc0.domain.alt в каталог /mnt/dc0.domain.alt.

Специальные файлы

Объекты дерева представлены в виде директорий, а их свойства представлены в виде текстовых файлов. Для изменения свойства необходимо, чтобы текстовый редактор записывал файл после изменения целиком. Вы можете столкнуться с проблемами, например, при использовании редактора mcedit.

Среди специальных файлов в каталогах (дереве) можно встретить следующие:

  • .chpwd - доступный только на запись файл, куда вы можете записать новый пароль для пользователя.
  • .attributes - Атрибуты объекта в виде LDIF файла.
  • .attributes.json - Атрибуты объекта в виде JSON.

Также в каталоге запуска программы, в случае ошибок, вы можете встретить файл .lasterror, который хранит в себе текст последней ошибки.

Диагностика проблем

  • Q1: hadfs-exe: ldapGSSAPISaslBind: LDAPException LdapAuthUnknown(-6): Unknown authentication method (SASL(-4): no mechanism available: No worthy mechs found)
  • A1: Установите пакет libsasl2-plugin-gssapi


  • Q2: hadfs-exe: ldapGSSAPISaslBind: LDAPException LdapLocalError(-2): Local error (SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (No Kerberos credentials available (default cache: KEYRING:persistent:500)))
  • A2: Проверьте, что имя контроллера домена можно разрешить в IP-адрес.


  • Q3: hadfs-exe: ldapGSSAPISaslBind: LDAPException LdapServerDown(-1): Can't contact LDAP server
  • A3: Проверьте, что порты LDAP открыты на контроллере домена.