Sphelper — различия между версиями
(Новая страница: «Это черновик. sp-helper — это средство для автоматического создания unix-пользователей (как сле...») |
(→sphelper на другом сервере) |
||
| (не показано 15 промежуточных версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
| − | |||
| − | |||
sp-helper — это средство для автоматического создания unix-пользователей (как следствие, почтовых ящиков) и samba-пользователей синхронно с созданием пользователей в Школьном портале. Это же касается задания (сброса) и изменения их паролей. | sp-helper — это средство для автоматического создания unix-пользователей (как следствие, почтовых ящиков) и samba-пользователей синхронно с созданием пользователей в Школьном портале. Это же касается задания (сброса) и изменения их паролей. | ||
| Строка 9: | Строка 7: | ||
# если нет, создаём | # если нет, создаём | ||
| + | |||
| + | # придумайте и запишите страшно длинный пароль | ||
| + | # например, с помощью команды | ||
| + | pwgen --secure 64 1 | ||
| + | |||
| + | # создаём пользователя с паролем | ||
smbpasswd -s -a sp-helper | smbpasswd -s -a sp-helper | ||
| Строка 16: | Строка 20: | ||
# проверка (должно ответить root) | # проверка (должно ответить root) | ||
id -n -g sp-helper | id -n -g sp-helper | ||
| + | </pre> | ||
| + | |||
| + | В файле конфигурации (см. [[Файл конфигурации]]) должны быть заданы настройки: | ||
| + | # sphelper_smbuser = sp-helper | ||
| + | # sphelper_smbpass = тот_самый_страшный_пароль | ||
| + | |||
| + | По умолчанию sp-helper устанавливается на сервере вместе с порталом. | ||
| + | |||
| + | == sphelper на другом сервере == | ||
| + | |||
| + | Можно установить sp-helper на другой сервер, где нет портала. | ||
| + | |||
| + | Для этого нужно скопировать файлы: | ||
| + | <pre> | ||
| + | /opt/xxi/sphelper.pl | ||
| + | /etc/xinetd.d/sphelper | ||
| + | </pre> | ||
| + | |||
| + | Выполните в bash от пользователя root скрипт: | ||
| + | |||
| + | <pre> | ||
| + | #!/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 | ||
| + | </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