The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Когда выполняются скрипты root preexec и root postexec?"
Отправлено DRVTiny, 21-Сен-06 18:31 
Написал скрипт, который должен при вхолде пользователя в домен писать пару вида ПОЛЬЗОВАТЕЛЬ@ХОСТ в файл /var/log/samba/WhoIsIn, а при выходе - удалять её оттуда или же удалять сам файл. Параллельно пишется небольшой лог.
Теперь вижу следующую картину:
При входе пользователя в логе появляется 3-4 записи о входе (столько раз запускался скрипт), при выходе и, к сожалению, даже не только при выходе - ещё 3-4 записи о выходе в этот же лог пишутся.
Вопрос: почему скрипт root preexec/postexec запускается, мягко говоря, слишком часто?
Собственно скрипт приводится ниже (вызывается по имени hndlDomainUserEnter для preexec и hndlDomainUserOut для postexec, с hndlDomainUserEnter на hndlDomainUserOut создана симв. ссылка)
----------
#!/bin/bash
slf="${0##*/hndlDomainUser}"
. /etc/sysconfig/functions/cmn
. /etc/sysconfig/functions/rxdef
echo "Event: $slf Who: $@" >> /var/log/samba/dummylog
rxIP="$rxIP_ADDR"
rxmIP=
rxHOST='[A-Z][A-Z0-9_-]*[A-Z0-9]'
rxmHOST='I'
rxUSR='([A-Z]+|[A-Z]{,2}[a-z]+)[0-9]*'
rxmUSR=
while [ $# -ne 0 ]; do
key="$1"; shift
[ $# -gt 0 ] || exit 1
case "$key" in
i|-i|--ip-addr)   id=IP ;;
u|-u|--user-name) id=USR ;;
h|-h|--host)      id=HOST ;;
esac
set_aliases "$id" rx rxm flAlreadyUsed
chk_fl $flAlreadyUsed && exit 1
[ "`echo \"$1\" | eval \"sed -nr 's%^${!rx}$%MATCH%p${!rxm}'\"`" = "MATCH" ] || exit 1
eval val${id}=\"$1\"; shift
done
fileWhoIsIn="/var/log/samba/WhoIsIn"
#[ -w "$fileWhoIsIn" ] || exit 1
case "$slf" in
Enter)
  if [ -f "$fileWhoIsIn" ] ; then
   grep -qE "^${valUSR}@${valHOST}$" $fileWhoIsIn && exit 1
   echo "$valUSR@$valHOST" >> $fileWhoIsIn
  else
   cat >"$fileWhoIsIn" <<-EOF
# List of users, who has entered the samba domain
# File format: <start of string>USERNAME@HOST<end of string>
# See description of parameters prerootexec and postrootexec in man smb.conf
# This file was created by script $0
$valUSR@$valHOST
EOF
  fi
;;
Out)
  grep -qE "^${valUSR}@${valHOST}$" "$fileWhoIsIn" || exit 1
  fileTMP="`mktemp`"
  if [ -z "`grep -vP \"^(\s*(#.*)?|${valUSR}@${valHOST})$\" \"$fileWhoIsIn\"`" ]; then
   rm -f "$fileWhoIsIn"
  else
   grep -vE "^${valUSR}@${valHOST}$" "$fileWhoIsIn" > "$fileTMP"
   mv -f "$fileTMP" "$fileWhoIsIn"
  fi
;;
*)
  exit 1
;;
esac
 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру