Надайте програмі права доступу до каталогу в каталозі в Windows


1

Я мало знаю про дозволи Windows, але чи є спосіб дати дозвіл сценарію чи програми створювати символьні посилання, що посилаються лише в дереві каталогів aa, який каже, що програма "володіє"? (Посилання живуть на дереві. Так само роблять цілі.)

Примітка. Я не хочу надавати права адміністратору сценарію.

Відповіді:


1

Нічого вбудованого, вибачте. Ви можете надати користувачеві, який запускає процес (будь то сам або якийсь інший обліковий запис) привілей SeSymbolicLink, який дозволить створювати символьні посилання без надання доступу до іншого адміністратора. Символьні посилання все ще можуть бути відкритими лише в будь-якому місці, де обліковий запис інакше міг би створити файл, і звичайні перевірки доступу все ще застосовуватимуться (якщо символьне посилання вказувало на файл, який ви можете прочитати, але не записати, ви зможете прочитати його через симпосилання, але все одно не зможе написати на це). Це, сподіваємось, досить безпечно; Єдина причина, що для посилань взагалі вимагає особливої ​​привілеї для Windows, це те, що вони були недоступні до Vista, тому багато застарілих програм не обробляють їх належним чином, особливо для таких речей, як петлі каталогів чи інші подібні погані ідеї.

Щоб дозволити даному користувачеві створювати символьні посилання (надавши користувачеві SeSymbolicLinkPrivilege), виконайте наступне:

  1. Запустіть локальний редактор політик безпеки ( secpol.msc). Це вимагатиме доступу адміністратора.
  2. Дивіться у розділі "Місцева політика" -> "Призначення прав користувача". Знайдіть запис "Створити символічні посилання".
  3. Двічі клацніть запис, щоб відкрити його, а потім натисніть [Add User or Group...].
  4. У вікні, що з’явиться, введіть ім’я користувача Windows і натисніть [Check Names]. Він повинен змінитись на повністю кваліфіковане ім’я з підкресленням. Якщо це не так, слід спробувати інші форми імені користувача. Ви також можете натиснути [Advanced]для пошуку списку параметрів.
  5. Після того, як у полі буде підкреслено ім'я користувача, натисніть [OK]на вікно "Вибрати користувачів та групи", а потім натисніть [OK]на вікно "Створити символьні властивості посилання".
  6. Якщо відповідний користувач увійшов у систему, вийдіть із системи та ввійдіть знову. Тепер користувач повинен мати можливість створювати символічні посилання, не потребуючи привілеїв адміністратора.

Інший варіант - використовувати жорсткі посилання NTFS. На відміну від символьних посилань, будь-якому користувачеві дозволяється створювати жорстке посилання (за замовчуванням). Однак, на відміну від символьних посилань (і на відміну від твердих посилань POSIX), ви не можете створити жорстке посилання, якщо у вас не буде спеціального дозволу (Write Attributes? Щось із загальної категорії "Write") у файлі призначення. Таким чином, якщо вам потрібно лише зв’язувати файли (а не каталоги), і у вас є доступ для запису до відповідних файлів, ви, ймовірно, можете використовувати жорсткі посилання просто чудово (вони діють як тверді посилання POSIX, слідуючи за вузлом файлу, а не ім'ям файлу, і якщо ви видалите "вихідний файл", але не посилання, дані не видаляються, поки ви також не видалите посилання).

Якщо вам також потрібне посилання на каталог, ви можете - як пропонує @WesSayeed - використовувати компресори NTFS. Їх складніше створити програмно (хоч і просто зі сценарію), але вони працюють добре для більшості цілей, для яких зазвичай можна використовувати символьну посилання каталогів.


0

Звичайний користувач не потребує спеціальних дозволів для створення переходів (які дуже схожі на символьні посилання).

Ви можете переконатися в цьому, відкривши командний рядок (не підвищений) та ввівши mklink /j <link> <target>(замінивши посилання та назви цілей на будь-який каталог, який ви хочете). Ви побачите, що ця команда успішна, навіть якщо у вас немає дозволів адміністратора. Ви все одно не зможете скористатися посиланням, якщо у вас немає дозволу на ціль.

Просто використовуйте mklinkкоманду в сценарії, і вона буде добре працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.