Попередня відповідь не з'явилася безпосередньо для вирішення питань, тому я подумав, що додам її.
- Мій план полягає в тому, щоб служба запускалася як обліковий запис "Місцева служба" за замовчуванням. Я збираюся явно встановити привілеї "Повний контроль" для облікового запису "Місцева служба" в папці, яку я читаю / пишу до та з якої. Я вважаю, що вищесказане - хороший план.
Особисто я не бачу великого питання з цим планом. З BUILTINs вибір вибирається між:
- Працює як LOCALSYSTEM - тому, якщо ця послуга порушена, зловмиснику належить все , і негайно.
- Працює як LOCALSERVICE - тому якщо ця послуга або будь-яка з багатьох інших служб, що працюють під цим обліковим записом, порушена, зловмисник має доступ до однієї додаткової каталоги. *
Можливо, бажано додавати кілька додаткових ACL, щоб мати можливість використовувати другий варіант. Так, найбезпечнішим варіантом послуги з низькими привілеями, але дуже чутливою до безпеки, буде запуск у спеціально налаштованому обліковому записі служби з низькими привілеями. Але якщо ви не хочете створити новий обліковий запис / керувати паролями для кожної розгорнутої служби, використання LocalService для незначних нечутливих завдань - не така страшна річ. Вам просто потрібно прийняти відповідальне рішення, виходячи з цих міркувань, як, наприклад, те, що знаходиться в цьому каталозі чи цій базі даних, вплив, якщо вони порушені тощо.
Хоча знову ж таки, щонайменше, привілейований принцип, ви повинні встановлювати лише Full Control
якщо Modify
насправді недостатньо.
2.Моє запитання, чи потрібно мені для папки, в яку я читаю і пишу, налаштувати роль "Мережева служба" з повним доступом до управління? Мені цікаво, оскільки моя служба використовує підключення бази даних до іншого сервера, якщо мені знадобиться настройка облікового запису "Служба мережі".
Якщо у вашій базі даних потрібен інтегрований вхід у систему Windows / SSPI, тоді так, вам потрібно буде використовувати NetworkService (або обліковий запис служби домену) скрізь, тобто дозволи дозволів RunAs та каталогів. Припустимо, що ви також надали ім’я комп’ютера $ або доменний обліковий запис до цієї бази даних. Я сумніваюся, що ви це робите, тому, якщо він використовує звичайну автентифікацію ім'я користувача / pwd, ви повинні мати можливість робити все з LocalService. Вам потрібно надати лише одне право облікового запису на цей каталог, що б ви не використовували у своїх RunA, а не обидва.
3.Я можу нерозуміти, що робить обліковий запис "Мережева служба".
LocalService / NetworkService - це майже однакові облікові записи на локальному комп'ютері. Різниця в основному полягає в тому, що вони можуть робити в мережі. NS може отримати доступ до деяких мережевих ресурсів, оскільки він відображається в мережі як реальний (комп'ютерний) рахунок. Але LS з'явиться як АНОНИМНИЙ, тому йому буде відмовлено здебільшого все в мережі.
До речі, ви повинні використовувати для цього заплановане завдання, а не послугу.
* З Vista і надалі через ізоляцію служби один компрометований процес LocalService не може легко атакувати інший. Кожен процес / екземпляр служби LocalService / NetworkService отримує власний унікальний SID сеансу входу (унікальний власник), на відміну від Windows 2003. Але я не впевнений, що це ідеально і повністю зменшує вразливість DACL щодо файлів та ресурсів. У цьому контексті згадуються обмежені SID та маркери з обмеженим записом .