Наверняка кто-то сталкивался с подобными проблемами:
приложение устанавливается у пользователя с ограниченными правами и запускается на выполнение.
В процессе приложение пытается делать запись в файл (например, лог)
Если ему не хватает прав на запись в файл, то какие тут существуют common practices?
Можно, конечно, создать спец. аккаунт с повышенными правами, запускать отдельный процесс под этим аккаунтом,
но это все равно, что из пушки по воробьям, хрень.
Есть ли способ повысить права на запись изменением Security Descriptor папки, в которой пишется файл
или послать всех к администратору, чтобы он дал права?
Здравствуйте, SQLBeginner, Вы писали:
SQL>Добрый день!
SQL>Наверняка кто-то сталкивался с подобными проблемами: SQL>приложение устанавливается у пользователя с ограниченными правами и запускается на выполнение. SQL>В процессе приложение пытается делать запись в файл (например, лог) SQL>Если ему не хватает прав на запись в файл, то какие тут существуют common practices? SQL>Можно, конечно, создать спец. аккаунт с повышенными правами, запускать отдельный процесс под этим аккаунтом, SQL>но это все равно, что из пушки по воробьям, хрень. SQL>Есть ли способ повысить права на запись изменением Security Descriptor папки, в которой пишется файл SQL>или послать всех к администратору, чтобы он дал права?
Лог нужно создавать там, где у пользователя есть привилегии на запись/чтение, в частности, в соотв. поддиректории Local Settings. Путь к некоторым полезным директориям профиля можно узнать при помощи метода Environment.GetFolderPath(). Я лично предпочитаю писать логи в системный журнал и на клиенте, и на сервере, тем более, что администратор домена при желании легко сможет наладить сбор записей со всех пользовательских машин домена.
Здравствуйте, SQLBeginner, Вы писали:
SQL>Добрый день!
SQL>Есть ли способ повысить права на запись изменением Security Descriptor папки, в которой пишется файл SQL>или послать всех к администратору, чтобы он дал права?
Можно прикрутить имперсонификацию на время записи в файл с правами привилегированного пользователя, но это потенциальная дыра в безопасности
B>Можно прикрутить имперсонификацию на время записи в файл с правами привилегированного пользователя, но это потенциальная дыра в безопасности
да, я про это писал выше.
Следует уточнить, что речь идет не о лог — файле, а о кеш — файле, который создает ORM инструмент, используемый в программе.
Слабой попыткой было для родительской папки, в котором находится этот кеш файл, дать все права для @everyone встроенного аккаунта.
Ничем не помогло.