Главная страница
    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.007 c
3-32666
Alexsys
2002-03-16 06:55
2002.04.11
Описание отчета в текстовом файле??? Выручайте... ПЛИЗ!


4-33011
Yaro
2002-02-10 21:38
2002.04.11
Принудительное завершение работы программы, не имеющую окна или как получить Хэндл процесса


3-32688
kat
2002-03-21 10:59
2002.04.11
Excel


1-32865
LazorenkoX
2002-03-29 11:02
2002.04.11
Создание компонент


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





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский