Введение
В этой лабораторной работе вы изучите базовый процесс создания и восстановления резервных копий файловой системы в среде Linux с использованием утилиты командной строки tar (tape archive). Основная цель — получить практический опыт выполнения важных задач системного администрирования, включая управление правами доступа и работу с архивами файлов. Вы будете использовать команду sudo для выполнения операций с повышенными привилегиями, когда это необходимо для доступа к критически важным системным каталогам, в частности к директории /home, содержащей пользовательские данные.
Лабораторная работа проведет вас через практический рабочий процесс с использованием стандартной учетной записи пользователя labex и sudo для административных задач. Вы создадите сжатый архив всего каталога /home и убедитесь в успешности его создания. Чтобы смоделировать сценарий восстановления, вы перейдете во временный каталог /tmp и извлечете содержимое вашего архивного файла. Наконец, вы проверите, что файлы и структура каталогов были корректно восстановлены в новом месте, подтвердив целостность процесса резервного копирования и восстановления.
Изучение текущего окружения
На этом этапе вы познакомитесь с текущим окружением и узнаете, как использовать sudo для административных задач. Пользователь labex имеет возможность запускать команды с повышенными привилегиями с помощью sudo (superuser do), что позволяет выполнять административные действия без переключения на учетную запись root.
Использование sudo является лучшей практикой безопасности, так как предоставляет временные повышенные права для конкретных команд, сохраняя при этом ваш пользовательский контекст. Этот подход безопаснее, чем полный переход к пользователю root, так как снижает риск случайного выполнения опасных команд.
Сначала проверим вашу текущую личность и местоположение, запустив команды whoami и pwd (print working directory).
Проверьте, под каким пользователем вы работаете:
whoami
Результат должен быть labex:
labex
Затем проверьте текущий каталог:
pwd
Вывод должен показать, что вы находитесь в проектном каталоге пользователя labex:
/home/labex/project
Вы можете протестировать свои привилегии sudo, выполнив простую команду, требующую административного доступа. Давайте просмотрим содержимое каталога /root, доступ к которому обычно ограничен:
sudo ls /root
Эта команда выполнится успешно, демонстрируя, что у вас есть необходимые права sudo для выполнения административных задач. Команда sudo временно предоставит вам разрешения, необходимые для доступа к защищенным областям файловой системы.
Теперь, когда вы понимаете свое окружение и возможности sudo, вы готовы приступить к созданию резервной копии на следующем этапе.
Создание резервного архива каталога /home
На этом этапе вы создадите резервную копию каталога /home, используя команду tar с sudo. Утилита tar (tape archiver) является стандартным инструментом в Linux для создания, просмотра и извлечения архивных файлов. Архив — это один файл, содержащий в себе множество других файлов и каталогов, что упрощает их хранение и передачу.
В данный момент вы вошли в систему как пользователь labex, и вашим текущим рабочим каталогом является /home/labex/project. Вы создадите файл резервной копии в своем домашнем каталоге, который доступен вашей учетной записи.
Команда, которую вы будете использовать: sudo tar -cvf ~/backup.tar /home. Разберем используемые опции:
sudo: предоставляет необходимые права для чтения всех файлов в каталоге/home, включая те, которые принадлежат другим пользователям.-c(create): эта опция указываетtarсоздать новый архив.-v(verbose): включает подробный режим, при которомtarвыводит список каждого файла по мере его добавления в архив. Это полезно для отслеживания процесса выполнения.-f(file): позволяет указать имя файла архива. Сразу после этой опции должно идти имя архива. В нашем случае это~/backup.tar. Символ~— это сокращение для вашего домашнего каталога (/home/labex)./home: это исходный каталог, резервную копию которого вы хотите сделать.
Теперь выполните команду в терминале, чтобы создать архив:
sudo tar -cvf ~/backup.tar /home
Поскольку вы использовали опцию -v, вы увидите длинный список файлов, прокручивающихся на экране по мере их добавления в архив backup.tar. Вывод будет выглядеть примерно так:
tar: Removing leading `/' from member names
/home/
/home/labex/
/home/labex/.bashrc
/home/labex/.profile
/home/labex/.zshrc
/home/labex/project/
/home/labex/.zsh_history
...
Сообщение tar: Removing leading '/' from member names является нормальным. Оно означает, что tar сохраняет пути внутри архива относительно указанного каталога, что является стандартной практикой для обеспечения переносимости архива.
На следующем этапе вы проверите, был ли файл backup.tar успешно создан.
Проверка создания файла backup.tar
На этом этапе вы убедитесь, что архив backup.tar был успешно создан на предыдущем шаге. После выполнения такой важной операции, как резервное копирование, всегда полезно подтвердить наличие ожидаемого выходного файла.
Так как вы создали файл резервной копии в своем домашнем каталоге (~/backup.tar), вам нужно проверить именно его. Самый простой способ сделать это — использовать команду ls (list) с полным путем или перейти в домашний каталог.
Выполните команду ls, чтобы проверить домашний каталог:
ls ~
Команда выведет список всех файлов и каталогов в вашем домашнем каталоге. В списке вы должны увидеть файл backup.tar:
backup.tar
Кроме того, вы можете проверить файл напрямую, используя его полный путь:
ls -l ~/backup.tar
Вывод будет выглядеть примерно так:
-rw-r--r-- 1 root root 10240 <Дата> <Время> /home/labex/backup.tar
Такой подробный список дает больше уверенности, показывая, что файл существует и имеет ненулевой размер, что и ожидается от архива резервной копии. Обратите внимание, что владельцем файла является root, так как вы создали его с помощью sudo, но он хранится в вашем доступном домашнем каталоге.
Теперь, когда вы успешно создали и проверили резервную копию, следующим шагом будет имитация сценария восстановления.
Переход в каталог /tmp для восстановления
На этом этапе вы смените текущий каталог на /tmp. Для практики восстановления из резервной копии лучше всего сначала извлечь файлы в нейтральное место. Это предотвращает случайную перезапись существующих файлов и позволяет проверить восстановленные данные перед их перемещением в конечное место назначения. Каталог /tmp является стандартным местом в системах Linux для временных файлов и идеально подходит для этой цели.
Для навигации между каталогами в файловой системе Linux используется команда cd (change directory). В данный момент вы находитесь в каталоге /root.
Чтобы перейти в каталог /tmp, выполните следующую команду:
cd /tmp
После выполнения команды приглашение терминала может не измениться визуально, но ваше местоположение в файловой системе обновится. Вы можете подтвердить свое новое местоположение с помощью команды pwd (print working directory), которая отображает полный путь к текущему каталогу.
pwd
Вывод должен подтвердить, что вы находитесь в /tmp:
/tmp
Теперь, когда вы находитесь в каталоге /tmp, вы готовы извлечь содержимое архива backup.tar, созданного ранее.
Извлечение резервного архива в текущий каталог
На этом этапе вы извлечете содержимое файла backup.tar в текущий каталог /tmp. Этот процесс часто называют «восстановлением» из резервной копии. Вы снова воспользуетесь командой tar, но с другими опциями для выполнения распаковки.
Вы находитесь в каталоге /tmp. Файл резервной копии backup.tar расположен в вашем домашнем каталоге (/home/labex). Следовательно, при запуске команды вы должны указать полный путь к архивному файлу.
Команда для извлечения архива: tar -xvf ~/backup.tar. Разберем опции:
-x(extract): эта опция указываетtarизвлечь файлы из архива. Это главное отличие от команды создания.-v(verbose): как и прежде, выводит список каждого файла по мере его извлечения, показывая прогресс.-f(file): указывает имя файла архива для обработки. Мы используем~/backup.tar, чтобы сослаться на файл в вашем домашнем каталоге.
Обратите внимание, что для извлечения вам не требуется sudo, так как вы распаковываете файлы в /tmp (где у обычных пользователей есть права на запись) и только читаете файл резервной копии (не изменяя системные файлы).
Теперь выполните команду в терминале для извлечения файлов:
tar -xvf ~/backup.tar
Вы увидите список файлов и каталогов, создаваемых в вашем текущем каталоге (/tmp). Вывод будет представлять собой список файлов, содержащихся в архиве, который должен быть вам знаком по этапу создания:
home/
home/labex/
home/labex/.bashrc
home/labex/.profile
home/labex/.zshrc
home/labex/project/
home/labex/.zsh_history
...
Этот вывод указывает на то, что tar создал каталог home внутри /tmp и восстановил в него все заархивированные файлы и подкаталоги. На последнем этапе вы это проверите.
Проверка восстановленных файлов в /tmp
На этом заключительном этапе вы подтвердите, что файлы из резервного архива были корректно извлечены в каталог /tmp. Это важнейшая часть любого процесса восстановления, гарантирующая целостность данных.
Вы находитесь в каталоге /tmp. Чтобы увидеть только что созданный каталог home, используйте команду ls:
ls
Вы должны увидеть каталог home среди других временных файлов, которые могут там находиться:
home
...
Это подтверждает, что корневой каталог из архива был создан. Чтобы быть более тщательными, давайте заглянем внутрь этого нового каталога home и проверим, содержит ли он ожидаемые данные пользователя.
ls home
Вывод должен показать домашний каталог пользователя labex, который и был содержимым оригинального каталога /home, заархивированного вами:
labex
Это подтверждает, что процесс резервного копирования и восстановления прошел успешно. Вы создали резервную копию /home, используя привилегии sudo, сохранили ее в своем домашнем каталоге (/home/labex), а затем успешно восстановили ее во временное местоположение /tmp/home.
Вы можете убедиться, что восстановленные файлы соответствуют оригиналам, сравнив несколько из них. Например, проверьте, был ли правильно восстановлен файл .bashrc:
ls home/labex/.bashrc
Вывод должен подтвердить существование файла:
home/labex/.bashrc
Процесс резервного копирования и восстановления завершен. Вы успешно продемонстрировали, как использовать tar с привилегиями sudo для создания системной резервной копии, сохраняя при этом свой пользовательский контекст, что является рекомендуемым подходом для задач системного администрирования.
Резюме
В этой лабораторной работе вы научились выполнять фундаментальную задачу системного администрирования: создание и восстановление резервной копии каталога с помощью команды tar в Linux с использованием привилегий sudo. Процесс начался с изучения вашего окружения под пользователем labex и применения sudo для выполнения команд с повышенными правами только тогда, когда это необходимо. Такой подход безопаснее, чем постоянная работа под пользователем root, так как он предоставляет временные полномочия для конкретных задач, сохраняя ваш обычный пользовательский контекст.
Вы использовали утилиту tar вместе с sudo для создания единого архивного файла backup.tar, содержащего все содержимое каталога /home, и сохранили его в своем домашнем каталоге. Это продемонстрировало, как выполнять резервное копирование системного уровня, оставаясь в рамках пользовательских границ и избегая потенциальных конфликтов с системными функциями.
В части восстановления вы изучили лучшую практику: сначала перейти в безопасное временное место, такое как каталог /tmp, чтобы избежать случайной перезаписи рабочих данных. Оттуда вы использовали команду tar для извлечения содержимого из архива backup.tar в текущий каталог без необходимости повышения привилегий, так как вы только читали файл архива и записывали данные в доступное пользователю место. Заключительный этап включал проверку того, что файлы и каталоги из резервной копии были корректно восстановлены в /tmp, что подтвердило целостность всего цикла резервного копирования и восстановления.



