Sphelper
sp-helper — это средство для автоматического создания unix-пользователей (как следствие, почтовых ящиков) и samba-пользователей синхронно с созданием пользователей в Школьном портале. Это же касается задания (сброса) и изменения их паролей.
# для начала использования этого сервиса нужен samba-пользователь. # есть ли пользователь для sp-helper? узнаём командой: pdbedit -L | grep sp-helper # если нет, создаём # придумайте и запишите страшно длинный пароль # например, с помощью команды pwgen --secure 64 1 # создаём пользователя с паролем smbpasswd -s -a sp-helper # включаем пользователя в группу root: usermod -G root sp-helper # проверка (должно ответить root) id -n -g sp-helper
В файле конфигурации (см. Файл конфигурации) должны быть заданы настройки:
- sphelper_smbuser = sp-helper
- sphelper_smbpass = тот_самый_страшный_пароль
По умолчанию sp-helper устанавливается на сервере вместе с порталом.
sphelper на другом сервере
Можно установить sp-helper на другой сервер, где нет портала.
Для этого нужно скопировать файлы:
/opt/xxi/sphelper.pl /etc/xinetd.d/sphelper
Выполните в bash от пользователя root скрипт:
#!/bin/bash SPHELPER_SERVICES_LINE='sphelper 7890/tcp' if ! grep -q "$SPHELPER_SERVICES_LINE" /etc/services; then echo "$SPHELPER_SERVICES_LINE" >> /etc/services fi chown root.root /opt/xxi/sphelper.pl chmod 750 /opt/xxi/sphelper.pl service xinetd restart
Файл конфигурации портала нужно скопировать на сервер, куда вы ставите sp-helper.
В нём должны быть параметры, равные параметрам на основном сервере:
- db_user
- db_pass
На сервере с порталом необходимо задать настройки:
- create_dc_users = sp-helper
- sp_helper_host = IP_сервера_куда_вы_перенесли_sphelper
Пример файла конфигурации для sphelper
# SP config for sphelper only sphelper_smbuser = sphelper sphelper_smbpass = *** db_user = SYSDBA db_pass = ***
Журнал
/var/log/sphelper.log
Проверки
sphelper слушает порт?
netstat -ntlp|grep 7890 # пример результата # tcp 0 0 0.0.0.0:7890 0.0.0.0:* LISTEN 25855/xinetd
Perl-скрипт для проверки sphelper:
#!/usr/bin/perl use strict; use CGI::Carp; require "/var/www/cgi-bin/sp/common.pl"; # имя пользователя для проверки (логин в Портале) my $user = 'ivanov'; our (%gconf); %gconf = read_config('/var/www/cgi-bin/sp/sp.conf'); my $answer = sphelper_request("<sp_user_info><user>$user</user></sp_user_info>"); if ( $answer =~ m|<groups>(.+)</groups>| ) { print "OK: user = $user, groups = $1\n" } else { print "FAIL: $answer\n" } # пример результата # OK: user = ivanov, groups = students,class_1a