lilalo
changeset 98:4c02cf4123ee
l3-agent и l3-backend изменены так, что
все записанные команды теперь привязаны к контексту,
заданному в параметре
l3cd
агента
Их XML-представление теперь сохраняется не только в общем
файле backend.xml,
но и в файлах соответствующих контексту l3cd
$Config{backend_datadir}/$l3cd/data.xml
Параметр l3cd (пока что) меняется вручную в конфигурационном
файле агента ~/.l3rc
После того как параметр изменён необходимо перезапустить агент,
отправив ему сигнал HUP
killall -1 l3-agent
ЧТО НУЖНО СДЕЛАТЬ:
== Безопасность ==
* Сделать процедуру залогивинивания и проверки подлинности пользователя
* Ограничить доступ на запись в контекстные каталоги для пользователей
== Смена каталога ==
* Сделать команду l3, которая позволяет изменить и просмотреть
текущий l3-контекст
l3 pwd
l3 cd /devi/netflow
все записанные команды теперь привязаны к контексту,
заданному в параметре
l3cd
агента
Их XML-представление теперь сохраняется не только в общем
файле backend.xml,
но и в файлах соответствующих контексту l3cd
$Config{backend_datadir}/$l3cd/data.xml
Параметр l3cd (пока что) меняется вручную в конфигурационном
файле агента ~/.l3rc
После того как параметр изменён необходимо перезапустить агент,
отправив ему сигнал HUP
killall -1 l3-agent
ЧТО НУЖНО СДЕЛАТЬ:
== Безопасность ==
* Сделать процедуру залогивинивания и проверки подлинности пользователя
* Ограничить доступ на запись в контекстные каталоги для пользователей
== Смена каталога ==
* Сделать команду l3, которая позволяет изменить и просмотреть
текущий l3-контекст
l3 pwd
l3 cd /devi/netflow
author | devi |
---|---|
date | Sun Jun 11 22:07:42 2006 +0300 (2006-06-11) |
parents | 9f64b4cfa4f6 |
children | 05e99d32f1f5 |
files | l3-agent l3-backend l3config.pm |
line diff
1.1 --- a/l3-agent Sun May 28 17:46:58 2006 +0300 1.2 +++ b/l3-agent Sun Jun 11 22:07:42 2006 +0300 1.3 @@ -698,6 +698,7 @@ 1.4 1.5 # Начинаем вывод команды 1.6 print OUT "<command>\n"; 1.7 + print OUT "<l3cd>$Config{l3cd}</l3cd>\n" if $Config{"l3cd"}; 1.8 for my $element (qw( 1.9 local_session_id 1.10 history 1.11 @@ -755,6 +756,7 @@ 1.12 open(OUT, ">>", $output_filename) 1.13 or die "Can't open $output_filename for writing\n"; 1.14 print OUT "<session>\n"; 1.15 + print OUT "<l3cd>$Config{l3cd}</l3cd>\n" if $Config{"l3cd"}; 1.16 my %session = %{$Sessions{$local_session_id}}; 1.17 for my $key (keys %session) { 1.18 print OUT "<$key>".$session{$key}."</$key>\n"; 1.19 @@ -822,6 +824,11 @@ 1.20 $Killed = 1; 1.21 } 1.22 1.23 +sub reload 1.24 +{ 1.25 + init_config; 1.26 +} 1.27 + 1.28 sub main 1.29 { 1.30 1.31 @@ -894,7 +901,9 @@ 1.32 1.33 $0 = $Config{"l3-agent"}; 1.34 1.35 - $SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&process_was_killed; 1.36 + $SIG{INT} = $SIG{TERM} = \&process_was_killed; 1.37 + $SIG{HUP} = \&reload; 1.38 + 1.39 } 1.40 while (not $Killed) { 1.41 @Command_Lines = ();
2.1 --- a/l3-backend Sun May 28 17:46:58 2006 +0300 2.2 +++ b/l3-backend Sun Jun 11 22:07:42 2006 +0300 2.3 @@ -91,13 +91,35 @@ 2.4 # Это наш ответвлённый клиент 2.5 close($server); 2.6 2.7 + my $saved_data = ""; 2.8 + 2.9 # Считываем данные и передаём их в точку получения 2.10 open(OUT, ">>", $Config{"backend_datafile"}); 2.11 select OUT; $|=1; 2.12 while(<$client>) { 2.13 print OUT $_; 2.14 + $saved_data .= $_; 2.15 } 2.16 close(OUT); 2.17 + 2.18 + while ($saved_data =~ m@<(session|command)>(.*)</$1>@sg) { 2.19 + my $element_name = $1; 2.20 + my $element = $2; 2.21 + if ($element =~ m@<l3cd>(.*?)</l3cd>@msg) { 2.22 +# Обнаружен элемент l3cd 2.23 +# Информация должна быть сохранена в соответствующий каталог 2.24 + my $l3cd = $1; 2.25 +# Путь l3cd должен быть не пуст, 2.26 +# и в нём могут быть только символы латинского алфавита, цифры и знаки _ и - 2.27 + if ($l3cd && $l3cd =~ /^[a-zA-Z_\/0-9-]*/) { 2.28 + system("mkdir -p $Config{backend_datadir}/$l3cd"); 2.29 + if (open(OUT, ">>", $Config{"backend_datadir"}."/$l3cd/data.xml")) { 2.30 + print OUT "<$element_name>".$element."</$element_name>"; 2.31 + close(OUT); 2.32 + }; 2.33 + } 2.34 + } 2.35 + } 2.36 } 2.37 continue { 2.38 # Наш родитель
3.1 --- a/l3config.pm Sun May 28 17:46:58 2006 +0300 3.2 +++ b/l3config.pm Sun Jun 11 22:07:42 2006 +0300 3.3 @@ -9,7 +9,7 @@ 3.4 @EXPORT = qw(%Config &init_config); 3.5 3.6 our $System_Config_File = "/etc/lilalo.conf"; 3.7 -our $User_Config_File = "$ENV{HOME}/.lilalo.conf"; 3.8 +our $User_Config_File = "$ENV{HOME}/.l3rc"; 3.9 $ENV{HOME} ||= "/tmp"; 3.10 3.11 3.12 @@ -84,10 +84,11 @@ 3.13 "detach" => "yes", 3.14 "agent_pidfile" => "$ENV{HOME}/.lilalo/l3-agent.pid", 3.15 3.16 - "backend_address" => "192.168.15.254", 3.17 + "backend_address" => "192.168.18.254", 3.18 "backend_port" => "18030", 3.19 "backend_pidfile" => "/tmp/l3-backend.pid", 3.20 "backend_datafile" => "/var/lilalo/lablogs-xml/backend.xml", 3.21 + "backend_datadir" => "/var/lilalo/lablogs-xml/", 3.22 3.23 "l3-agent" => "l3-agent", 3.24 "l3-backend" => "l3-backend", 3.25 @@ -103,6 +104,12 @@ 3.26 #lm 3.27 "show_host" => "no", 3.28 3.29 + "l3cd" => "", # Текущий контекст перехваченных команд 3.30 + # Возможные варианты: 3.31 + # КУРС/ДАТА-НАЧАЛА/МАШИНА/ПОЛЬЗОВАТЕЛЬ 3.32 + # ДАТА-НАЧАЛА/КУРС/МАШИНА/ПОЛЬЗОВАТЕЛЬ 3.33 + # УНИКАЛЬНЫЙ_ПОЛЬЗОВАТЕЛЬ/КУРС/МАШИНА/ПОЛЬЗОВАТЕЛЬ 3.34 + 3.35 # Вспомогательные программы 3.36 #"l3-report" => "./lm-report", 3.37 "l3-report" => "./l3-report", 3.38 @@ -145,6 +152,7 @@ 3.39 open(CONFIG, "$filename") 3.40 or return; 3.41 while (<CONFIG>) { 3.42 + chomp; 3.43 s/#.*//; 3.44 next if /^\s*$/; 3.45 my ($var, $val) = split /\s*=\s*/, $_, 2;