Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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 и с правами все было нолрмально - по факту - кому что положено тот то и получил :) А положено было только юзеру, под которым запускался фар.
Посмотри еще раз права доступа в конфигурационному файлу.




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.042 c
1-32783           BofA                  2002-03-31 14:10  2002.04.11  
Как влезть в контекстное меню Explorer a


6-32931           bg8                   2002-01-23 18:38  2002.04.11  
TCustomWinSocket


1-32739           LazorenkoX            2002-03-30 00:09  2002.04.11  
Движок БД (file of XXX)


1-32848           IronHawk              2002-03-27 10:32  2002.04.11  
Приветствую Мастеров ! Прошу бААААльшой помощи, неоткажите....


3-32659           Makc                  2002-03-20 10:03  2002.04.11  
Проблема с переводом timestamp во что-нибудь более удобочитаемое