Изучаем Linux, 302 (смешанные среды): Файлы базы данных Trivial Database

Работа с файлами базы данных Samba Trivial Database и устранение возможных проблем

Samba использует файлы базы данных Trivial Database для хранения постоянных и временных данных, обеспечивая общий доступ к файлам и принтерам в смешанных средах Linux/Windows. Эта статья поможет вам подготовиться к сдаче экзамена LPI-302; вы узнаете о формате Trivial Database (TDB), который Samba использует для хранения информации, а также о том, как просматривать TDB-файлы и создавать для них резервные копии.

Шон Уолберг, старший сетевой инженер, P.Eng

Шон Уолберг работал с Linux- и UNIX-системами с 1994 года в академических, корпоративных и "провайдерских" кругах. Он широко освещает вопросы системного администрирования в течение нескольких последних лет. С ним можно связаться по адресу sean@ertw.com.



03.04.2012

Об этой серии

Эта серия статьей поможет вам освоить задачи администрирования операционной системы Linux. Вы можете использовать материалы этих статей для подготовки к экзаменам программы LPIC третьего уровня (LPIC-3).

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC-3. Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит текущие (по состоянию на ноябрь 2010 года) цели экзаменов сертификации LPIC-3.

Краткий обзор

В этой статье рассматриваются следующие темы:

  • Создание резервных копий файлов Samba Trivial Database (TDB).
  • Восстановление TDB-файлов.
  • Определение признаков повреждений TDB-файлов.
  • Просмотр и редактирование содержимого TDB-файлов.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 302 (специализация "Смешанные среды") и содержит материалы цели 310.3 темы 310. Цель имеет вес 1.

Предварительные требования

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать продвинутыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все описанные команды. В частности, предполагается, что читатель умеет работать с командной строкой Linux и в общих чертах понимает назначение Samba (о чем рассказывалось в предыдущей статье "Изучаем Linux, 302: основные принципы"). Для выполнения примеров этой статьи на вашем компьютере должно быть инсталлировано программное обеспечение Samba. Для выполнения некоторых действий потребуется сетевое окружение, в котором используется протокол Server Message Block (SMB)/Common Internet File System (CIFS).


Понимание TDB-файлов

О факультативном экзамене LPI-302

Как и многие другие программы, программа сертификации Linux Professional Institute (LPIC) предусматривает различные уровни сертификации, где для получения каждого последующего уровня необходимо обладать более глубокими знаниями и практическим опытом. Экзамен LPI-302 – это факультативный экзамен третьего уровня программы LPIC, требующий продвинутых знаний в области системного администрирования Linux.

Для получения сертификата LPIC третьего уровня (LPIC-3) необходимо успешно сдать два экзамена первого уровня (101 и 102), два экзамена второго уровня (201 и 202), а также базовый экзамен 301 третьего уровня (LPIC-3). Если вы получили сертификат третьего уровня, вы можете сдавать факультативные экзамены по определенным специализациям, например, экзамен LPI-302.

В процессе работы Samba использует большой объем информации, начиная от локальных паролей и заканчивая списком клиентов. Некоторые данные используются временно и могут быть удалены при перезагрузке Samba, а некоторые являются постоянными, и их нельзя терять. Иногда данные невозможно или не нужно хранить в оперативной памяти, поскольку они могут иметь слишком большой объем, к ним могут редко обращаться, либо они должны сохраняться при перезагрузках. Для этих случаев команда разработчиков Samba разработала базу данных под названием Trivial Database. Эта база данных является эффективным хранилищем записей типа ключ-значение; это означает, что данные хранятся, сортируются и извлекаются с помощью уникальных ключей, и что при этом не используется объединение таблиц, как это происходит в реляционных базах данных. Хранилища типа "ключ-значение" и, в частности, TDB, позволяют быстро сохранять информацию на жесткий диск и получать ее обратно.

Хранилища типа "ключ-значение"

Несмотря на то, что у TDB имеется много альтернатив, например, GNU Database Manager (GDBM), проект Samba предъявляет особые требования к одновременной записи данных в БД несколькими процессами, а также к поддержке блокировок внутренних областей данных. Поэтому команда разработчиков Samba создали собственный менеджер базы данных и назвали его Trivial Database Manager. Дальнейшее усовершенствование TDB в рамках проекта Clustered TDB (CTDB) реализовало поддержку кластеризации, которая может использоваться в других проектах.

Создайте ваш собственный канал

Вы можете создать ваш собственный RSS, Atom или HTML канал обновлений и получать уведомления о новых или обновленных статьях нашего сайта. Для этого перейдите на страницу developerWorks RSS feeds, выберите зону Linux, установите флажок Статьи и введите в качестве ключевой фразы Linux Professional Institute, после чего выберите требуемый тип канала.

Если вы знакомы с реляционными СУБД, такими как IBM DB2, MySQL или PostgreSQL, то вы заметите, что по сравнению с ними хранилища типа "ключ-значение" достаточно примитивны. Тогда как реляционные базы данных могут содержать таблицы с несколькими столбцами, хранилища "ключ-значение" фактически содержат только два столбца: столбец с ключом и столбец со значением. В реляционных СУБД для извлечения данных из нескольких таблиц и столбцов используется структурированный язык запросов (Structured Query Language, SQL), а в хранилищах типа "ключ-значение" – только операции со столбцом ключей.

В силу своей простоты хранилища "ключ-значение" могут использоваться для ограниченного круга задач, однако при этом они обеспечивают очень высокое быстродействие. Хранилище "ключ-значение", по сути, представляет собой хэш-таблицу, хранящуюся на диске, поэтому местонахождение фрагмента данных можно предугадать, не обращаясь к индексу.

В частности, TDB была разработана для обработки множественных конкурирующих процессов записи и двоичных данных, таких, как структуры внутренних данных. Поэтому самым быстрым способом сохранения и извлечения этих данных является использование двоичного формата. Двоичное хранилище позволяет уменьшить размер файла базы данных и избавляет от необходимости преобразовывать данные в различные форматы в процессе записи информации в базу данных и ее извлечения оттуда.

TDB-файлы, используемые в Samba

Samba хранит свои TDB-файлы в нескольких местах. Самый простой способ найти эти файлы – просмотреть вывод команды smbd -b, представленный в листинге 1.

Листинг 1. Вывод информации о сборке smbd
# smbd -b
...
Paths:
   SBINDIR: /usr/sbin
   BINDIR: /usr/bin
   SWATDIR: /usr/share/swat
   CONFIGFILE: /etc/samba/smb.conf
   LOGFILEBASE: /var/log/samba
   LMHOSTSFILE: /etc/samba/lmhosts
   LIBDIR: /usr/lib
   MODULESDIR: /usr/lib/samba
   SHLIBE1T: so
   LOCKDIR: /var/lib/samba
   STATEDIR: /var/lib/samba
   CACHEDIR: /var/lib/samba
   PIDDIR: /var/run
   SMB_PASSWD_FILE: /var/lib/samba/private/smbpasswd
   PRIVATE_DIR: /var/lib/samba/private

На местоположения, в которых могут храниться TDB-файлы, указывают несколько путей в листинге 1. К счастью, многие из них одинаковы, поэтому количество вариантов сокращается. Например, переменные LOCKDIR, STATEDIR и CACHEDIR указывают на директорию /var/lib/samba, а переменная PRIVATE_DIR является поддиректорией с именем private. Вы можете самостоятельно зайти в эти директории и поискать в них TDB-файлы.

TDB-файлы можно разделить на две основные группы: постоянные и временные. В таблице 1 перечислены имена и описания постоянных файлов.

Таблица 1. Постоянные TDB-файлы
Имя файлаНазначение
account_policy.tdbХранит политики учетных записей, такие как пороговые значения блокировок и длина паролей.
group_mapping.tdbХранит информацию о сопоставлениях между идентификаторами пользователей Windows NT (SID) и UNIX®.
ntdrivers.tdbХранит информацию о драйверах принтеров.
ntforms.tdbХранит информацию о формах очереди печати, например, размеры бумаги.
ntprinters.tdbХранит информацию о параметрах инициализации принтеров.
passdb.tdbИспользуется в некоторых режимах безопасности для хранения учетных данных аутентификации.
registry.tdbБазовый реестр, к которому можно получить доступ с других Windows-компьютеров.
secrets.tdbХранит локальные секретные значения (например, ключи machine key компьютеров) и учетные данные (например, пароли LDAP).
share_info.tdbХранит списки контроля доступов (ACL) для каждого локального общего ресурса.
winbindd_idmap.tdbХранит информацию о сопоставлениях между идентификаторами пользователей Windows NT (SID) и динамически создаваемыми пользователями при использовании winbind.

Для всех TDB-файлов, перечисленных в таблице 1, следует создавать резервные копии. Эта процедура будет описана далее в этой статье.

Помимо постоянных файлов в Samba используется множество временных TDB-файлов, в которых хранится информация о состоянии и кэшированные данные. Эти файлы не нужно резервировать, поскольку они заново создаются при каждом запуске Samba.


Использование TDB-файлов

Управление TDB-файлами в Samba осуществляется с помощью трех инструментов:

  • tdbdump: позволяет выводить содержимое TDB-файлов.
  • tdbbackup: позволяет создавать и проверять резервные копии TDB-файлов.
  • tdbtool: позволяет создавать, просматривать и редактировать TDB-файлы.

Просмотр содержимого TDB-файла

Самый быстрый способ заглянуть в TDB-файл – это сделать его дамп с помощью команды tdbdump. В листинге 2 показан дамп файла ntprinters.tdb.

Листинг 2. Использование команды tdbdump
[root@bob ~]# tdbdump /var/lib/samba/ntprinters.tdb 
{
key(21) = "GLOBALS/c_setprinter\00"
data(4) = "\00\00\00\00"
}
{
key(13) = "SECDESC/test\00"
data(140) = "\80\00\00\00\00\00\02\00\80\00\00\00\01\00\04\80\14\00\00\00$\00\00
\00\00\00\00\004\00\00\00\01\02\00\00\00\00\00\05 \00\00\00 \02\00\00\01\02\00\00
...
\00 \02\00\00\00\02\18\00\0C\00\0F\10\01\02\00\00\00\00\00\05 \00\00\00 \02\00\00"
}
{
key(17) = "SECDESC/cups-pdf\00"
data(140) = "\80\00\00\00\00\00\02\00\80\00\00\00\01\00\04\80\14\00\00\00$\00\00
\00\00\00\00\004\00\00\00\01\02\00\00\00\00\00\05 \00\00\00 \02\00\00\01\02\00\00
...
\00 \02\00\00\00\02\18\00\0C\00\0F\10\01\02\00\00\00\00\00\05 \00\00\00 \02\00\00"
}

Из листинга 2 видно, что база данных содержит три ключа. Первый ключ длиной в 21 байт (длина указывается в скобках) называется GLOBALS/c_setprinter и содержит в конце имени NULL-символ (ноль в кодировке ASCII). Непечатные символы отображаются в шестнадцатеричном формате (символ обратной косой черты, после которой следуют две шестнадцатеричные цифры). Значение первого ключа длиной в 4 байта состоит только из NULL-символов.

Следующие два ключа называются SECDESC/test и SECDESC/cups-pdf, и оба заканчиваются NULL-символом. Значения ключей хранятся в нечитаемом двоичном формате, поэтому они отображаются в виде шестнадцатеричных непечатных символов.

Создание резервных копий и восстановление TDB-файлов

В таблице 1 были перечислены несколько постоянных TDB-файлов, которые должны оставаться в системе после перезагрузки и для которых нужно создавать резервные копии. Как и в большинстве баз данных, нельзя просто скопировать файл, поскольку его копия может оказаться поврежденной. Это может случиться в тех случаях, если в файл, который вы копируете, записываются какие-либо данные; это приводит к несогласованному состоянию резервной копии. Другой способ создания резервных копий заключается в остановке демона Samba и последующем копировании файлов.

Самый простой способ создания резервных копий TDB-файлов – это использование утилиты tdbbackup из пакета Samba. Эта утилита может безопасно создавать копию TDB-файла, даже если в него записываются данные. Утилита tdbbackup также может проверять целостность TDB-файлов и автоматически восстанавливать их из резервных копий в случае обнаружения ошибок. В листинге 3 приведен пример создания резервной копии TDB-файла.

Листинг 3. Создание резервной копии TDB-файла
[root@bob samba]# ls -l account_policy.*
-rw------- 1 root root 8192 Apr  7  2008 account_policy.tdb
[root@bob samba]# tdbbackup account_policy.tdb 
[root@bob samba]# ls -l account_policy.*
-rw------- 1 root root  8192 Apr  7  2008 account_policy.tdb
-rw------- 1 root root 36864 Dec  8 21:42 account_policy.tdb.bak
[root@bob samba]# tdbdump account_policy.tdb | md5sum
53ea608f0d93061480549c511756b778  -
[root@bob samba]# tdbdump account_policy.tdb.bak | md5sum
53ea608f0d93061480549c511756b778  -

Первая команда в листинге 3 просто выводит список всех файлов, начинающихся с account_policy, с целью показать, что они существуют в единственном экземпляре. Затем с помощью команды tdbbackup account_policy.tdb создается резервная копия базы политик учетных записей. Третья команда снова выводит список всех файлов, начинающихся с account_policy, с целью показать, что был создан новый файл с расширением .bak. Размер резервной копии отличается от размера оригинала, но если сделать дампы каждого файла и посчитать их MD5-хэши, то можно убедиться в том, что их контрольные суммы совпадают. Больший размер файла не является проблемой, поскольку содержимое каждой пары "ключ-значение" идентично.

Если по какой-либо причине исходный файл account_policy.tdb будет поврежден (например, при аварийной перезагрузке компьютера), можно восстановить его из резервной копии. Эта процедура показана в листинге 4.

Листинг 4. Проверка и восстановление TDB-файла
[root@bob samba]# ls -l account_policy.tdb
-rw------- 1 root root 1213 Dec  8 21:49 account_policy.tdb
[root@bob samba]# tdbbackup -v account_policy.tdb
tdb_oob len 1256 beyond eof at 1213
restoring account_policy.tdb
[root@bob samba]# ls -l account_policy.tdb*
-rw------- 1 root root 36864 Dec  8 21:49 account_policy.tdb
-rw------- 1 root root 36864 Dec  8 21:42 account_policy.tdb.bak
[root@bob samba]# tdbbackup -v account_policy.tdb
account_policy.tdb : 17 records
[root@bob samba]# tdbdump account_policy.tdb | md5sum
53ea608f0d93061480549c511756b778  -

Первая команда в листинге 4 показывает, что файл сильно уменьшился в размере. Затем снова запускается команда tdbbackup с флагом –v для проверки целостности TDB-файла. Если файл окажется поврежденным, то вы увидите список ошибок с последующим сообщением о том, что данный файл был восстановлен. Сравнив размеры файлов с помощью команды ls, можно увидеть, что текущая база данных была замещена своей резервной копией.

Команду tdbbackup можно безбоязненно запускать несколько раз. Если эта команда работает с неповрежденным файлом базы данных (например, предпоследняя команда в листинге 4), то она просто выводит количество строк в файле. Команда MD5 также показывает нам ту контрольную сумму, которую мы видели до того, как файл был поврежден.

Примечание. Команда tdbbackup поддерживает использование групповых символов, поэтому вы можете резервировать или восстанавливать несколько файлов одновременно.

Изменение TDB-файлов

Утилита tdbtool позволяет изменять данные внутри TDB-файлов, а также смотреть отдельные ключи и значения прямо в файле, избавляя от необходимости делать его дамп и сортировать вывод.

Предупреждение

При работе с Samba редко возникает необходимость изменения данных внутри TDB-файла, поскольку либо файлы содержат структуры внутренних данных, либо для этого существуют более удобные инструменты. Тем не менее, рассмотрение этой темы входит в цель экзамена, поэтому необходимо рассказать о ней.

Команда tdbtool может принимать команды из командной строки или работать в интерактивном режиме. Чтобы выполнить все необходимые действия в командной строке, запустите команду tdbtool example.tdb команда опции, где example.tdb – это имя вашего файла, а команда – команда, после которой идут все необходимые опции. Для использования оболочки tdb просто запустите команду tdbtool, по желанию указав в командной строке имя файла.

Для создания базы данных просто запустите tdbtool, а затем введите команду create test.tdb. В результате на жестком диске будет создана база данных test.tdb, открытая для записи в рамках текущего сеанса работы. Если у вас уже имеется TDB-файл, можно указать в командной строке его имя или использовать команду open. Интересно, что единственный способ создания TDB-файла непосредственно из командной строки требует указать имя дважды, например, tdbtool test.tdb create test.tdb, в результате чего выдается ошибка, но база данных успешно создается.

После создания новой базы данных или открытия существующей доступны следующие опции:

  • dump: полностью показывает содержимое базы данных, как это делает tdbdump.
  • keys: показывает только ключи в кодировке ASCII или (вместе с командой hexkeys) в шестнадцатеричном формате.
  • erase: полностью удаляет содержимое базы данных без подтверждения.
  • info: показывает общее количество ключей и байтов в базе данных.
  • check: проверяет целостность базы данных.
  • speed: оценивает быстродействие операций чтения и записи в базу данных.
  • show key: выводит значения указанного ключа.
  • delete key: удаляет ключ вместе с его значением.

Для добавления и управления данными используются команды insert и store. Каждая из этих команд принимает параметры для ключа и значения (параметры для значения являются необязательными). Если не указывать значение ключа, то оно будет содержать нулевой байт данных.

Вставка записи (операция insert) означает создание новой записи, тогда как при сохранении записи (операция store) ее старое значение замещается новым. Отличия этих команд продемонстрированы в листинге 5.

Листинг 5. Вставка и сохранение записей
tdb> insert mykey myvalue
tdb> insert mykey newvalue
insert failed
tdb> store mykey newvalue
Storing key:

key 5 bytes
mykey
data 8 bytes
[000] 6E 65 77 76 61 6C 75 65                           newvalue
tdb> store newkey someothervalue
Storing key:

key 6 bytes
newkey
data 14 bytes
[000] 73 6F 6D 65 6F 74 68 65  72 76 61 6C 75 65        someothe rvalue

В листинге 5 выполняется следующая последовательность действий:

  1. Вставка нового ключа с именем mykey и значением myvalue. Эта операция выполнена успешно.
  2. Вставка ключа с тем же именем, но с другим значением. Эта операция завершилась с ошибкой, поскольку ключ с таким именем уже существует.
  3. Вместо вставки ключа используется операция сохранения. Эта операция выполнена успешно с более подробным выводом.
  4. Сохранение нового ключа с новым значением. Эта операция выполнена успешно, даже не смотря на то, что ключа с таким именем не существует.

В командной оболочке tdb можно использовать транзакции, позволяющие выполнять последовательность команд и применять либо отклонять их как единую группу. В листинге 6 приведен пример выполнения двух транзакций.

Листинг 6. Использование транзакций
tdb> transaction_start
tdb> insert somekey somevalue
tdb> show somekey

key 7 bytes
somekey
data 9 bytes
[000] 73 6F 6D 65 76 61 6C 75  65                       somevalu e
tdb> transaction_cancel
tdb> show somekey
fetch failed
tdb> transaction_start
tdb> insert somekey somevalue
tdb> transaction_commit
tdb> show somekey

key 7 bytes
somekey
data 9 bytes
[000] 73 6F 6D 65 76 61 6C 75  65                       somevalu e

Начало транзакции в листинге 6 определяется командой transaction_start. Затем выполняется вставка нового ключа. Если бы другой процесс в это время считывал данные из БД, то он не увидел бы этот ключ, поскольку транзакция еще не подтверждена (процесс с открытой транзакцией также не видит новый ключ). Затем транзакция отменяется командой transaction_cancel. Мы видим, что ключ отсутствует в базе данных.

После этого выполняется та же последовательность действий, но транзакция не отменяется, а подтверждается командой transaction_commit. Теперь ключ существует в базе данных, и его видят все пользователи.

Если база данных находится в режиме транзакции, доступ для других пользователей может блокироваться; это означает, что они будут ждать окончания транзакции. В связи с этим будьте аккуратны при использовании транзакций в рабочей базе данных! Несмотря на то, что транзакции являются мощным средством защиты данных, их чрезмерное использование потенциально может влиять на быстродействие.


Что можно использовать помимо TDB

В зависимости от конфигурации учетные записи пользователей могут храниться в различных местах. Существуют две утилиты, которые позволяют настраивать взаимодействие с хранилищами данных с помощью интерфейса командной строки. Например, при помощи одних и тех же команд можно обращаться к данным, хранящимся как в TDB-файлах, так и в каталоге LDAP.

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

Утилита smbpasswd позволяет добавлять и удалять учетные записи пользователей и компьютеров, а также изменять пароли. Наиболее часто она используется именно для смены пользователями своих паролей, либо для смены администраторами паролей других пользователей.

В следующих статьях вы более подробно узнаете о различных хранилищах паролей, но на высоком уровне пароли Samba могут храниться по-разному в зависимости от версии Samba и операционных систем, с которыми она интегрируется. И smbpasswd, и pdbedit (описывается в следующем разделе) могут работать с любыми хранилищами, в том числе, отличными от TDB.

Клиенты Microsoft передают пароли по сети в виде собственных Microsoft-хэшей, а не в открытом виде или в виде UNIX-хэшей. Это означает, что невозможно взять Microsoft-хэш пароля и сопоставить его с паролем, хранящимся в базе данных паролей UNIX. Именно поэтому для хранения Microsoft-хэшей Samba должна использовать отдельную базу данных, которая называется хранилищем паролей.

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

Утилита pdbedit управляет базой данных пользователей и политиками учетных записей Samba. Она умеет выполнять все те же действия, что и smbpasswd, а также управлять политиками и переносить учетные данные между различными хранилищами.

Чтобы получить полный список пользователей, хранящийся в базе данных, запустите команду pdbedit -L. Указав флаг -v, вы получите еще более подробную информацию о пользователях, как показано в листинге 7.

Листинг 7. Подробная информация о пользователях
[root@bob tmp]# pdbedit -L -v
---------------
Unix username:        sean
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-2287037134-1443008385-640796334-1001
Primary Group SID:    S-1-5-21-2287037134-1443008385-640796334-513
Full Name:            Sean
Home Directory:       \\bob\sean
HomeDir Drive:
Logon Script:
Profile Path:         \\bob\sean\profile
Domain:               BOB
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    Mon, 24 May 2010 21:28:49 CDT
Password can change:  Mon, 24 May 2010 21:28:49 CDT
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Для работы с утилитой pdbedit необходимо обладать привилегиями пользователя root. С ее помощью можете изменять различные настройки пользователей (например, разрешенное время входа в систему), пароли и домашние директории, как если бы вы работали с утилитами Microsoft.

Для каждого параметра пользователя используются различные опции командной строки, поэтому для получения точной информации обратитесь к man-странице pdbedit(8).

Также важно упомянуть о том, что Samba воспринимает учетные записи пользователей и компьютеров одинаково. В листинге 8 показана база данных паролей сервера Samba, настроенного в качестве контроллера домена.

Листинг 8. База данных паролей, содержащая пароли компьютеров
[root@sergeant ~]# pdbedit -L
root:0:root
mythupstairs$:4294967295:MYTHUPSTAIRS
BOB$:1043:Machine
sean:1002:Sean,,,
sergeant$:4294967295:Machine

Имена, оканчивающиеся знаком доллара ($) – это учетные записи компьютеров, используемые для аутентификации компьютеров в домене. Соответствующий секретный ключ может храниться в файле secrets.tdb на удаленном сервере и в файле passdb.tdb на контроллере домена.


Что дальше

Эта статья завершает тему 310 "Архитектура, принципы и схема работы". Следующая статья открывает новую тему и содержит материалы цели 311.1 темы 311 ("Компиляция и установка Samba"). В ней рассказывается, как загрузить исходный код Samba и скомпилировать его.

Ресурсы

Научиться

Получить продукты и технологии

  • Загрузите Samba (EN) и следите за последними новостями разработки проекта.
  • Загрузите исходный код TDB (EN), если вы планируете использовать TDB в ваших проектах.
  • Если вам необходим графический интерфейс или более глубокая интеграция с различными средами, взгляните на инструменты для работы с учетными записями (EN) для Samba.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=808247
ArticleTitle=Изучаем Linux, 302 (смешанные среды): Файлы базы данных Trivial Database
publish-date=04032012