Re: пакет mon

2004-11-17 Пенетрантность Konstantin Klimchev
On Wed, 17 Nov 2004 10:51:45 +0200
Michael Shigorin <[EMAIL PROTECTED]> wrote:

> Ну, у нас Игорь Хомяков (собиравший mon) его выкинул в
> пользу monit.  "Вообще monit та ещё штучка", но сполняет.

на monit я смотрел, но mon мне показался более гибким.

-- 
Best Regards, Konstantin Klimchev 
(mailto:[EMAIL PROTECTED]jabber:[EMAIL PROTECTED])
ATK-Internet ISP, Arkhangelsk, Russia



Re: пакет mon

2004-11-17 Пенетрантность Michael Shigorin
On Wed, Nov 17, 2004 at 09:04:20AM +0300, Konstantin Klimchev wrote:
> > А вообще mon та еще штучка..
> А по подробнее... У меня пока довольно неплохое ощущение,
> комфортное, я бы выразился..

Ну, у нас Игорь Хомяков (собиравший mon) его выкинул в пользу
monit.  "Вообще monit та ещё штучка", но сполняет.

-- 
  WBR, Michael Shigorin <[EMAIL PROTECTED]>
  -- Linux.Kiev http://www.linux.kiev.ua/



Re: пакет mon

2004-11-17 Пенетрантность Konstantin Klimchev
On Tue, 16 Nov 2004 22:07:10 +0300
"Sergey V. Burchu" <[EMAIL PROTECTED]> wrote:

> Как-то раз пришлось решать такую проблему(тож sms). 
> Правили init скрипт. Он в аттаче. Кажется рабочий даже. 
А мантейнеру не пробовали послать? Было б замечательно. По
крайней мере уже 2-е кто подорвался.

> А вообще mon та еще штучка..
А по подробнее... У меня пока довольно неплохое ощущение,
комфортное, я бы выразился..

-- 
Best Regards, Konstantin Klimchev 
(mailto:[EMAIL PROTECTED]jabber:[EMAIL PROTECTED])
ATK-Internet ISP, Arkhangelsk, Russia



Re: пакет mon

2004-11-16 Пенетрантность Sergey V. Burchu
Tue, Nov 16, 2004 at 03:38:02PM +0300, Вы(Konstantin Klimchev) написали:
> Сам с собой общаюсь. Похоже на обострение...
> 
> Корни проблемы в том, что необходимо отправлять sms при
> каких-либо (заранее описаных) проблемах.
> 
> Имеем /dev/ttyUSB0 
> c правами root:dialout
> и доступом crw-rw
> 
> Проблему, описанныю в первом посте обошел следующим образом:
> Владельцем /dev/ttyUSB0 сделал пользователя daemon.
> 
> А теперь - на сколько это правильно, если это не красиво,
> как сделать красиво: 
> - править init-скрипт, 
> - менять права на /dev/ttyUSB0
> - запускать от root (но это делать не буду точно)
> - ...

Как-то раз пришлось решать такую проблему(тож sms).  Правили init
скрипт. Он в аттаче. Кажется рабочий даже. А вообще mon та еще
штучка..

-- 
Burchu Sergey.
#!/bin/sh -e

# $Id: init,v 1.7 2001/09/14 02:18:25 roderick Exp $

# These specify the user and group that mon runs as.  You can use group
# daemon instead of group shadow if you want to limit its permissions,
# but then it won't be able to authenticate users against the shadow
# password file.

user=daemon
group='shadow dialout'

# Don't let group shadow write to my files.

umask 22

# This specifies mon's configuration file.  If this file name ends with
# .m4 it's preprocssed with m4.  The shell code after the assignment
# causes this script to use a .m4 version if it exists.

cfg=/etc/mon/mon.cf
[ -f $cfg.m4 ] && cfg=$cfg.m4

# These are the args which are passed to mon.  -f tells it to fork and
# run as a daemon, -c just makes use of the config file setting from
# above (notably, so that a .m4 version is picked up).

args="-f -c $cfg"

# You're less likely to need to change any of the others.

script=`basename "$0"`
daemon=/usr/sbin/mon
pid=/var/run/mon/mon.pid
desc='monitor daemon'
name=mon

# Add system dirs for start-stop-daemon.
PATH=$PATH:/sbin:/usr/sbin

[ -f $daemon -a -f $cfg ] || exit 0

# Don't bother if the user hasn't configured the package, there is no
# default configuration but there is a default config file (which just
# contains comments).

egrep -v '^[]*$|^#' $cfg >/dev/null || exit 0

warn() {
echo "$script:" "$@" >&2
}

die() {
warn "$@"
exit 1
}

usage() {
[ $# = 0 ] || warn "$@"
warn "usage: \`$script '"
warn "valid actions: start stop restart reload force-reload"
exit 1
}

# I originally used su to start the daemon as user daemon, but ran into
# trouble with the differing requirements of su and secure-su.  The GNU
# getopt's troublsome behavior of looking for switches anywhere on the
# command line requires that one use -- if one wants to pass switches
# to the shell, but secure-su doesn't allow the --.  One could set
# POSIXLY_CORRECT to prevent this poor getopt_long() behavior, but then
# the sub-command would have that in its environment.  In disgust I
# gave up and switched to using Perl.

daemon_run() {
perl -we '
$user = shift;
$group = shift;
if ($group =~ /\s+/)
{
foreach $a (split(/\s+/, $group))
{
defined($gid = getgrnam $a)
  or die "Cannot find gid for group $a\n";
if (!defined $fgid) {
$fgid = $gid;
}
$tmp .= "$gid ";
}
chop($tmp);
}
else {
defined($fgid = getgrnam $group)
  or die "Cannot find gid for group $group\n";
$tmp = "$fgid $fgid";
}
$) = $tmp; 
$( = $fgid;
#   if ($( ne "$gid $gid" || $) ne "$gid $gid") {
if ($( ne $tmp || $) ne $tmp) { 
die "Error setting group ids, real/effective is now $(/$)\n";
}
defined($uid = getpwnam $user)
or die "Cannot find uid for user $user\n";
$< = $uid;
$> = $uid;
if ($> != $uid || $< != $uid) {
die "Error setting user ids, real/effective is now $\n";
}
exec @ARGV or die "Error running $ARGV[0]: $!\n";
' "$user" "$group" "$@" ||
die "return $? setting ids and running:" "$@"
}

[ $# = 1 ] || usage "wrong number of args (got $# expected 1), args are:" "$@"

action=$1
set -- --pidfile $pid --startas $daemon -- $args

stop_mon() {
running_mon_pid=`cat $pid 2>/dev/null` || true
daemon_is_running() {
[ -f $pid -a /proc/"$running_mon_pid"/exe -ef /usr/bin/perl ]
}

start-stop-daemon --stop --oknodo "$@"
daemon_is_running || return 0
sleep 1
daemon_is_running || return 0

# Wait for the daemon to exit before continuing, so that a subsequent
# start doesn't fail if it happens too soon.

echo -n " [waiting for mon (pid $running_mon_pid) to exit..."
n=0
while daemon_is_running
do
n=`expr $n + 1`
[ $n = 60 ] && die "giving up, mon still hasn't exited"
echo -n .
sleep 1
done
echo -n "]"
}

case x-$action in
x-start)
echo -n "Starting

Re: пакет mon

2004-11-16 Пенетрантность Konstantin Klimchev
On Tue, 16 Nov 2004 17:03:50 +0300
Иван Лох <[EMAIL PROTECTED]> wrote:

> use POSIX; 
> @groups=&POSIX::getgroups()
> 
> ;-

ну вот. Я в сомнениях. 
То ли init-скипт  менять, то ли права на /dev/ttyUSB0

-- 
Best Regards, Konstantin Klimchev 
(mailto:[EMAIL PROTECTED]jabber:[EMAIL PROTECTED])
ATK-Internet ISP, Arkhangelsk, Russia



Re: пакет mon

2004-11-16 Пенетрантность Иван Лох
On Tue, Nov 16, 2004 at 04:43:40PM +0300, Konstantin Klimchev wrote:
> On Tue, 16 Nov 2004 16:31:37 +0300
> "Yuri Kozlov" <[EMAIL PROTECTED]> wrote:
> 
> > В общем я тоже не фанат перла (да и аналога getgroups я у
> > него сразу не нашёл),но можно немножно поправить скриптик
> огромное мерси... :)
> а аналог getgroups найдем...
> 
use POSIX; 
@groups=&POSIX::getgroups()

;-

-- 
Иван Лох



Re: пакет mon

2004-11-16 Пенетрантность Konstantin Klimchev
On Tue, 16 Nov 2004 16:31:37 +0300
"Yuri Kozlov" <[EMAIL PROTECTED]> wrote:

> В общем я тоже не фанат перла (да и аналога getgroups я у
> него сразу не нашёл),но можно немножно поправить скриптик
> В daemon_run()
> ...
>   $) = "$gid $gid 20";
>  if ($( ne "$gid $gid 20" || $) ne "$gid $gid 20")
>  {
>  die "Error setting group ids, real/effective
>  is now 
> $(/$)\n";
> 
> зы Python лучше :)

огромное мерси... :)
а аналог getgroups найдем...

-- 
Best Regards, Konstantin Klimchev 
(mailto:[EMAIL PROTECTED]jabber:[EMAIL PROTECTED])
ATK-Internet ISP, Arkhangelsk, Russia



Re: пакет mon

2004-11-16 Пенетрантность Yuri Kozlov

On Tue, 16 Nov 2004 15:43:36 +0300
 Konstantin Klimchev <[EMAIL PROTECTED]> wrote:

там еще прослойка perl'овская в инит-скрипте - может она (на
нее как раз грешу), но перл для меня - надо подумать (сходу
не могу) - я все более по питону.
В общем я тоже не фанат перла (да и аналога getgroups я у него сразу 
не нашёл),но можно немножно поправить скриптик

В daemon_run()
...
 $) = "$gid $gid 20";
if ($( ne "$gid $gid 20" || $) ne "$gid $gid 20") {
die "Error setting group ids, real/effective is now 
$(/$)\n";


зы Python лучше :)

Regards,
Yuri Kozlov



Re: пакет mon

2004-11-16 Пенетрантность Konstantin Klimchev
On Tue, 16 Nov 2004 15:31:32 +0300
Artem Chuprina <[EMAIL PROTECTED]> wrote:

> После того, как добавил пользователя в группу, серверу
> stop; start делал?  Впрочем, бывает разное.  
да, как уже описывал

>В принципе, если он сам меняет
> identity, то это его задача проинитить дополнительные
> группы.  У clamav, например, на эту тему слово в конфиге
> есть.  
этого нет

>С другой стороны, если в норме он запускается уже
> под нужным пользователем, то дополнительные группы должен
> инитить не он.
службы работы с инит-скриптами не могут такое творить (т.е.
берем только группу пользователя, а в какие группы он
входит еще - побоку)?
там еще прослойка perl'овская в инит-скрипте - может она (на
нее как раз грешу), но перл для меня - надо подумать (сходу
не могу) - я все более по питону.

А решил проблемку - права на девайс поменят. Хак об колено
так сказать.

-- 
Best Regards, Konstantin Klimchev 
(mailto:[EMAIL PROTECTED]jabber:[EMAIL PROTECTED])
ATK-Internet ISP, Arkhangelsk, Russia



Re: пакет mon

2004-11-16 Пенетрантность Konstantin Klimchev
Сам с собой общаюсь. Похоже на обострение...

Корни проблемы в том, что необходимо отправлять sms при
каких-либо (заранее описаных) проблемах.

Имеем /dev/ttyUSB0 
c правами root:dialout
и доступом crw-rw

Проблему, описанныю в первом посте обошел следующим образом:
Владельцем /dev/ttyUSB0 сделал пользователя daemon.

А теперь - на сколько это правильно, если это не красиво,
как сделать красиво: 
- править init-скрипт, 
- менять права на /dev/ttyUSB0
- запускать от root (но это делать не буду точно)
- ...

-- 
Best Regards, Konstantin Klimchev 
(mailto:[EMAIL PROTECTED]jabber:[EMAIL PROTECTED])
ATK-Internet ISP, Arkhangelsk, Russia



Re: пакет mon

2004-11-16 Пенетрантность Artem Chuprina
Konstantin Klimchev -> debian-russian@lists.debian.org  @ Tue, 16 Nov 2004 
15:05:53 +0300:

 >> Вопрос: куда делась группа 20 (dialout)
 >> 
 >> PS. перезапуск сервиса выполнялся, в отчаянии даже сервер
 >> (он тестовый - можно) перезагружал.

 KK> хм... проблема где-то в недрах /etc/init.d/mon

 KK> если пускать "в лоб":  

 KK> su - daemon -c "/usr/bin/mon" 

 KK> то все нормально

После того, как добавил пользователя в группу, серверу stop; start
делал?  Впрочем, бывает разное.  В принципе, если он сам меняет
identity, то это его задача проинитить дополнительные группы.  У clamav,
например, на эту тему слово в конфиге есть.  С другой стороны, если в
норме он запускается уже под нужным пользователем, то дополнительные
группы должен инитить не он.

-- 
Artem Chuprina
RFC2822: <[EMAIL PROTECTED]>, FIDO: 2:5020/122.256, Jabber: [EMAIL PROTECTED]



Re: пакет mon

2004-11-16 Пенетрантность Konstantin Klimchev
On Tue, 16 Nov 2004 14:50:48 +0300
Konstantin Klimchev <[EMAIL PROTECTED]> wrote:

> Вопрос: куда делась группа 20 (dialout)
> 
> PS. перезапуск сервиса выполнялся, в отчаянии даже сервер
> (он тестовый - можно) перезагружал.

хм... проблема где-то в недрах /etc/init.d/mon

если пускать "в лоб":  

su - daemon -c "/usr/bin/mon" 

то все нормально


-- 
Best Regards, Konstantin Klimchev 
(mailto:[EMAIL PROTECTED]jabber:[EMAIL PROTECTED])
ATK-Internet ISP, Arkhangelsk, Russia