Создание символьных ссылок
Функция CreateSymbolicLink позволяет создавать символьные ссылки, используя абсолютный или относительный путь.
Символические ссылки могут быть абсолютными или относительными. Абсолютные ссылки — это ссылки, указывающие каждую часть имени пути; относительные ссылки определяются относительно того, где описатели относительные ссылки находятся в указанном пути. Относительные ссылки указываются с помощью следующих соглашений:
- Соглашения о точках (. и ..), например «. \» разрешает путь относительно родительского каталога.
- Имена без косой черты (\) — например, «tmp» разрешает путь относительно текущего каталога.
- Корневая относительная— например, «\Windows\System32» разрешается в «текущий диск:\Windows\System32″. directory.
- Текущий рабочий каталог, относительный— например, если текущим рабочим каталогом является «C:\Windows\System32», «C:File.txt» разрешается в «C:\Windows\System32\File.txt». Примечание Если указать относительную связь текущего рабочего каталога, она создается как абсолютная связь из-за того, как текущий рабочий каталог обрабатывается на основе пользователя и потока.
Символьная ссылка также может содержать как точки соединения, так и подключенные папки в качестве части имени пути.
Символические ссылки могут указывать непосредственно на удаленный файл или каталог с помощью UNC-пути.
Относительные символьные ссылки ограничены одним томом.
Пример абсолютной символьной ссылки
В этом примере исходный путь содержит компонент «x«, который является абсолютной символьной ссылкой. При обнаружении «x» фрагмент исходного пути вплоть до «x» полностью заменяется путем, на который указывает «x«. Оставшаяся часть пути после «x» добавляется к этому новому пути. Теперь он становится измененным путем.
Ссылка: «absLink» сопоставляется с «\\machineB\share»
Измененный путь: «\\machineB\share\gamma\file»
Пример относительных символических ссылок
В этом примере исходный путь содержит компонент «x«, который является относительной символьной ссылкой. При обнаружении «x» x полностью заменяется новым фрагментом, на который указывает «x«. Остаток пути после «x» добавляется к новому пути. Все точки (..) в этом новом пути заменяют компоненты, которые отображаются перед точками (..). Каждый набор точек заменяет предыдущий компонент. Если число точек (..) превышает количество компонентов, возвращается ошибка. В противном случае после завершения замены всех компонентов сохраняется окончательный измененный путь.
Ссылка: «link» сопоставляется с «. \.. \theta»
Измененный путь: «C:\alpha\beta\.. \.. \theta\gamma\file»
Окончательный путь: «C:\theta\gamma\file»
Команда MKLINK – создание символьной ссылки на файл или каталог.
Символьная (символическая) ссылка (также симлинк от англ. Symbolic link) — специальный файл в файловой системе, для которого не формируются никакие данные, кроме одной текстовой строки с указателем. Ссылка может указывать на файл, каталог или даже несуществующий файл. Основное назначение символьных ссылок – создание удобной структуры файлов и каталогов в файловой системе. Ссылки позволяют для одного файла или каталога иметь несколько имён, абсолютно никак не связанных с именами файлов или каталогов, на которые они ссылаются. На практике, символьные ссылки используются для подключения в нужное место файловой системы файлов или папок, расположенных в произвольных местах, а также для связывания содержимого с конкретным именем файла или каталога. Например, для подключения к каталогу, обслуживаемому FTP-сервером, съемного диска (флэшки) для временной раздачи по FTP. Вместо копирования содержимого флэшки, можно в домашнем каталоге сервера создать символьную ссылку, ссылающуюся на ее содержимое.
Формат командной строки MKLINK:
MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение
Параметры командной строки:
/D — Создание символической ссылки на каталог. По умолчанию создается символическая ссылка на файл.
/H — Создание жесткой связи (hard link)вместо символической ссылки.
/J — Создание соединения для каталога.
Ссылка — Имя новой символической ссылки.
Назначение — Путь (относительный или абсолютный), на который ссылается создаваемая ссылка.
mklink /? — отобразить подсказку по использованию команды.
mklink /D slnk1 D:\ — создать в текущем каталоге символьную ссылку с именем slnk1 , ссылающуюся на корневой каталог диска D:
mklink /D C:\mountpoint\ShC \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\ — создать символическую ссылку с именем ShC в каталоге mountpoint на диске C: , ссылающуюся на теневую копию (мгновенный снимок) диска.
При работе с каталогами, параметр /J и параметр /D имеют одинаковый результат.
Для удаления созданных символических ссылок можно воспользоваться стандартными командами командной строки Windows:
erase lnkfile1 — удалить символьную ссылку на файл. Сам файл, на который ссылается ссылка, не удаляется.
del lnkfile1 — то же, но с использованием команды del
rmdir C:\mountpoint\ShC — удаление символической ссылки на каталог. Сам каталог не удаляется. Обратите внимание, что использование команды del для файлов внутри каталога, на который ссылается ссылка, приводит к их удалению.
erase C:\mountpoint\ShC\lile1.txt — удалить файл из каталога, определенного символической ссылкой.
mklink /H hm histmacros.cmd — создать жесткую ссылку с именем hm , ссылающуюся на файл histmacros.cmd . Жесткие ссылки могут создаваться только в пределах одного раздела. Нельзя создать жесткую ссылку, например, командой:
mklink /H C:\mountpoints\hm D:\SCRIPTS\histmacros.cmd
И жесткая ссылка, и файл, на который она ссылается, должны быть на одном и том же логическом диске.
Создание символических ссылок
Описывает рекомендации, расположение, значения, управление политиками и рекомендации по безопасности для параметра политики безопасности Создание символьных ссылок .
Справочные материалы
Это право определяет, могут ли пользователи создавать символьную ссылку с устройства, на которое они вошли.
Символьная ссылка — это объект файловой системы, указывающий на другой объект файловой системы, который называется целевым объектом. Символические ссылки прозрачны для пользователей. Ссылки отображаются как обычные файлы или каталоги, с которыми пользователь или приложение могут действовать точно так же. Символические ссылки предназначены для упрощения миграции и совместимости приложений с операционными системами UNIX. Корпорация Майкрософт реализовала символические ссылки для работы так же, как и ссылки UNIX.
Эта привилегия должна быть предоставлена только доверенным пользователям. Символические ссылки могут выявить уязвимости системы безопасности в приложениях, которые не предназначены для их обработки.
Возможные значения
- Определяемый пользователей список учетных записей
- Не определено
Рекомендации
- Только доверенные пользователи должны получить это право пользователя. Символические ссылки могут выявить уязвимости системы безопасности в приложениях, которые не предназначены для их обработки.
Расположение
Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment
Значения по умолчанию
По умолчанию это право имеют члены группы «Администраторы».
В следующей таблице приведены фактические и действующие значения по умолчанию для этой политики. Значения по умолчанию также можно найти на странице свойств политики.
| Тип сервера или объект групповой политики | Значение по умолчанию |
|---|---|
| Default Domain Policy | Не определено |
| Политика контроллера домена по умолчанию | Не определено |
| Параметры по умолчанию для автономного сервера | Не определено |
| Действующие параметры по умолчанию для контроллера домена | Администраторы |
| Действующие параметры по умолчанию для рядового сервера | Администраторы |
| Действующие параметры по умолчанию для клиентского компьютера | Администраторы |
Управление политикой
В этом разделе описываются различные функции и средства, доступные для управления этой политикой.
Перезапуск устройства не требуется, чтобы этот параметр политики вступил в силу.
Изменения прав пользователя вступают в силу при его следующем входе в учетную запись.
Групповая политика
Параметры применяются в следующем порядке через объект групповая политика , который перезаписывает параметры на локальном компьютере при следующем обновлении групповая политика:
- Параметры локальной политики
- Параметры политики сайта
- Параметры политики домена
- Параметры политики подразделения
Если локальный параметр выделен серым цветом, он указывает, что объект групповой политики в настоящее время управляет этим параметром.
Средства командной строки
Этот параметр можно использовать в сочетании с параметром файловой системы символических ссылок, которыми можно управлять с помощью программы командной строки для управления типами символьных ссылок, которые разрешены на устройстве. Для получения дополнительных сведений введите fsutil behavior set symlinkevaluation /? в командной строке.
Вопросы безопасности
В этом разделе описывается, каким образом злоумышленник может использовать компонент или его конфигурацию, как реализовать меры противодействия, а также рассматриваются возможные отрицательные последствия их реализации.
Уязвимость
Пользователи, имеющие право пользователя Создать символические ссылки , могут непреднамеренно или злонамеренно подвергать вашу систему атакам с символическими ссылками. Атаки с символическими ссылками можно использовать для изменения разрешений на файл, повреждения данных, уничтожения данных или в качестве атаки DoS.
Противодействие
Не назначайте пользователю право создать символьные ссылки для обычных пользователей. Ограничьте это право доверенными администраторами. С помощью команды fsutil можно установить параметр файловой системы символических ссылок, который управляет типом символьных ссылок, которые можно создать на компьютере.
Возможное влияние
Нет. Не определена конфигурация по умолчанию.
Связанные темы
Символьные ссылки для папок в Windows 7,8,8.1,Vista
Символьная ссылка (также симлинк от англ. Symbolic link, символическая ссылка) — специальный файл в файловой системе, для которого не формируются никакие данные, кроме одной текстовой строки с указателем. Эта строка трактуется как путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке (файлу). Символьная ссылка занимает ровно столько места в файловой системе, сколько требуется для записи её содержимого (нормальный файл занимает как минимум один блок раздела).
Символьные ссылки можно использовать как удобный инструмент переноса каких либо папок на другие диски или ресурсы. Система при обращении к этому файлу ведет себя точно так же, как если бы это был файл(папка), на который ссылается символьная ссылка. Что на самом деле является очень удобным. К примеру,на рабочем столе можно создать ряд символьных ссылок на часто используемые папки, и копирование файлов в эти папки окажется секундным делом. Теперь рассмотрим как создать символьную ссылку для произвольной папки.
Например, чтобы перенести каталог с письмами и освободить место на диске C, и не перенастраивать при этом почтовые программы, создадим папку на диске D и назовём её mail:
После этого открываем командную строку, для этого жмём Win+R и в открывшемся окне пишем cmd:
В открывшемся окне командной строки нам необходимо создать символьную ссылку для нашей папки. Делается это с помощью команды mklink. В нашем случае, создаем в корне диска С папку с именем maillink , которая будет ссылаться на папку D:\m ail :
mklink /j «c:\ maillink » «d:\mail»
где, mklink — команда создания символьной ссылки /j — атрибут создания соединения для каталога c:\maillink— место создания файла с символьной ссылкой / имя новой символьной ссылки d:\mail — Путь, на который ссылается символьная ссылка.
Жмём клавишу Enter, и, если всё введено правильно, командный интерпретатор Windows сообщит о создании соединения:
Идем на диск C и смотрим на созданную символьную ссылку:
Главное её отличие от обычного ярлыка в том, что если зайти в папку mail link , система будет считать, что вы находитесь именно на диске C в папке maillink, но на самом деле вы будете видеть и работать с файлами, которые находятся на диске D в папке mail.
В зависимости от предназначения символьной ссылки, адрес, имя папки и имя ссылки могут быть различными.
В Windows есть также альтернативный способ для папок:
1) Копируем папку, для которой нам нужно создать символьную ссылку.
2) Идём в каталог:
C:\Users\*имя пользователя*\AppData\Roaming\Microsoft\Windows\Network Shortcuts (Каталог может быть скрытым)
3) Жмём правой клавишей по окну каталога и выбираем «Вставить ярлык». Система создаст символьную ссылку до исходного каталога и теперь её можно перенести в нужное для вас место и переименовать.