DELTREE

DELTREE — команда командной строки в некоторых операционных системах Microsoft, SpartaDOS X[1] и FreeDOS[2], которая рекурсивно удаляет всю поддиректорию вместе с её содержимым.

Общие сведения
DELTREE
Тип Команда
Разработчики Microsoft, Datalight, Charles Dye
Операционные системы MS-DOS 6, SpartaDOS X, ROM-DOS, FreeDOS, Windows 9x
Первый выпуск март 1993
Лицензия MS-DOS, ROM-DOS, Windows: проприетарная коммерческая
FreeDOS: GPL v2

Обзор

При выпуске PC DOS 1.0 и MS-DOS 1.0 компании IBM и Microsoft ещё не поддерживали работу с поддиректориями. Эта возможность появилась лишь с выходом DOS 2.0, которая ввела поддержку поддиректорий и их вложенности; однако в ней не было встроенной функции для удаления целых деревьев директорий[3]. До выпуска MS-DOS 5.0 для удаления вложенных директорий требовалось сначала удалять все файлы в нижних поддиректориях, затем саму директорию, а затем повторять процесс вверх по дереву. К 1991 году конкурентная ОС DR-DOS уже имела инструмент для рекурсивного удаления файлов. С выпуском MS-DOS 6.0 Microsoft добавила команду DELTREE, восстановив функциональное равенство.

DELTREE сохранялась в Windows 9x, но не поставлялась с семейством Windows NT. Вместо этого команда rmdir (или rd) позволяет удалять директории со всем содержимым при использовании ключа /S[4].

Реализации

В MS-DOS, PC DOS и Windows 9x команда DELTREE реализована как внешняя команда и хранится отдельным файлом вне COMMAND.COM. Обычно программа запрашивает подтверждение удаления указанных директорий, однако эту защиту можно отключить специальным параметром. В отличие от большинства команд для работы с файловой системой, DELTREE позволяет указать сразу несколько директорий в одной команде. Существовала неафишируемая возможность — добавить к имени директории завершающий символ «/» для удаления только содержимого (без самой директории). Теоретически, данные, удалённые с помощью команды, могут быть восстановлены.

ROM-DOS от Datalight[5] также включает собственную реализацию DELTREE.

Версия FreeDOS разработана Чарльзом Дайем и распространяется под лицензией GPL v2[6].

Синтаксис

Синтаксис команды:

DELTREE [/Y] [ДИСК:][ПУТЬ]

Использование во вредоносном ПО и саботаже

Команда DELTREE игнорирует все атрибуты файлов и директорий, такие как «скрытый», «только для чтения» и «системный». В источниках команда описывалась как «потенциально опасная» и «способная уничтожить сотни файлов одновременно». В сочетании с PURGE (препятствующим восстановлению данных) её рассматривали как пример «наихудшего сценария» для вредоносных программ и она фигурировала в одном из первых процессов по компьютерному саботажу.

К распространению подобных угроз приводило отсутствие в MS-DOS и Windows 9x поддержки дискреционного управления доступом, тогда как семейство Windows NT такую поддержку получило. Кроме того, начиная с Windows Vista, были введены обязательное управление доступом и контроль учётных записей для дальнейшего снижения рисков.

Примечания

  1. SpartaDOS X 4.48 User Guide. Дата обращения: 16 марта 2019. Архивировано 10 октября 2021 года.
  2. The FreeDOS Project blog: FreeDOS commands quick-reference (29 июня 2018). Дата обращения: 22 июля 2018. Архивировано 22 июля 2018 года.
  3. Dickinson, John. Stalking the Elusive Subdirectory Path (28 мая 1985), С. 231.
  4. No DELTREE Command? - MalekTips. malektips.com. Дата обращения: 16 марта 2019. Архивировано 17 марта 2010 года.
  5. Datalight ROM-DOS User's Guide. www.datalight.com. Дата обращения: 18 января 2020. Архивировано 21 апреля 2019 года.
  6. FreeDOS 1.2 Updates Package — deltree (FreeDOS Base). Ibiblio.org (30 марта 2013). Дата обращения: 8 сентября 2022. Архивировано 30 июля 2021 года.

Литература

  • Special Edition Using MS-DOS 6.22, Third Edition. — Que Publishing, 2001. — ISBN 978-0789725738.
  • Tim O'Reilly. Windows 98 in a Nutshell: A Desktop Quick Reference / Tim O'Reilly, Troy Mott, Walter Glenn. — O'Reilly, 1999. — ISBN 978-1565924864.