Сессии
Материал из ISPWiki
Сессия manager - уникальный номер, используемый для авторизации запросов. Каждая сессия привязана к конкретному пользователю и IP адресу. Сессии хранятся в течении часа с момента последнего запроса (точнее 60-64 минуты). По истечении этого времени они удаляются. Для того, чтобы сессии не терялись при перезапуске manager, они сохраняются в файл var/.<manager>.ses, где <manager> - имя manager (имя бинарного файла из каталога bin/).
Структура файла .<manager>.ses
const int MaxUserLength = 64; ///< максимальная длинна имени пользователя const int MaxFuncLength = 32; ///< максимальная длинна имени функции manager const int MaxSuDeep = 3; ///< максимальная глубина (количество переходов в другого пользователя) struct AuthSes { int auth; ///< номер сессии char method[4]; ///< метод авторизации char ip[40]; ///< IP адрес, с которого принимать запросы для этой сессии char user[MaxUserLength]; ///< текущее имя пользователя #ifdef Windows char pass[MaxUserLength]; ///< пароль пользователя #endif SesLevel level; ///< уровень доступа time_t atime; ///< время последнего запроса char suser[MaxUserLength*MaxSuDeep]; ///< предыдущие имена пользователя char sfunc[MaxFuncLength*MaxSuDeep]; ///< функции из которых был совершен переход #ifdef ISPMGR bool allowrestart; ///< разрешено ли этому пользователю вызывать функцию restart для перезапуска apache #ifndef Windows uid_t uid; ///< текущий Uid пользователя gid_t gid; ///< текущий Gid пользователя #endif #endif #ifdef BILLMGR int account; ///< #endif int p_cnt; ///< количество строк на страницу } __attribute__((__packed__));
