Искусство программирования на языке сценариев командной оболочки
Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток . . . постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку
Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток . . . постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку
лучший путь к изучению языка сценариев -- это написание сценариев.В начале июня состоялся релиз дистрибутива для цифровой криминалистики и тестирования систем безопасности Kali Linux 2021.2. Эта операционная система является клоном Debian, используя репозиторий Testing с наиболее свежими пакетами. Новые iso образы становятся доступными для загрузки каждые три месяца, предыдущим релизом был 2021.1, а следующим будет 2021.3.
Перейти к статьеУчетная запись суперпользователя root
Учетная запись root - это запись всемогущего административного пользователя UNIX. Она также называется учетной записью суперпользователя, хотя фактическое имя пользователя - root (корень).
Определяющей характеристикой учетной записи root является ее идентификатор UID, равный О. Ничто не мешает вам изменять имя пользователя в этой учетной записи или создавать дополнительные учетные записи, идентификаторы UID которых равны О; однако это плохие идеи. Такие изменения обычно создают непреднамеренные нарушения безопасности системы. Они также создают путаницу, когда другим людям приходится иметь дело со странным способом настройки вашей системы.
Традиционная система UNIX позволяет суперпользователю (т.е. любому процессу, для которого текущий идентификатор UID равен О) выполнять любую допустимую операцию для любого файла или процесса.
Перечислим некоторые примеры привилегированных операций.
• Создание файлов устройств.
• Установка системных часов.
• Повышение лимитов использования ресурсов и приоритетов процессов.
• Изменение имени хоста системы.
• Настройка сетевых интерфейсов.
• Открытие привилегированных сетевых портов (с номерами меньше 1024).
• Выключение системы.
Примером полномочий суперпользователя является способность принадлежащего ему процесса изменять свои идентификаторы UID и GID. Примером может служить программа входа в систему login и ее эквиваленты в виде графического пользовательского интерфейса; процесс, который запрашивает ваш пароль при входе в систему, изначально запускается с правами пользователя root. Если введенный вами пароль и имя пользователя являются законными, то программа входа в систему login изменяет свои UID и GID на ваши UID и GID и запускает среду оболочки или графический пользовательский интерфейс. Как только процесс root изменит своего владельца и станет обычным пользовательским процессом, он не сможет восстановить прежнее привилеги рованное состояние.
Учетная запись root - это запись всемогущего административного пользователя UNIX. Она также называется учетной записью суперпользователя, хотя фактическое имя пользователя - root (корень).
Определяющей характеристикой учетной записи root является ее идентификатор UID, равный О. Ничто не мешает вам изменять имя пользователя в этой учетной записи или создавать дополнительные учетные записи, идентификаторы UID которых равны О; однако это плохие идеи. Такие изменения обычно создают непреднамеренные нарушения безопасности системы. Они также создают путаницу, когда другим людям приходится иметь дело со странным способом настройки вашей системы.
Традиционная система UNIX позволяет суперпользователю (т.е. любому процессу, для которого текущий идентификатор UID равен О) выполнять любую допустимую операцию для любого файла или процесса.
Перечислим некоторые примеры привилегированных операций.
• Создание файлов устройств.
• Установка системных часов.
• Повышение лимитов использования ресурсов и приоритетов процессов.
• Изменение имени хоста системы.
• Настройка сетевых интерфейсов.
• Открытие привилегированных сетевых портов (с номерами меньше 1024).
• Выключение системы.
Примером полномочий суперпользователя является способность принадлежащего ему процесса изменять свои идентификаторы UID и GID. Примером может служить программа входа в систему login и ее эквиваленты в виде графического пользовательского интерфейса; процесс, который запрашивает ваш пароль при входе в систему, изначально запускается с правами пользователя root. Если введенный вами пароль и имя пользователя являются законными, то программа входа в систему login изменяет свои UID и GID на ваши UID и GID и запускает среду оболочки или графический пользовательский интерфейс. Как только процесс root изменит своего владельца и станет обычным пользовательским процессом, он не сможет восстановить прежнее привилеги рованное состояние.
СТАНДАРТНЫЕ КАТАЛОГИ LINUX
/bin Бинарные программы, основные программы для работы в системе: командные оболочки, файловые утилиты и.т.д./boot Ядро и файлы для его загрузки (образ ядра, файлы GRUB, LILO)./dev Файлы устройств: диски, принтеры, псевдотерминалы и т.д. /etc Системные конфигурационные файлы, стартовые сценарии, конфигурационные файлы графической системы и различных приложений./home Стандартные домашние каталоги пользователей (настройки интерфейса, личные файлы)./lib Библиотеки, совместно используемые библиотеки и команды, применяемые в каталогах /Ьin и / sЬin /lost+found Потерянные файлы, на которых не было ссылок ни в одной директории, хотя их inod не были помечены как свободные./media Точки монтирования файловых систем на съемных носителях (CD, Flash)./mnt Временные точки монтирования./opt Дополнительные (необязательные) пакеты программ и приложений./proc Информация о всех выполняющихся процессах./root Домашний каталог суперпользователя. Каталог должен быть в корневой ФС, чтобы администратор мог в него войти. (если будут проблемы с /home)/sbin Команды, необходимые для обеспечения минимальной работоспособности системы./srv Поля, зарезервированные для распределения через веб и другие серверы./sys Интерфейсы разных ядер (Liпux)./tmp Временные файлы. Каталог очищается при перезагрузке./usr Все установленные пакеты программ, документация, исходный код ядра и система X Window. Все пользователи кроме root имеют доступ только для чтения. Может быть смонтирована по сети и может быть общей для нескольких машин./var Здесь находятся часто меняющиеся данные (журналы ОС, системные log-файлы, cache-файлы и т. д.)MAC адрес
I/G - (Individual - 0 / Group - 1) тип адреса. Пакеты с групповым адресом получат все имеющие этот групповой адрес сетевые адаптеры.
U/L - (Universal - 0 / Local - 1) - определяет, как был присвоен адрес. Обычно - 0, Единица означает, что адрес задан не производителем, а админом локальной сети (перепрошит или назначен через драйвер устройства)
OUI - (Organizationally Unique Identifier) Идентификатор производителя. Назначается организацией IEEE.
OUA - (Organizationally Unique Address) Уникальный адрес карты для данного производителя.
UAA - Универсально управляемый адрес.
1бит 1бит 22 бита 24 битаMAC - адрес уникальная комбинация цифр и букв длиной 48 символов. Фактически, это аппаратный номер оборудования, который, присваивается сетевой карте устройства в момент производства.
------------------------------
|I/G |U/L | OUI | OUA |
------------------------------
<-- 46 бит UAA -->
I/G - (Individual - 0 / Group - 1) тип адреса. Пакеты с групповым адресом получат все имеющие этот групповой адрес сетевые адаптеры.
U/L - (Universal - 0 / Local - 1) - определяет, как был присвоен адрес. Обычно - 0, Единица означает, что адрес задан не производителем, а админом локальной сети (перепрошит или назначен через драйвер устройства)
OUI - (Organizationally Unique Identifier) Идентификатор производителя. Назначается организацией IEEE.
OUA - (Organizationally Unique Address) Уникальный адрес карты для данного производителя.
UAA - Универсально управляемый адрес.
Файловые системы Linux
Linux поддерживает много различных файловых систем. В качестве корневой файловой системы доступны: ext2, ext3, ext4, XFS, ReiserFS, JFS.
Ранее "родной" файловой системой Linux была ext2 (файловая система ext использовалась разве что в самых первых версиях Linux), затем ей на смену пришла журналируемая версия файловой системы — ext3.
Сегодня все современные дистрибутивы по умолчанию используют следующее поколение файловой системы — ext4.
Linux до сих пор поддерживает файловую систему ext, но она считается устаревшей, и рекомендуется воздержаться от ее использования.
Таким образом, в качестве корневой файловой системы и файловой системы других Linux-разделов используются файловые системы ext3, ext4, XFS, ReiserFS, JFS.
Все перечисленные файловые системы (кроме ext2) ведут журналы своей работы, что позволяет восстановить данные в случае сбоя.
Осуществляется это следующим образом — перед тем как выполнить операцию, журналируемая файловая система записывает эту операцию в журнал, а после выполнения операции удаляет запись из журнала.
Представим, что после занесения операции в журнал произошел сбой (например, выключили свет). Позже, когда сбой будет устранен, файловая система по журналу выполнит все действия, которые в него занесены.
Конечно, и это не всегда позволяет уберечься от последствий сбоя — стопроцентной гарантии никто не дает, но все же такая схема работы лучше, чем вообще ничего.
Файловые системы ext2 и ext3 совместимы. По сути, ext3 — та же ext2, только с журналом. Раздел ext3 могут читать программы (например, Total Commander и Ext2Fsd в Windows), рассчитанные на ext2. В свою очередь, ext4 — это усовершенствованная версия ext3.
В современных дистрибутивах по умолчанию задана файловая система ext4 (хотя в некоторых дистрибутивах все еще может использоваться ext3). При необходимости можно выбрать другие файловые системы.
Linux поддерживает много различных файловых систем. В качестве корневой файловой системы доступны: ext2, ext3, ext4, XFS, ReiserFS, JFS.
Ранее "родной" файловой системой Linux была ext2 (файловая система ext использовалась разве что в самых первых версиях Linux), затем ей на смену пришла журналируемая версия файловой системы — ext3.
Сегодня все современные дистрибутивы по умолчанию используют следующее поколение файловой системы — ext4.
Linux до сих пор поддерживает файловую систему ext, но она считается устаревшей, и рекомендуется воздержаться от ее использования.
Таким образом, в качестве корневой файловой системы и файловой системы других Linux-разделов используются файловые системы ext3, ext4, XFS, ReiserFS, JFS.
Все перечисленные файловые системы (кроме ext2) ведут журналы своей работы, что позволяет восстановить данные в случае сбоя.
Осуществляется это следующим образом — перед тем как выполнить операцию, журналируемая файловая система записывает эту операцию в журнал, а после выполнения операции удаляет запись из журнала.
Представим, что после занесения операции в журнал произошел сбой (например, выключили свет). Позже, когда сбой будет устранен, файловая система по журналу выполнит все действия, которые в него занесены.
Конечно, и это не всегда позволяет уберечься от последствий сбоя — стопроцентной гарантии никто не дает, но все же такая схема работы лучше, чем вообще ничего.
Файловые системы ext2 и ext3 совместимы. По сути, ext3 — та же ext2, только с журналом. Раздел ext3 могут читать программы (например, Total Commander и Ext2Fsd в Windows), рассчитанные на ext2. В свою очередь, ext4 — это усовершенствованная версия ext3.
В современных дистрибутивах по умолчанию задана файловая система ext4 (хотя в некоторых дистрибутивах все еще может использоваться ext3). При необходимости можно выбрать другие файловые системы.