Форум: "Сети";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
ВнизДоступ к файлам Найти похожие ветки
← →
ShaH (2002-01-23 13:16) [0]Такая вот ситуация, когда процесс запускается от имени другого пользователя, этот процесс не имеет прав на открытие файлов. В чем дело, может надо какие-нибудь дополнительные параметры передавать в CreateProcessAsUser() ??
← →
Tosov (2002-01-23 23:44) [1]У меня когда процесс запускается от другого пользователя от имеет ВСЕ права этого пользователя... в т.ч и права доступа к папкам/файлам.В CreateProcessAsUser передаю тоже, что и в CreateProcess.
Или у того логина нет доступа к файлу или ... попробуй поделиться кодом + проверь логин пользователя из нового процесса.
← →
VuDZ (2002-01-24 06:11) [2]покажи код, буд ласко
← →
ShaH (2002-01-24 09:08) [3]Вот код, логин с паролем правильные, иначе бы возникала ошибка аутентификации. Помогите плиз.
var
hToken: PHANDLE;
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
Err : integer;
lpDesktop: string;
begin
Path:= ExtractFilePath(ParamStr(0));
if FromFile then
LoadFromFile
else
LoadFromRegistry;
if (LogonUser(PChar(User),
PChar(Domain),
PChar(Pass),
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,
hToken^))
then begin
si.cb:=sizeof(STARTUPINFO);
lpDesktop:="WinSta0\Default";
si.lpDesktop:=Addr(lpDesktop[1]);
Err:=Cardinal(CreateProcessAsUser(
hToken^, nil, PChar(Prog) , nil, nil, false,
NORMAL_PRIORITY_CLASS, nil, nil ,
si, pi ));
LogMess("Функции CreateProcessAsUser вернула "+IntToStr(Err));
if (Err<>0)
then begin
LogMess("Все хорошо !!! "+IntToStr(Err));
end
else begin
Err:=GetLastError();
LogMess("Ошибка CreateProcessAsUser "+IntToStr(Err));
end;
end
else begin
Err:=GetLastError();
LogMess("Ошибка аутентификации "+IntToStr(Err));
end;
← →
ShaH (2002-01-24 19:39) [4]код выложил, с нетерпением жду ответа.
ПОМОГИТЕ !!!!!!
← →
_Tosov (2002-01-25 07:29) [5]Визуально вроде все в норме
Если хочешь- можешь прислать весь исходник (часть которая запускает программу и то что выполняется до и после этого - дома скомпилирую и проверю
Или кроме того что ты написал ничего важного в программе не происходит?
← →
_Tosov (2002-01-25 07:30) [6]Визуально вроде все в норме
Если хочешь- можешь прислать весь исходник (часть которая запускает программу и то что выполняется до и после этого - дома скомпилирую и проверю
Или кроме того что ты написал ничего важного в программе не происходит?
← →
ShaH (2002-01-25 08:26) [7]Запускаемая программа при запуске пытается прочитать свой файл настроек и не может, если она была запущена при помощи вышеописанного кода. Если она просто запускается , то все нормально, все файлы открываются. Программа-загрузчик прописывается в реестре в ключе Software\Microsoft\Windows NT\Current Version\Winlogon\System
← →
VuDZ (2002-01-25 09:13) [8]1. попробуй использовать CreateProcessWithLogonW, так как LogonUser требует SE_TCB_NAME привилегию, которая по умолчанию есть только у LocalSystem аккаунта.
В Win2K можно вызвать CreateProcessWithLogonW, которая не требует дополнительных привилегий. Она обращается к RunAs сервису, который вызывает LogonUser и CreateProcessAsUser из LocalSystem аккаунта.
В NT 4 единственный известный мне способ - это сделать свой сервис в LocalSystem, из которого вызывать LogonUser и CreateProcessAsUser. Ограничение LogonUser можно обойти, если использовать NTLM SSP для аутентификации и получения токена (это описано в MSDN KB article Q180548). Но даже имея токен, вызвать CreateProcessAsUser из обычного аккаунта не получится, поскольку она требует наличия SE_ASSIGNPRIMARYTOKEN_NAME привилегии, которая тоже по умолчанию только у LocalSystem.
Ещё вопросы есть?
← →
Tosov (2002-01-25 23:34) [9]VuDZ
Это все интересно, но как программа в таком случае работает если у нее нет прав на это? ShaH же сказал, что ошибок не возникает. А вышеуказанный ключ должен запускать программу as LocalSystem.
← →
Tosov (2002-01-26 00:06) [10]ShaH ©
Я запускал этот код под NT4.Запускался far и с правами все было нолрмально - по факту - кому что положено тот то и получил :) А положено было только юзеру, под которым запускался фар.
Посмотри еще раз права доступа в конфигурационному файлу.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c