Сегодня мы познакомимся с читателем, которого назовём «Майлз». Он рассказал, что начал заниматься компьютерами на Commodore C64 и различных версиях DOS. Поэтому, когда он поступил в университет, он не обратил внимания на Mac и клоны ПК в лабораториях компьютерного факультета и сосредоточился на NeXT Cubes.
Для тех из вас, кто игнорировал или забыл о «Джобсовских сагах», NeXT — это компания, основанная Стивом Джобсом в период между его увольнением из Apple и последующим триумфальным возвращением.
Одним из творений Джобса был «Куб» — компьютер класса рабочей станции, который, согласно легенде, Тим Бернерс-Ли использовал для создания Всемирной паутины.
Майлзу понравился Cube.
«Работая на умопомрачительной частоте 25 МГц, эти устройства были быстрыми и обладали потрясающим графическим интерфейсом, — вспоминал он. — Но для любителей командной строки они были мечтой, потому что в них можно было подключиться по протоколу Telnet из кампуса и работать в чудесной вселенной командной строки BSD Unix».
Майлзу нужно было освоиться в этой среде, но он быстро влюбился в оболочку tcsh
и вскоре понял, как получить доступ к Кубикам из своей комнаты в общежитии.
«Я мог спокойно писать статьи, используя LaTeX в Emacs», — сказал он в интервью Who, Me? Он также мог пользоваться принтерами в компьютерном классе, так что его работы в университете выглядели отлично.
Лучше всего было то, что Майлз мог войти в систему на любом из 16 компьютеров NeXT в лаборатории, потому что домашние каталоги были доступны с любого из них.
Была только одна проблема. Emacs сохранял резервные копии файлов в странных местах, заполняя каталоги документами, которые, по мнению Майлза, ему больше никогда не понадобятся.
В то время, о котором идёт речь, Майлз был молодым человеком и, как и многие в его возрасте, не слишком заботился о порядке. Но он решил, что научиться наводить порядок в Unix — это хорошая идея.
«Мне было любопытно попробовать кое-что новое, о чём я узнал: tcsh
скрипт .logout. Если поместить его в домашний каталог, он будет автоматически запускаться при выходе из системы». Майлз придумал использовать этот скрипт для автоматического удаления всех резервных копий Emacs.
“Кому вообще нужны резервные копии?” — рассуждал он.
Версия файла .logout, созданная Майлзом, включала печально известную опасную команду rm -rf ~*
, которая стирает всё, что находит в домашнем каталоге пользователя.
«Я быстро освоил эту штуку с Unix», — сказал Майлз в интервью Who, Me? Поэтому он был уверен, что его скрипт справится с задачей.
Эта уверенность быстро пошатнулась, когда он впервые вышел из системы с помощью скрипта, потому что это заняло «больше времени, чем я ожидал. Гораздо больше».
Вскоре Майлз понял, что его файл .logout удаляет домашний каталог каждого пользователя и всё, что в нём содержится, — не только временные файлы, которые он надеялся удалить.
«Как оказалось, системный администратор кампуса не заметил этой потенциальной угрозы и понял, что у меня больше прав, чем должно быть», — написал Майлз.
К счастью, тот же самый системный администратор действительно верил в резервные копии.
«После восстановления файлов он изменил права доступа. Все мы извлекли уроки, я сохранил доступ к своей учётной записи после заслуженной выволочки и даже стал системным администратором на стажировке… на AS/400».