Sphelper — различия между версиями
(→sphelper на другом сервере) |
|||
(не показано 13 промежуточных версии этого же участника) | |||
Строка 1: | Строка 1: | ||
− | |||
− | |||
sp-helper — это средство для автоматического создания unix-пользователей (как следствие, почтовых ящиков) и samba-пользователей синхронно с созданием пользователей в Школьном портале. Это же касается задания (сброса) и изменения их паролей. | sp-helper — это средство для автоматического создания unix-пользователей (как следствие, почтовых ящиков) и samba-пользователей синхронно с созданием пользователей в Школьном портале. Это же касается задания (сброса) и изменения их паролей. | ||
Строка 28: | Строка 26: | ||
# sphelper_smbpass = тот_самый_страшный_пароль | # sphelper_smbpass = тот_самый_страшный_пароль | ||
− | + | По умолчанию sp-helper устанавливается на сервере вместе с порталом. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== sphelper на другом сервере == | == sphelper на другом сервере == | ||
Строка 43: | Строка 35: | ||
<pre> | <pre> | ||
/opt/xxi/sphelper.pl | /opt/xxi/sphelper.pl | ||
− | /etc/xinetd.d/sphelper | + | /etc/xinetd.d/sphelper |
</pre> | </pre> | ||
+ | |||
+ | Выполните в bash от пользователя root скрипт: | ||
<pre> | <pre> | ||
− | # | + | #!/bin/bash |
SPHELPER_SERVICES_LINE='sphelper 7890/tcp' | SPHELPER_SERVICES_LINE='sphelper 7890/tcp' | ||
Строка 56: | Строка 50: | ||
chmod 750 /opt/xxi/sphelper.pl | chmod 750 /opt/xxi/sphelper.pl | ||
service xinetd restart | service xinetd restart | ||
+ | </pre> | ||
+ | |||
+ | Файл конфигурации портала нужно скопировать на сервер, куда вы ставите sp-helper. | ||
+ | |||
+ | В нём должны быть параметры, равные параметрам на основном сервере: | ||
+ | # db_user | ||
+ | # db_pass | ||
+ | |||
+ | На сервере с порталом необходимо задать настройки: | ||
+ | # create_dc_users = sp-helper | ||
+ | # sp_helper_host = IP_сервера_куда_вы_перенесли_sphelper | ||
+ | |||
+ | Пример файла конфигурации для sphelper | ||
+ | <pre> | ||
+ | # SP config for sphelper only | ||
+ | sphelper_smbuser = sphelper | ||
+ | sphelper_smbpass = *** | ||
+ | db_user = SYSDBA | ||
+ | db_pass = *** | ||
+ | </pre> | ||
+ | |||
+ | == Журнал == | ||
+ | |||
+ | <pre> | ||
+ | /var/log/sphelper.log | ||
+ | </pre> | ||
+ | |||
+ | == Проверки == | ||
+ | |||
+ | sphelper слушает порт? | ||
+ | |||
+ | <pre> | ||
+ | netstat -ntlp|grep 7890 | ||
+ | # пример результата | ||
+ | # tcp 0 0 0.0.0.0:7890 0.0.0.0:* LISTEN 25855/xinetd | ||
+ | </pre> | ||
+ | |||
+ | Perl-скрипт для проверки sphelper: | ||
+ | <pre> | ||
+ | #!/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 | ||
</pre> | </pre> |
Текущая версия на 14:35, 18 февраля 2015
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