Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Права на папочку?

349  
Murr патриот24.10.18 12:21
Murr
24.10.18 12:21 

Права на папочку?


Кусок кода, проверяющего структуру на диске :


string appDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
if(appDataFolder == string.Empty)
{
appDataFolder = @"C:\inetpub\logs";
}
string dumpFolder = Path.Combine(appDataFolder, PathTo);
if(!Directory.Exists(dumpFolder))
{
Directory.CreateDirectory(dumpFolder);
}

string backupFolder = Path.Combine(dumpFolder, BackupDir);
if(!Directory.Exists(backupFolder))
{
Directory.CreateDirectory(backupFolder);
}


В ВинАпп - все работает нормально - ДатаФолдер - получается, папочки создаются.

Под ИИС - наступает большая задница. Юзер, который создается для пула, не имеет своего профайла - ДатаФолдер будет пустой строкой.

Ну это проверяется и подставляется место куда пишутся логи. Бо, это тоже часть логов...

А дальше - идет облом.

Нет пермита на запись. И нет юсера которому можно дать права на запись - там только спец.аккаунт для апппула.

Можно поменять идентити от которого работает апппул на LocalSystem - но в этом случае папочки будут где-то глубоко в С:\Виндовс\..., что мне совершенно не нравится.

Можно создать специального юзера с правами на запись в логс и задать его для апппула, но полиси требует смены пароля каждые 28 дней и поменять этo нельзя...


В общем - непонятно где копать.

Нужны права на создание папок и запись в файлы в этих папках, работающее под ВинЮсером и под ИисЮсером.


#1 
Программист коренной житель24.10.18 12:33
NEW 24.10.18 12:33 
в ответ Murr 24.10.18 12:21

Дать права Everyone'у на чтение и запись?

#2 
Murr патриот24.10.18 13:33
Murr
NEW 24.10.18 13:33 
в ответ Программист 24.10.18 12:33

Может быть, но не есть хорошо.

Бо, апппуллов уже с десяток и месиво SQL из разных апппуллов будет нужно как-то разбирать.

Эта же проблема и у LocalSystem.

#3 
Программист коренной житель24.10.18 16:26
NEW 24.10.18 16:26 
в ответ Murr 24.10.18 13:33

Ты определись, что тебе надо: права на запись в папку (C:\inetpub\logs) или различать апппуллы? Или что-то третье?

#4 
Murr патриот24.10.18 16:33
Murr
NEW 24.10.18 16:33 
в ответ Программист 24.10.18 16:26

Так оно по-отдельности мне не интересно - мне надо куда-то сбросить поток выполняемых запросов, текстом, для последующего анализа при наличии проблем. Но в параллели работают несколько винапп и вебапп в своих пулах. Пимпочку для писать-не-писать Я, разумеется, приделал, но такого разделения похоже недостаточно...


А так - надо писать туда где у вин-юзера лежат аппдата - с этим проблем нет, ну а для иис - в папочку логов, в подпапочку апппулла - тут пока затыk.


Вроде так.

#5 
  abc321 местный житель01.11.18 13:21
NEW 01.11.18 13:21 
в ответ Murr 24.10.18 12:21

А права у IISa на appDataFolder есть ??

#6 
Murr патриот01.11.18 15:14
Murr
NEW 01.11.18 15:14 
в ответ abc321 01.11.18 13:21

У самого ИИС - разумеется - он свои логи пишет.

А вот у пуула - нету - нет такого юсера - виртуальный он...

#7 
  abc321 местный житель01.11.18 15:24
NEW 01.11.18 15:24 
в ответ Murr 01.11.18 15:14

Т.е. точно, что IUSR имеет права на эту папку и находится в списке юзеров ?

#8 
Murr патриот01.11.18 16:01
Murr
NEW 01.11.18 16:01 
в ответ abc321 01.11.18 15:24

IUSR вроде как не при делах - от его имени ничего не делается.


Пыххх... сейчас решил перепроверить что там с юзверем от которого запускается процесс ИИС... фиг там - сервер - отвечает и управляем, а процесса сервера - нет в списке процессов...

В общем - наТо чи-нЫть сЫстему... безум

#9