50 #define ALD_API_VERSION 1*0x10000+7*0x100+37
53 #define ALD_MODULE_VERSION "1.7.37"
56 #define ALD_MODULE_TYPE_HOST 0
58 #define ALD_MODULE_TYPE_ITF 1
59 #define ALD_MODULE_TYPE_CFG 2
60 #define ALD_MODULE_TYPE_PLUGIN 3
67 #define ALD_MODE_UNDEFINED ""
69 #define ALD_MODE_CLIENT "client"
70 #define ALD_MODE_SERVER "server"
71 #define ALD_MODE_ADMIN "admin"
90 inline const string &
name()
const {
return m_strName;}
103 #define ALD_OPR_CFG_INSTALL "install"
105 #define ALD_OPR_CFG_CONFIGURE "configure"
106 #define ALD_OPR_CFG_ON "on"
107 #define ALD_OPR_CFG_OFF "off"
108 #define ALD_OPR_CFG_UNINSTALL "uninstall"
119 virtual int OperationConfig(
const string &mode,
const string &operation) = 0;
140 inline const string &
name()
const {
return m_strName;}
142 inline const string &
error()
const {
return m_strError;}
155 virtual bool Validate(
const void *value,
const void *tag,
void *result);
250 virtual const string &domain() = 0;
251 virtual const string &serverName() = 0;
252 virtual const string &hostName() = 0;
253 virtual const string &compatibilityVersion() = 0;
254 virtual const string &ApplicationName() = 0;
255 virtual void SetApplicationName(
const string& name) = 0;
263 virtual string ALDSubdir() = 0;
269 virtual bool IfForce() = 0;
270 virtual bool IfVerbose() = 0;
271 virtual bool Ifrfc2822() = 0;
272 virtual bool IfServer() = 0;
273 virtual bool IfServerOn() = 0;
274 virtual bool IfClientOn() = 0;
275 virtual bool IfUseFS(
const string &fs) = 0;
276 virtual bool IfNotUseFS() = 0;
277 virtual bool IfConfigured() = 0;
278 virtual bool IfUseDNS() = 0;
279 virtual bool isServerHost() = 0;
285 virtual void ReloadExtensions() = 0;
286 virtual void InitPlugins(
const string &mode) = 0;
288 virtual void SetHostModuleInfo(
const string &name,
const string &desc) = 0;
289 virtual void EnumerateModules(
int module_type,
ald_string_map &mods) = 0;
290 virtual bool IfModuleLoaded(
const string &name) = 0;
298 virtual void RemoveConfigurator(
const string &name) = 0;
299 virtual void UseConfigurators(
const string &mode) = 0;
300 virtual void OperationConfig(
const string &mode,
const string &operation) = 0;
309 virtual void RemoveInterface(
const string &name) = 0;
310 virtual void UseInterface(
const string &name,
const string &mode) = 0;
319 virtual void RemoveValidator(
const string &name) = 0;
320 virtual bool ValidateValue(
const string &validator,
const void *value,
const void *tag,
void *result,
string *err) = 0;
326 virtual void EnumerateTriggers(
const string &action,
ald_string_map &trgs) = 0;
328 virtual void UnregisterTrigger(
const string &action,
const string &name,
ald_action_trigger_func &trigger) = 0;
329 virtual bool TriggerAction(
const string &action,
const string &
object,
CALDCommand *cmd,
void* extra) = 0;
336 virtual string admin()
const = 0;
339 virtual bool IfKadmin()
const = 0;
340 virtual bool IfCCache()
const = 0;
341 virtual void SetCCache(
bool ccache) = 0;
342 virtual bool GetSecret(
const string &user,
string &secret,
const string &prompt =
"") = 0;
343 virtual bool NewSecret(
const string &user,
string &secret,
const string &prompt =
"") = 0;
344 virtual void SetSecret(
const string &user,
const string &secret) = 0;
347 virtual void ForgetAdmin() = 0;
353 virtual void UseSigInt() = 0;
356 virtual bool IfSigInt() = 0;
357 virtual bool IfSigPipe() = 0;
358 virtual bool IfSigTerm() = 0;
359 virtual bool IfSigHup() = 0;
360 virtual void ClearSignal(
int sig) = 0;
366 virtual void LoadSettings() = 0;
367 virtual string SettingsValue(
const string &p) = 0;
368 virtual bool SettingsValueExists(
const string &p) = 0;
369 virtual void SetSettingsValue(
const string &p,
const string &v) = 0;
377 virtual void OnBeforeCommand() = 0;
378 virtual void OnAfterCommand() = 0;
379 virtual int ExecALDCommand(
const string &command,
const string &argument,
const ald_string_multimap &mapOptions) = 0;
391 virtual bool RE_match(
const string &pattern,
const string &value,
const int optc = 0,
const int opte = 0) = 0;
394 virtual void CheckNameResolution() = 0;
397 virtual void SetKadmLocal(
bool kadmlocal) = 0;
401 virtual void ShowSettings(ostream &out) = 0;
402 virtual void ShowInternals(ostream &out) = 0;
403 virtual void ShowStatus(ostream &out) = 0;
408 virtual bool ServiceGroupsMod(
const string &sgroup,
bool remove =
false) = 0;
410 virtual bool SupportedFSMod(
const string &fs,
bool remove =
false) = 0;
414 #define ALD_USER_NAME_MAX_SIZE 31
416 #define ALD_GROUP_NAME_MAX_SIZE ALD_USER_NAME_MAX_SIZE
417 #define ALD_PWD_MAX_SIZE 40
418 #define ALD_DESC_MAX_SIZE 1000
419 #define ADM_USER_NAME "admin/admin"
420 #define ADM_ALDD_USER_NAME "aldd"
421 #define ADM_DEF_USER_NAME "default/user"
422 #define ALD_DEF_POLICY_NAME "default"
427 #define ALD_FS_LOCAL "local"
428 #define ALD_FS_NFS "nfs"
429 #define ALD_FS_CIFS "cifs"
433 #define ALD_PRM_VERSION "VERSION"
435 #define ALD_PRM_SERVER "SERVER"
436 #define ALD_PRM_DOMAIN "DOMAIN"
437 #define ALD_PRM_DOMAIN_DN "DOMAIN_DN"
438 #define ALD_PRM_REALM "REALM"
439 #define ALD_PRM_NETWORK_FS_TYPE "NETWORK_FS_TYPE"
440 #define ALD_PRM_MINIMUM_UID "MINIMUM_UID"
441 #define ALD_PRM_MINIMUM_GID "MINIMUM_GID"
442 #define ALD_PRM_DEF_LOGIN_SHELL "DEFAULT_LOGIN_SHELL"
443 #define ALD_PRM_TICKET_MAX_LIFE "TICKET_MAX_LIFE"
444 #define ALD_PRM_TICKET_MAX_R_LIFE "TICKET_MAX_RENEWABLE_LIFE"
445 #define ALD_PRM_DESC "DESCRIPTION"
446 #define ALD_PRM_RPC_PORT "RPC_PORT"
447 #define ALD_PRM_USE_RPC "USE_RPC"
448 #define ALD_PRM_ALDD_USER "ALDD_USER"
449 #define ALD_PRM_USE_DNS "USE_DNS"
450 #define ALD_PRM_USER_GROUPS "USER_GROUPS"
451 #define ALD_PRM_USE_DOCUMENTS "USE_DOCUMENTS"
452 #define ALD_PRM_PREF_SERVERS "PREFERRED_SERVERS"
453 #define ALD_PRM_AUTORECONF "AUTORECONFIGURE"
457 #define ALD_PRM_CLIENT_MOUNT_DIR "CLIENT_MOUNT_DIR"
459 #define ALD_PRM_CLIENT_ON "CLIENT_ON"
460 #define ALD_PRM_CLIENT_FS_KRB_MODE "CLIENT_FS_KRB_MODE"
461 #define ALD_PRM_ALLOWED_LOCAL_GROUPS "ALLOWED_LOCAL_GROUPS"
462 #define ALD_PRM_CACHE_REFRESH_PERIOD "CACHE_REFRESH_PERIOD"
463 #define ALD_PRM_LOCAL_SOCKET_PATH "LOCAL_SOCKET_PATH"
467 #define ALD_PRM_SERVER_ON "SERVER_ON"
469 #define ALD_PRM_SERVER_EXPORT_DIR "SERVER_EXPORT_DIR"
470 #define ALD_PRM_SERVER_ARCHIVE_DIR "SERVER_ARCHIVE_DIR"
471 #define ALD_PRM_SERVER_FS_KRB_MODES "SERVER_FS_KRB_MODES"
472 #define ALD_PRM_SERVER_POLLING_PERIOD "SERVER_POLLING_PERIOD"
473 #define ALD_PRM_SERVER_PROPAGATE_PERIOD "SERVER_PROPAGATE_PERIOD"
474 #define ALD_PRM_UTF8_GECOS "UTF8_GECOS"
475 #define ALD_PRM_DEFAULT_LOCAL_GROUPS "DEFAULT_LOCAL_GROUPS"
476 #define ALD_PRM_SERVER_ID "SERVER_ID"
477 #define ALD_PRM_SERVER_RPC_RESTRICTED "RPC_RESTRICTED"
478 #define ALD_PRM_SERVER_KEYTAB "SERVER_KEYTAB"
479 #define ALD_PRM_SERVER_KADM_RELOAD "SERVER_KADM_RELOAD"
483 #define ALD_PRM_SUB_DIR "ALD_SUB_DIR"
485 #define ALD_PRM_CC_PREFIX "ALD_CC_PREFIX"
486 #define ALD_PRM_VAR_LIB_DIR "ALD_VAR_LIB_DIR"
487 #define ALD_PRM_COMMON_KEYTAB "ALD_COMMON_KEYTAB"
488 #define ALD_PRM_CFG_TEMPL_DIR "ALD_CFG_TEMPL_DIR"
489 #define ALD_PRM_CFG_DIR "ALD_CFG_DIR"
490 #define ALD_PRM_ITFS_DIR "ALD_ITFS_DIR"
491 #define ALD_PRM_PLUGINS_DIR "ALD_PLUGINS_DIR"
492 #define ALD_PRM_CFG_MODULES_DIR "ALD_CFG_MODULES_DIR"
493 #define ALD_PRM_CFG "ALD_CFG"
494 #define ALD_PRM_CFG_ROOT_DIR "ALD_CFG_ROOT_DIR"
495 #define ALD_PRM_USR_SHARE_DIR "ALD_USR_SHARE_DIR"
496 #define ALD_PRM_LDAP_SCHEMA_DIR "ALD_LDAP_SCHEMA_DIR"
497 #define ALD_PRM_CACHE_DIR "ALD_PRM_CACHE_DIR"
498 #define ALD_PRM_DOMAIN_USERS_GID "ALD_DOMAIN_USERS_GID"
499 #define ALD_PRM_DOCS_DIR "ALD_PRM_DOCS_DIR"
500 #define ALD_PRM_LDAP_URIS "ALD_PRM_LDAP_URIS"
501 #define ALD_PRM_CONN_LOCK_FILE "ALD_PRM_CONN_LOCK_FILE"
506 #define ALD_VALIDATOR_USER_NAME "UserName"
508 #define ALD_VALIDATOR_GROUP_NAME "GroupName"
509 #define ALD_VALIDATOR_PATH "Path"
510 #define ALD_VALIDATOR_GECOS "Gecos"
511 #define ALD_VALIDATOR_POLICY_NAME "PolicyName"
512 #define ALD_VALIDATOR_POLICY_LIFETIME "PolicyLifeTime"
513 #define ALD_VALIDATOR_TASK_HISTORY "TaskHistory"
514 #define ALD_VALIDATOR_SERVICE_NAME "ServiceName"
515 #define ALD_VALIDATOR_HIDDEN_PRINCIPALS "HiddenPrincipals"
516 #define ALD_VALIDATOR_HOST_NAME "HostName"
517 #define ALD_VALIDATOR_DOMAIN_NAME "DomainName"
518 #define ALD_VALIDATOR_HOST_FLAGS "HostFlags"
519 #define ALD_VALIDATOR_SGROUP_NAME "SvcGroupName"
520 #define ALD_VALIDATOR_HGROUP_NAME "HostGroupName"
521 #define ALD_VALIDATOR_DNS_NAME "DNSName"
522 #define ALD_VALIDATOR_DOC_NAME "DocumentName"
526 #define ALD_CMD_SECTION "ALD Common API"
531 #define ALD_DOMAIN_USERS "Domain Users"
533 #define ALD_DOMAIN_COMPUTERS "Domain Computers"
534 #define ALD_DOMAIN_CONTROLLERS "Domain Controllers"
535 #define ALD_DOMAIN_FILESERVERS "Domain File Servers"
Класс контейнера команд
Definition: ALDCommand.h:198
list< string > ald_string_list
Список строк
Definition: ALDUtils.h:152
int perm
Права доступа
Definition: ALDCore.h:222
const string & name() const
Возвращает наименование
Definition: ALDCore.h:90
const string & name() const
Возвращает имя
Definition: ALDCore.h:140
Анонимное соединение без аутентификации (только чтение LDAP)
Definition: ALDCore.h:29
Абстрактный базовый класс команды
Definition: ALDCommand.h:136
pair< string, ald_action_trigger > ald_trigger_pair
Пара <событие,запись о триггере>
Definition: ALDCore.h:211
Структура информации о правах файла
Definition: ALDCore.h:217
const char * name
Имя
Definition: ALDCore.h:40
list< ald_file_perm > ald_file_perm_list
Список информации о правах файлов
Definition: ALDCore.h:226
string owner
Владелец
Definition: ALDCore.h:219
Класс контейнера опций команды
Definition: ALDCommand.h:99
Локальная несетевая аутентификация для серверных компонент (без запроса пароля)
Definition: ALDCore.h:30
Базовый класс интерфейса
Definition: ALDCore.h:83
const string & error() const
Возвращает сообщение об ошибке
Definition: ALDCore.h:142
CALDValidator(const string &Name, IALDCore &Core)
Конструктор
Definition: ALDCore.h:148
Выключен
Definition: ALDCore.h:170
IALDConfigurator(const string &Name, IALDCore &Core)
Конструктор конфигуратора
Definition: ALDCore.h:117
Структура информации о модуле
Definition: ALDCore.h:37
IALDCore * m_pCore
Указатель на интерфейс Core.
Definition: ALDCore.h:135
const char * desc
Описание
Definition: ALDCore.h:44
Аутентификация Kerberos с использованием файла ключа (без запроса пароля)
Definition: ALDCore.h:32
int api_version
Версия API.
Definition: ALDCore.h:39
map< string, string > ald_string_map
MAP строка => строка
Definition: ALDUtils.h:164
shared_ptr< CALDValidator > CALDValidatorPtr
Разделяемый указатель на валидатор
Definition: ALDCore.h:162
multimap< string, ald_action_trigger > ald_triggers_map
Мультикарта (событие => запись о триггере>
Definition: ALDCore.h:214
map< string, CALDValidatorPtr > ald_validator_map
Карта валидаторов (имя => разделяемый указатель на валидатор)
Definition: ALDCore.h:165
Парольная аутентификация Kerberos.
Definition: ALDCore.h:31
ald_module_info *( ald_get_module_info_ft)(const ald_module_info &host)
Тип функции получения информации о модуле
Definition: ALDCore.h:64
Объявление подсистемы регистрации событий Astra Linux Directory.
string group
Группа
Definition: ALDCore.h:220
multimap< string, string > ald_string_multimap
MultiMAP строка => строка
Definition: ALDUtils.h:166
string m_strName
Наименование
Definition: ALDCore.h:86
shared_ptr< IALDConfigurator > CALDConfiguratorPtr
Разделяемый указатель на конфигуратор
Definition: ALDCore.h:123
Аутентификация Kerberos с использованием текущего кеша (без запроса пароля)
Definition: ALDCore.h:33
CALDInterface(const string &Name, IALDCore &Core)
Конструктор интерфейса
Definition: ALDCore.h:92
void * extra
Эктра параметр
Definition: ALDCore.h:46
Структура записи о триггере
Definition: ALDCore.h:184
Объявление классов командного интерфейса Astra Linux Directory.
Базовый класс механизма журналирования Astra Linux Directory.
Definition: ALDLogProvider.h:110
Базовый класс конфигуратора
Definition: ALDCore.h:113
map< string, CALDConfiguratorPtr > ald_configurator_map
Карта конфигураторов (имя => разделяемый указатель на конфигуратор)
Definition: ALDCore.h:126
bool LoginAdmin(IALDCore &Core, const string &admin="")
Вход администратора
void( ald_module_done_ft)(ALD::IALDCore &Core)
Тип функции освобождения модуля
Definition: ALDCore.h:78
int type
Тип
Definition: ALDCore.h:43
shared_ptr< CALDInterface > CALDInterfacePtr
Разделяемый указатель на интерфейс
Definition: ALDCore.h:97
string filename
Путь к файлу
Definition: ALDCore.h:218
virtual ~CALDValidator()
Деструктор
Definition: ALDCore.h:158
asmSigIntMode
Режим SigInt.
Definition: ALDCore.h:168
bool( ald_module_init_ft)(ALD::IALDCore &Core, const string &mode)
Тип функции инициализации модуля с указанием режима
Definition: ALDCore.h:75
Основной заголовочный файл, содержащий необходимый минимум предварительных объявлений и включений дру...
bool ald_action_trigger_func(IALDCore *Core, const string &action, const string &object, CALDCommand *cmd, void *extra)
Тип триггерной функции
Definition: ALDCore.h:181
Включен
Definition: ALDCore.h:169
map< string, CALDInterfacePtr > ald_interface_map
Карта интерфейсов (имя => разделяемый указатель на интерфейс)
Definition: ALDCore.h:100
IALDCore * m_pCore
Указатель на интерфейс ядра
Definition: ALDCore.h:87
string m_strName
Имя
Definition: ALDCore.h:134
Базовый класс валидатора
Definition: ALDCore.h:131
string m_strError
Сообщение об ошибке
Definition: ALDCore.h:136
string name
Имя события
Definition: ALDCore.h:185
ALDAuthType
Набор способов аутентификации
Definition: ALDCore.h:28
Абстрактный класс IALDCore - основной интерфейс клиента Astra Linux Directory, с помощью которого вып...
Definition: ALDCore.h:241
const char * version
Версия
Definition: ALDCore.h:41
ald_action_trigger_func * trigger
Указатель на триггерную функцию
Definition: ALDCore.h:187