Смоленск 1.6 Api ald-admin

kold2015

New member
Сообщения
24
#1
Здравствуйте. Подскажите есть ли такой api который позволяет из c/c++ выполнять администрирование бд astra linux directory( грубо говоря аналог консольной утилиты ald-admin).
Если есть то можно название пакета и заголовочного файла
 

Olej

New member
Сообщения
1 307
#2
есть ли такой api который позволяет из c/c++ выполнять администрирование бд astra linux directory( грубо говоря аналог консольной утилиты ald-admin).
Безусловно есть, потому что без такого API было бы невозможно написать ту же утилиту ald-admin ... да и любое ПО относящееся к ALD.
Вопрос может быть только в том, является ли API (а ещё больше его документация) публично доступным, открытым...
Но это вам нужно напрямую обращаться с вопросом к фирме разработчику Astra Linux.
 

Olej

New member
Сообщения
1 307
#3
Если есть то можно название пакета и заголовочного файла
Это вы можете сами посмотреть .. как-то так:
Код:
olej@astra:~$ aptitude search ald-
p   ald-admin                               - Astra Linux Directory administration tool       
p   ald-admin-common                        - Astra Linux Directory administration metapackage
p   ald-client                              - Astra Linux Directory client                     
p   ald-client-common                       - Astra Linux Directory client metapackage         
p   ald-client-fs                           - Astra Linux Directory File Server               
p   ald-dev                                 - Development files for Astra Linux Directory     
p   ald-doc                                 - Documentation for Astra Linux Directory         
p   ald-file-server-common                  - Astra Linux Directory file server metapackage   
p   ald-server                              - Astra Linux Directory Server metapackage         
p   ald-server-common                       - Astra Linux Directory server metapackage         
p   ald-server-dc                           - Astra Linux Directory DC Server                 
p   fly-admin-ald-client                    - ALD client GUI configution tool                 
p   fly-admin-ald-server                    - management console                               
p   gmc-common-ald-dev                      - development files for management console         
p   golang-github-oschwald-geoip2-golang-de - Unofficial MaxMind GeoIP2 Reader for Go         
p   golang-github-oschwald-maxminddb-golang - MaxMind DB Reader for Go
ald-dev и ald-doc - это, скорее всего, то что вас интересует.
 

Olej

New member
Сообщения
1 307
#4
ald-dev и ald-doc - это, скорее всего, то что вас интересует.
Можете ещё так глянуть:
Код:
olej@astra:~$ aptitude show ald-dev
Пакет: ald-dev                                  
Версия: 1.7.75
Новый: да
Состояние: не установлен
Мультиархитектура: такая же
Приоритет: дополнительный
Раздел: non-free/libdevel
Сопровождающий: Egor Lebedev <support@rusbitech.ru>
Архитектура: amd64
Размер в распакованном виде: 333 k
Зависит: ald-client (= 1.7.75), libreadline-dev, libpcre3-dev, libcap-dev, libldap2-dev (>=
         2.4.28), libkrb5-dev (>= 1.12.1), zlib1g-dev
Описание: Development files for Astra Linux Directory
This package contains the development files for Astra Linux Directory common library. It's a
component of Astra Linux Directory.

Astra Linux Directory provides easy account management across a domain. The current version
utilizes LDAP, Kerberos and NFS4/CIFS as account database, authentication and home directory
access respectively.

See ald(7) man page for information.
Домашняя страница: http://www.rusbitech.ru
Оно? ;)
Там же URL разработчиов, сопровождающих... (он то и так понятен, но можете там поискать сопутствующую информацию, или поспрашивать).
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#5
Даже заинтриговали ;):
Код:
olej@astra:~$ sudo aptitude install ald-dev
[sudo] пароль для olej:
Попробуйте ещё раз.
[sudo] пароль для olej:
Следующие НОВЫЕ пакеты будут установлены:      
  ald-client{a} ald-dev cifs-utils{a} comerr-dev{a} krb5-config{a} krb5-multidev{a}
  krb5-user{a} ldap-utils{a} libbasicobjects0{a} libc-ares2{a} libcap-dev{a}
  libcollection4{a} libdhash1{a} libgssrpc4{a} libini-config5{a} libipa-hbac0{a}
  libkadm5clnt-mit11{a} libkadm5srv-mit11{a} libkdb5-8{a} libkrb5-dev{a} libldap2-dev{a}
  libnfsidmap2{a} libnss-sss{a} libpam-pwquality{a} libpam-sss{a} libpath-utils1{a}
  libpcre16-3{a} libpcre3-dev{a} libpcre32-3{a} libpcrecpp0v5{a} libpwquality-common{a}
  libpwquality1{a} libreadline-dev{a} libref-array1{a} libsasl2-modules-gssapi-mit{a}
  libsocket++1{a} libsss-certmap0{a} libsss-idmap0{a} libsss-nss-idmap0{a} libsss-sudo{a}
  libtar0{a} libtinfo-dev{a} nfs-common{a} python-sss{a} rpcbind{a} sssd{a} sssd-ad{a}
  sssd-ad-common{a} sssd-common{a} sssd-dbus{a} sssd-ipa{a} sssd-krb5{a} sssd-krb5-common{a}
  sssd-ldap{a} sssd-proxy{a} zlib1g-dev{a}
0 пакетов обновлено, 56 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 6.563 kБ архивов. После распаковки 22,2 MБ будет занято.
Хотите продолжить? [Y/n/?] y
...
Настраивается пакет ald-dev:amd64 (1.7.75) …
Обрабатываются триггеры для libc-bin (2.24-11+deb9u3) …
Обрабатываются триггеры для systemd (232-25+deb9u9astra.ce1) …
Обрабатываются триггеры для dbus (1.10.26-0+deb9u1) …
Вот они, ваши C/C++ API:
Код:
olej@astra:/usr/include/ald$ pwd
/usr/include/ald

olej@astra:/usr/include/ald$ ls
action-definitions.h  ald-config.h      ALDObjects.h   ALDThread.h  kadm5-wrapper.h
ALDApplication.h      ALDCore.h         ALDOfl.h       ALDUtils.h   ldap-definitions.h
ald-cclient.h         ALDCoreUtils.h    ald-rpc.h      common.h     ldap-wrapper.h
ALDCommand.h          ALDException.h    ALDRpcUtils.h  config.h     msg-definitions.h
ALDCommonCommands.h   ALDLogProvider.h  ALDStats.h     gettext.h    rpc-definitions.h
Вагон и маленькая тележка! Мало не покажется... :eek:
Пользуйтесь.

P.S. Заглянул мельком из любопытства в заголовочные файлы. Это API C++, но никак не C, как мне показалось (IMHO).
 
Последнее редактирование:

kold2015

New member
Сообщения
24
#6
Даже заинтриговали ;):
Код:
olej@astra:~$ sudo aptitude install ald-dev
[sudo] пароль для olej:
Попробуйте ещё раз.
[sudo] пароль для olej:
Следующие НОВЫЕ пакеты будут установлены:     
  ald-client{a} ald-dev cifs-utils{a} comerr-dev{a} krb5-config{a} krb5-multidev{a}
  krb5-user{a} ldap-utils{a} libbasicobjects0{a} libc-ares2{a} libcap-dev{a}
  libcollection4{a} libdhash1{a} libgssrpc4{a} libini-config5{a} libipa-hbac0{a}
  libkadm5clnt-mit11{a} libkadm5srv-mit11{a} libkdb5-8{a} libkrb5-dev{a} libldap2-dev{a}
  libnfsidmap2{a} libnss-sss{a} libpam-pwquality{a} libpam-sss{a} libpath-utils1{a}
  libpcre16-3{a} libpcre3-dev{a} libpcre32-3{a} libpcrecpp0v5{a} libpwquality-common{a}
  libpwquality1{a} libreadline-dev{a} libref-array1{a} libsasl2-modules-gssapi-mit{a}
  libsocket++1{a} libsss-certmap0{a} libsss-idmap0{a} libsss-nss-idmap0{a} libsss-sudo{a}
  libtar0{a} libtinfo-dev{a} nfs-common{a} python-sss{a} rpcbind{a} sssd{a} sssd-ad{a}
  sssd-ad-common{a} sssd-common{a} sssd-dbus{a} sssd-ipa{a} sssd-krb5{a} sssd-krb5-common{a}
  sssd-ldap{a} sssd-proxy{a} zlib1g-dev{a}
0 пакетов обновлено, 56 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 6.563 kБ архивов. После распаковки 22,2 MБ будет занято.
Хотите продолжить? [Y/n/?] y
...
Настраивается пакет ald-dev:amd64 (1.7.75) …
Обрабатываются триггеры для libc-bin (2.24-11+deb9u3) …
Обрабатываются триггеры для systemd (232-25+deb9u9astra.ce1) …
Обрабатываются триггеры для dbus (1.10.26-0+deb9u1) …
Вот они, ваши C/C++ API:
Код:
olej@astra:/usr/include/ald$ pwd
/usr/include/ald

olej@astra:/usr/include/ald$ ls
action-definitions.h  ald-config.h      ALDObjects.h   ALDThread.h  kadm5-wrapper.h
ALDApplication.h      ALDCore.h         ALDOfl.h       ALDUtils.h   ldap-definitions.h
ald-cclient.h         ALDCoreUtils.h    ald-rpc.h      common.h     ldap-wrapper.h
ALDCommand.h          ALDException.h    ALDRpcUtils.h  config.h     msg-definitions.h
ALDCommonCommands.h   ALDLogProvider.h  ALDStats.h     gettext.h    rpc-definitions.h
Вагон и маленькая тележка! Мало не покажется... :eek:
Пользуйтесь.

P.S. Заглянул мельком из любопытства в заголовочные файлы. Это API C++, но никак не C, как мне показалось (IMHO).
Да я тоже это нашел надо изучить...
 

alex.sover

New member
Сообщения
8
#8
Никто не знает, как библиотека называется, где эти функции реализованы ? Линковать-то что ?
 

Olej

New member
Сообщения
1 307
#9
Никто не знает, как библиотека называется, где эти функции реализованы ? Линковать-то что ?
Код:
olej@astra:/usr/include$ man 7 ald
...
olej@astra:/usr/include$ man 8 ald
...
pam_ald.so
Код:
root@astra:~# ls /lib/x86_64-linux-gnu/security/*ald*
/lib/x86_64-linux-gnu/security/pam_ald.so
root@astra:~# ldd /lib/x86_64-linux-gnu/security/pam_ald.so
        linux-vdso.so.1 (0x00007ffedc6ed000)
        libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f316d9ef000)
        libald-core.so.1.7.17 => /usr/lib/x86_64-linux-gnu/libald-core.so.1.7.17 (0x00007f316d688000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f316d484000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f316d211000)
        libreadline.so.7 => /lib/x86_64-linux-gnu/libreadline.so.7 (0x00007f316cfc4000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f316cdaa000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f316cba4000)
        libtar.so.0 => /usr/lib/libtar.so.0 (0x00007f316c99a000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f316c77d000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f316c575000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f316c1f3000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f316beef000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f316bcd8000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f316b939000)
        libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f316b711000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f316de07000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f316b4e7000)
        libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007f316b2e1000)
Вот они ваши 2 библиотеки: /lib/x86_64-linux-gnu/security/pam_ald.so + /usr/lib/x86_64-linux-gnu/libald-core.so.1.7.17
Если ещё чего не хватит - найдёте подобным образом.
 

alex.sover

New member
Сообщения
8
#10
Код:
olej@astra:/usr/include$ man 7 ald
...
olej@astra:/usr/include$ man 8 ald
...
pam_ald.so
Код:
root@astra:~# ls /lib/x86_64-linux-gnu/security/*ald*
/lib/x86_64-linux-gnu/security/pam_ald.so
root@astra:~# ldd /lib/x86_64-linux-gnu/security/pam_ald.so
        linux-vdso.so.1 (0x00007ffedc6ed000)
        libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f316d9ef000)
        libald-core.so.1.7.17 => /usr/lib/x86_64-linux-gnu/libald-core.so.1.7.17 (0x00007f316d688000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f316d484000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f316d211000)
        libreadline.so.7 => /lib/x86_64-linux-gnu/libreadline.so.7 (0x00007f316cfc4000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f316cdaa000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f316cba4000)
        libtar.so.0 => /usr/lib/libtar.so.0 (0x00007f316c99a000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f316c77d000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f316c575000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f316c1f3000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f316beef000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f316bcd8000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f316b939000)
        libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f316b711000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f316de07000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f316b4e7000)
        libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007f316b2e1000)
Вот они ваши 2 библиотеки: /lib/x86_64-linux-gnu/security/pam_ald.so + /usr/lib/x86_64-linux-gnu/libald-core.so.1.7.17
Если ещё чего не хватит - найдёте подобным образом.
-lald-core - то что нужно, большое спасибо! А я просмотрел когда искал.. Может Вы в теме, нужно пароль пользователю сменить:

CALDConnectionPtr con = shared_ptr<CALDConnection>(new CALDConnection( IALDCore ,...,...));
CALDUser user(con)
user.ChangePwd("123");

А как создаётся этот IALDCore не понимаю, пока что. Может где-то примерчик есть или что-то похожее.
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#12
Может Вы в теме, нужно пароль пользователю сменить:
Нет, я, к сожалению, не в теме ALD.
Я просто чисто формально подсказал как в Linux найти а). нужные пакеты из репозитория + б). к ним API, заголовочные файлы *.h в /usr/include + в). как найти библиотеки для линковки.

P.S. Обратите внимание ещё на pkg-config, который очень помогает иногда, но в Astra Linux нужно устанавливать дополнительно:
Код:
olej@astra:~$ sudo apt-get install pkg-config
...
Распаковывается pkg-config (0.29-4) …
Настраивается пакет pkg-config (0.29-4) …
Обрабатываются триггеры для man-db (2.7.6.1-2) …
Код:
olej@astra:~$ pkg-config --help              
...