Поиск по сайту:

Как архивировать файлы, устанавливать права доступа к файлам и находить файлы в Linux


Недавно Linux Foundation начал сертификацию LFCS (Linux Foundation Certified Sysadmin) — совершенно новую программу, цель которой — дать людям возможность выполнять базовые и промежуточные задачи системного администрирования в системах Linux.

Это включает в себя поддержку уже работающих систем и сервисов, а также устранение неполадок и анализ первого уровня, а также возможность решать, когда передавать проблемы инженерным группам.

Серия будет называться «Подготовка к LFCS» (Сертифицированному системному администратору Linux Foundation), части 1–33, и охватывать следующие темы:

Part 1

Как использовать команду «Sed» для управления файлами в Linux

Part 2

Как установить и использовать Vi/Vim в Linux

Part 3

Как архивировать файлы, устанавливать права доступа к файлам и находить файлы в Linux

Part 4

Разбиение устройств хранения на разделы, форматирование файловых систем и настройка раздела подкачки

Part 5

Монтирование/отключение локальных и сетевых (Samba и NFS) файловых систем в Linux

Part 6

Сборка разделов в виде RAID-устройств – создание резервных копий системы и управление ими

Part 7

Управление процессами и службами запуска системы (SysVinit, Systemd и Upstart).

Part 8

Как управлять пользователями и группами, разрешениями для файлов и доступом к Sudo

Part 9

Управление пакетами Linux с помощью Yum, RPM, Apt, Dpkg, Aptitude и Zypper

Part 10

Изучение основных сценариев оболочки и устранение неполадок файловой системы

Part 11

Как управлять LVM и создавать его с помощью команд vgcreate, lvcreate и lvextend

Part 12

Как изучить Linux с установленной справочной документацией и инструментами

Part 13

Как настроить и устранить неполадки загрузчика Grand Unified Bootloader (GRUB)

Part 14

Мониторинг использования ресурсов процессов Linux и установка ограничений процессов для каждого пользователя

Part 15

Как установить или изменить параметры времени выполнения ядра в системах Linux

Part 16

Реализация обязательного контроля доступа с помощью SELinux или AppArmor в Linux

Part 17

Как настроить списки контроля доступа (ACL) и дисковые квоты для пользователей и групп

Part 18

Установка сетевых служб и настройка автоматического запуска при загрузке

Part 19

Полное руководство по настройке FTP-сервера для анонимного входа в систему

Part 20

Настройте базовый DNS-сервер рекурсивного кэширования и настройте зоны для домена

Part 21

Как установить, защитить и настроить производительность сервера базы данных MariaDB

Part 22

Как установить и настроить NFS-сервер для общего доступа к файловой системе

Part 23

Как настроить Apache с виртуальным хостингом на основе имени с сертификатом SSL

Part 24

Как настроить брандмауэр Iptables для обеспечения удаленного доступа к службам в Linux

Part 25

Как превратить Linux в маршрутизатор для статической и динамической обработки трафика

Part 26

Как настроить зашифрованные файловые системы и обмен данными с помощью инструмента Cryptsetup

Part 27

Как отслеживать использование системы, сбои в работе и устранять неполадки серверов Linux

Part 28

Как настроить сетевой репозиторий для установки или обновления пакетов

Part 29

Как проверить производительность, безопасность сети и устранить неполадки

Part 30

Как устанавливать виртуальные машины и контейнеры и управлять ими

Part 31

Изучите основы Git для эффективного управления проектами

Part 32

Руководство для начинающих по настройке адресов IPv4 и IPv6 в Linux

Part 33

Руководство для начинающих по созданию сетевых соединений и мостов в Ubuntu

Этот пост является третьей частью серии из 33 руководств. В этой части мы расскажем, как архивировать/сжимать файлы и каталоги, устанавливать атрибуты файлов и находить файлы в файловой системе, необходимые для LFCS<. сертификационный экзамен.

Инструменты архивирования и сжатия для Linux

Инструмент архивирования файлов группирует набор файлов в один автономный файл, который мы можем создать резервную копию на нескольких типах носителей, передать по сети или отправить по электронной почте.

Наиболее часто используемой утилитой архивирования в Linux является команда tar. Когда утилита архивирования используется вместе со средством сжатия, это позволяет уменьшить размер диска, необходимый для хранения тех же файлов и информации.

Утилита Linux tar

tar объединяет группу файлов в один архив (обычно называемый tar-файлом или tarball). Первоначально это название означало «ленточный архиватор», но следует отметить, что мы можем использовать этот инструмент для архивирования данных на любой записываемый носитель (не только на ленты).

Tar обычно используется с такими инструментами сжатия, как gzip, bzip2 или xz, для создания сжатого tar-архива.

Основной синтаксис команды tar следующий:

tar [options] [pathname ...]

Где ... представляет собой выражение, используемое для указания того, с какими файлами следует действовать.

Наиболее часто используемые команды Tar

Long option Abbreviation Description
 –create  c  Creates a tar archive
 –concatenate  A  Appends tar files to an archive
 –append  r  Appends files to the end of an archive
 –update  u  Appends files newer than copy in archive
 –diff or –compare  d  Find differences between archive and file system
 –file archive  f  Use archive file or device ARCHIVE
 –list  t  Lists the contents of a tarball
 –extract or –get  x  Extracts files from an archive

Обычно используемые модификаторы операций tar

Long option Abbreviation Description
 –directory dir  C  Changes to directory dir before performing operations
 –same-permissions  p  Preserves original permissions
 –verbose  v  Lists all files read or extracted. When this flag is used along with –list, the file sizes, ownership, and time stamps are displayed.
 –verify  W  Verifies the archive after writing it
 –exclude file  —  Excludes files from the archive
 –exclude=pattern  X  Exclude files, given as a PATTERN
 –gzip or –gunzip  z  Processes an archive through Gzip
 –bzip2  j  Processes an archive through bzip2
 –xz  J  Processes an archive through xz

Утилиты Linux Gzip, Bzip2 и Xz

Gzip — старейший инструмент сжатия, обеспечивающий наименьшее сжатие, а bzip2 — улучшенное сжатие. Кроме того, xz является новейшим, но (обычно) обеспечивает лучшее сжатие.

Преимущества наилучшего сжатия имеют свою цену: время, необходимое для завершения операции, и системные ресурсы, используемые во время этого процесса.

Обычно файлы tar, сжатые с помощью этих утилит, имеют расширения .gz, .bz2 или .xz соответственно. В следующих примерах мы будем использовать эти файлы: file1, file2, file3, file4 и <. Strong>file5.

Сжатие файлов с помощью gzip, bzip2 и xz

Сгруппируйте все файлы в текущем рабочем каталоге и сожмите полученный пакет с помощью gzip, bzip2 и xz (обратите внимание на использование обычного выражение, указывающее, какие файлы должны быть включены в пакет – это сделано для того, чтобы инструмент архивирования не группировал архивы, созданные на предыдущих шагах).

tar czf myfiles.tar.gz file[0-9]
tar cjf myfiles.tar.bz2 file[0-9]
tar cJf myfile.tar.xz file[0-9]

Список содержимого и обновление/добавление файлов Tar Archive

Перечислите содержимое архива и отобразите ту же информацию, что и длинный список каталогов. Обратите внимание, что операции обновления или дополнения нельзя применять непосредственно к сжатым файлам.

Распаковать файлы Tar

Если вам нужно обновить или добавить файл в сжатый tar-архив, вам необходимо распаковать tar-файл и обновить/добавить его, а затем снова сжать.

tar tvf [tarball]

Выполните любую из следующих команд:

gzip -d myfiles.tar.gz	[#1] 
bzip2 -d myfiles.tar.bz2	[#2] 
xz -d myfiles.tar.xz 		[#3] 

Удалить или добавить файлы в архив Tar

tar --delete --file myfiles.tar file4 (deletes the file inside the tarball)
tar --update --file myfiles.tar file4 (adds the updated file)

и

gzip myfiles.tar		[ if you choose #1 above ]
bzip2 myfiles.tar		[ if you choose #2 above ]
xz myfiles.tar 		[ if you choose #3 above ]

Окончательно,

tar tvf [tarball] #again

и сравните дату и время изменения file4 с той же информацией, что была показана ранее.

Исключить файлы из резервных копий

Предположим, вы хотите выполнить резервное копирование домашних каталогов пользователя. Хорошей практикой системного администратора будет (также может быть предусмотрено политикой компании) исключение всех видео- и аудиофайлов из резервных копий.

Возможно, вашим первым подходом будет исключение из резервной копии всех файлов с расширением .mp3 или .mp4 (или другими расширениями). Что, если у вас есть умный пользователь, который может изменить расширение на .txt или .bkp, ваш подход не принесет вам особой пользы.

Для того, чтобы обнаружить аудио- или видеофайл, необходимо сверить с файлом его тип. Следующий сценарий оболочки выполнит эту работу.

#!/bin/bash
Pass the directory to backup as first argument.
DIR=$1
Create the tarball and compress it. Exclude files with the MPEG string in its file type.
-If the file type contains the string mpeg, $? (the exit status of the most recently executed command) expands to 0, and the filename is redirected to the exclude option. Otherwise, it expands to 1.
-If $? equals 0, add the file to the list of files to be backed up.
tar X <(for i in $DIR/*; do file $i | grep -i mpeg; if [ $? -eq 0 ]; then echo $i; fi;done) -cjf backupfile.tar.bz2 $DIR/*

Восстановление резервной копии с сохранением разрешений Tar

Затем вы можете восстановить резервную копию в домашний каталог исходного пользователя (в данном примере user_restore), сохранив разрешения, с помощью следующей команды.

tar xjf backupfile.tar.bz2 --directory user_restore --same-permissions

Использование команды «Найти» для поиска файлов

Команда find используется для рекурсивного поиска в деревьях каталогов файлов или каталогов, соответствующих определенным характеристикам, а затем может либо распечатать соответствующие файлы или каталоги, либо выполнить другие операции над совпадениями.

Обычно мы осуществляем поиск по имени, владельцу, группе, типу, разрешениям, дате и размеру.

Основной синтаксис команды find следующий:

find [directory_to_search] [expression]

Рекурсивный поиск файлов по размеру

Найти все файлы (-f) в текущем каталоге (.) и подкаталогах 2 ниже (-maxглубина 3) включает текущий рабочий каталог и 2 уровня вниз), размер которого (-size) превышает 2 МБ.

find . -maxdepth 3 -type f -size +2M

Поиск и удаление файлов, соответствующих определенным критериям

Файлы с разрешениями 777 иногда считаются открытой дверью для внешних злоумышленников. В любом случае позволять кому-либо что-либо делать с файлами небезопасно. Мы примем довольно агрессивный подход и удалим их! («{}» + используется для «сбора» результатов поиска).

find /home/user -perm 777 -exec rm '{}' +

Поиск файлов по временным меткам

Найдите файлы конфигурации в /etc, к которым обращались (-atime) или изменяли (-mtime) дополнительные (+180) или меньше (-180), чем 6 месяцев назад или ровно 6 месяцев назад (180) .

Измените следующую команду согласно примеру ниже:

find /etc -iname "*.conf" -mtime -180 -print

Установите права доступа к файлам и основные атрибуты

Первые 10 символов в выводе ls -l — это атрибуты файла. Первый из этих символов используется для обозначения типа файла:

  • -: обычный файл.
  • -d : каталог
  • -l: символическая ссылка.
  • -c: символьное устройство (которое обрабатывает данные как поток байтов, т.е. терминал)
  • -b : блочное устройство (которое обрабатывает данные блоками, т. е. устройствами хранения)

Следующие девять символов атрибутов файла называются режимом файла и представляют собой чтение (r), запись (w) и выполнение (x ). ) разрешения владельца файла, владельца группы файла и остальных пользователей (обычно называемых «миром»).

В то время как разрешение на чтение файла позволяет его открывать и читать, то же разрешение на каталог позволяет отображать его содержимое, если также установлено разрешение на выполнение. Кроме того, разрешение на выполнение файла позволяет обращаться с ним как с программой и запускать его, а в каталоге оно позволяет записать его в него с помощью компакт-диска.

Права доступа к файлам изменяются с помощью команды chmod, основной синтаксис которой следующий:

chmod [new_mode] file

Где new_mode — восьмеричное число или выражение, определяющее новые разрешения.

Восьмеричное число можно преобразовать из его двоичного эквивалента, который рассчитывается на основе желаемых прав доступа к файлу для владельца, группы и мира следующим образом:

Наличие определенного разрешения равно степени 2 (r=22, w=21, x=20 ), а его отсутствие соответствует 0. Например:

Чтобы установить права доступа к файлу, как указано выше, в восьмеричной форме, введите:

chmod 744 myfile

Вы также можете установить режим файла, используя выражение, которое обозначает права владельца буквой u, права владельца группы буквой g, а остальные - о.

Все эти «лица» могут быть представлены одновременно буквой a. Разрешения предоставляются (или отзываются) с помощью знаков + или - соответственно.

Удалить разрешение на выполнение сценария для всех пользователей

Как мы объясняли ранее, мы можем отозвать определенное разрешение, поставив перед ним знак минус и указав, нужно ли его отозвать для владельца, владельца группы или всех пользователей. Приведенную ниже строку можно интерпретировать следующим образом: изменить режим для всех (a) пользователей, отозвать (-) разрешение на выполнение (x). .

chmod a-x backup.sh

Предоставление разрешений чтение, запись и выполнение для файла владельцу и владельцу группы, а также разрешения на чтение для всего мира.

Когда мы используем трехзначное восьмеричное число для установки разрешений для файла, первая цифра указывает разрешения для владельца, вторая цифра для владельца группы и третья цифра для всех остальных:

  • Владелец: (r=22 + w=21 + x=20=7)
  • Владелец группы: (r=22 + w=21 + x=20=7)
  • Мир: (r=22 + w=0 + x=0=4),
chmod 774 myfile

Со временем и с практикой вы сможете решить, какой метод изменения режима файла лучше всего подходит для вас в каждом конкретном случае. Длинный список каталогов также показывает владельца файла и владельца его группы (которые служат элементарным, но эффективным контролем доступа к файлам в системе):

Владение файлом меняется с помощью команды chown. Владелец и владелец группы могут быть изменены одновременно или по отдельности. Его основной синтаксис следующий:

chown user:group file

Где как минимум должен присутствовать пользователь или группа.

Примеры команд Chown

Изменение владельца файла на определенного пользователя.

chown gacanepa sent

Изменение владельца и группы файла на определенную пару пользователь:группа.

chown gacanepa:gacanepa TestFile

Изменение только владельца группы файла на определенную группу. Обратите внимание на двоеточие перед названием группы.

chown :gacanepa email_body.txt
Заключение

Как системный администратор, вы должны знать, как создавать и восстанавливать резервные копии, как находить файлы в вашей системе и изменять их атрибуты, а также знать несколько приемов, которые могут облегчить вашу жизнь и предотвратить возникновение проблем в будущем.

Надеюсь, что советы, представленные в настоящей статье, помогут вам достичь этой цели. Не стесняйтесь добавлять свою собственную информацию и идеи в раздел комментариев на благо сообщества. Заранее спасибо!

Электронная книга LCS уже доступна для покупки. Закажите копию сегодня и начните свой путь к тому, чтобы стать сертифицированным системным администратором Linux!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

И последнее, но не менее важное: рассмотрите возможность покупки ваучера на экзамен по следующим ссылкам, чтобы заработать нам небольшую комиссию, которая поможет нам обновлять эту книгу.