Регистрация...

Eserv Forum / E3 / Eserv 3 Web and FTP Servers Support / Запуск скриптов от имени конкретного пользователя. acWeb

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Здравствуйте. Имеется потребность в запуске отдельных CGI скриптов с определенными правами Windows.
    Сейчас у меня acWeb определяет пользователей по auth_md5. Но хотелось-бы некоторых аутентифицировать по auth_nt. Причем только по определенным адресам.
Например, имеется у нас в папке wwwroot файл /cgi-bin/secret/go.pl
Возможно-ли, чтобы при запросе к wwwroot, acWeb использовал бы auth_md5, а к файлу /cgi-bin/secret/go.pl — auth_nt. И для выполнения файла perl запускался бы от имени вызывающего пользователя NT, а не от SYSTEM?
 
Комментарии к этой версии (07.08.2009 15:33) [~psSnowman] 40bc3bbc
АвторДатаТекстtags
pig07.08.2009 15:44
Если вы права доступа таким образом раздадите — почему бы и нет? Одно но: у меня не получалось запускать скрипты от пользователя с правами ниже администратора. Чего-то не хватало, прав каких-то.
imported
psSnowman07.08.2009 16:18
На вскидку. Наваял.
Uri /cgi-bin/test/* | AuthMethod: NtLogon Unauthorized "WebServerNT" \EOF
Что-то не получилось. Не принимает пароль.
imported
pig07.08.2009 16:51
Так вы, во-первых, авторизацию не вызываете (метод выбрали, а собственно действий по проверке реквизитов пользователя нет), во-вторых, безусловно отказываете.
Там хитрее надо — допускать туда только пользователей из домена NT (и, возможно, только по списку). То есть, надо как минимум проверять, что Domain возвращает. А сначала проверять UID, установлен ли он вообще. Вот схема авторизации, работающая в PigMail/PigProxy:
( Авторизация пользователя по общим правилам ) \ IP-авторизация выполнена (если была) в OnRequestBegin \ если по ходу дела передавались явные параметры авторизации, \ IP-авторизация сброшена \ поэтому делается попытка обработать явную авторизацию UID @ 0= \ авторизации еще не было (или сброшена) [IF] User NIP \ пользователь задан? [IF] \ да - выполнить авторизацию AuthMethod: AuthDomains [DEFINED] AuthCache:Login [IF] AuthCache:Login [ELSE] LOGIN [THEN] UID @ [IF] 2320 [ELSE] 2330 [THEN] LOG \ отметить результат в журнале [ELSE] 2332 LOG \ отметить неавторизованную сессию [THEN] [THEN]

AuthCache:Login (в стандартной конфигурации как-то по-другому обзывается) вам не надо однозначно, имперсонализация и кэширование несовместимы, поэтому оставляете LOGIN. Если в UID после логина ноль — авторизация не прошла. Если не ноль — можно смотреть на домен, на логин, на то, как оно с URI сочетается.
imported
psSnowman09.08.2009 17:25
Будем пробовать. Спасибо.
imported
Работает на Eserv/5.05567 (10.02.2020)