Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.012 c
3-32700
MAxiMum
2002-03-13 15:23
2002.04.11
Изменения в сетевой БД


1-32785
snoup
2002-03-29 23:21
2002.04.11
Помогите пожалуйста пишу так надо что бы оно ещё автозапукалось!


1-32855
sammy
2002-03-29 07:11
2002.04.11
обработать OnClick


1-32906
L.eXX
2002-03-24 21:26
2002.04.11
Прозрачно-серый фон


1-32753
lipskiy
2002-03-30 17:36
2002.04.11
TWebBrowser_V1: че-то никак не создать в ран-тайме... Помогите, п





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский