home linux что это
Структура файловой системы Linux
Файловая система в ОС Linux, как и в ОС Windows, представляет собой иерархическую структуру каталогов и файлов (в виде дерева), но при этом имеет ряд кардинальных отличий.
Структура каталогов
Подключение внешних носителей
В ОС Linux имеется процедура монтирования: когда подключается съемный носитель или диск, файл устройства будет виден в каталоге /dev (devices). Чтобы увидеть содержимое этого устройства, его нужно смонтировать в отдельную директорию /mnt. Также файловая система позволяет примонтировать его и в любое другое место, например /home.
Понятие файла
Понятие «файл» в Linux имеет несколько другое значение, нежели в Windows. «Файлом» можно назвать обычный файл, содержащий данные, и интерпретируемый программой. Директория также является «файлом», содержащим в себе ссылки на другие директории или файлы с данными. Файлы устройства указывает на драйвер, благодаря которому система взаимодействует с физическими устройствами. Имеются и многие другие типы файлов.
Принцип установки программ
Если в Windows программы, зачастую, хранят все данные в одной папке, например в «C:Program FilesProgramName», то в Linux файлы программы разделяются по каталогам в зависимости от типа. Например, исполняемые файлы в /bin, библиотеки в /lib, файлы конфигураций в /etc, логи и кэш в /var.
Регистр имен
Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы Temp.txt и temp.txt будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.
Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:
Cтруктура файловой системы Linux
Понимание файловой системы Linux, структуры каталогов, размещения конфигурационных, исполняемых и временных файлов поможет вам лучше разбираться в своей системе и стать успешным системным администратором. Файловая система Linux будет непривычна именно для новичка, только что перешедшего с Windows, ведь здесь все совсем по-другому.
В отличие от Windows, программа не находится в одной папке, а, как правило, распределена по корневой файловой системе. Это распределение поддается определенным правилам. Вы когда-нибудь задавались вопросом, почему некоторые программы находятся в папке /bin, или /sbin, /usr/sbin, /usr/local/bin, в чем разница между этими каталогами?
Например, программа less, находится в каталоге /usr/bin, но почему не в /sbin или /usr/sbin. А такие программы, как ifconfig или fdisk находятся в каталоге /sbin и нигде иначе. В этой статье будет полностью рассмотрена структура файловой системы Linux, после ее прочтения вы сможете понять смысл использования большинства папок в корневом каталоге Linux.
Это главный каталог в системе Linux. По сути, это и есть файловая система Linux. Здесь нет дисков или чего-то подобного, как в Windows. Вместо этого, адреса всех файлов начинаются с корня, а дополнительные разделы, флешки или оптические диски подключаются в папки корневого каталога.
Только пользователь root имеет право читать и изменять файлы в этом каталоге. Обратите внимание, что у пользователя root домашний каталог /root, но не сам /.
Этот каталог содержит исполняемые файлы. Здесь расположены программы, которые можно использовать в однопользовательском режиме или режиме восстановления. Одним словом, те утилиты, которые могут использоваться пока еще не подключен каталог /usr/. Это такие общие команды, как cat, ls, tail, ps и т д.
Так же как и /bin, содержит двоичные исполняемые файлы, которые доступны на ранних этапах загрузки, когда не примонтирован каталог /usr. Но здесь находятся программы, которые можно выполнять только с правами суперпользователя. Это разные утилиты для обслуживания системы. Например, iptables, reboot, fdisk, ifconfig,swapon и т д.
Это тоже необычная файловая система, а подсистема, динамически создаваемая ядром. Здесь содержится вся информация о запущенных процессах в реальном времени. По сути, это псевдофайловая система, содержащая подробную информацию о каждом процессе, его Pid, имя исполняемого файла, параметры запуска, доступ к оперативной памяти и так далее. Также здесь можно найти информацию об использовании системных ресурсов, например, /proc/cpuinfo, /proc/meminfo или /proc/uptime. Кроме файлов в этом каталоге есть большая структура папок linux, из которых можно узнать достаточно много информации о системе.
Название каталога /var говорит само за себя, он должен содержать файлы, которые часто изменяются. Размер этих файлов постоянно увеличивается. Здесь содержатся файлы системных журналов, различные кеши, базы данных и так далее. Дальше рассмотрим назначение каталогов Linux в папке /var/.
В эту папку почтовый сервер складывает все полученные или отправленные электронные письма, здесь же могут находиться его логи и файлы конфигурации.
Изначально, эта папка отвечала за очереди печати на принтере и работу набора программ cups.
Здесь находятся файлы блокировок. Эти файлы означают, что определенный ресурс, файл или устройство занят и не может быть использован другим процессом. Apt-get, например, блокирует свою базу данных, чтобы другие программы не могли ее использовать, пока программа с ней работает.
Содержит файлы с PID процессов, которые могут быть использованы, для взаимодействия между программами. В отличие от каталога /run данные сохраняются после перезагрузки.
В этом каталоге содержатся временные файлы, созданные системой, любыми программами или пользователями. Все пользователи имеют право записи в эту директорию.
Файлы удаляются при каждой перезагрузке. Аналогом Windows является папка Windows\Temp, здесь тоже хранятся все временные файлы.
Это самый большой каталог с большим количеством функций. Тут наиболее большая структура каталогов Linux. Здесь находятся исполняемые файлы, исходники программ, различные ресурсы приложений, картинки, музыку и документацию.
Содержит исполняемые файлы различных программ, которые не нужны на первых этапах загрузки системы, например, музыкальные плееры, графические редакторы, браузеры и так далее.
/usr/sbin/
Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.
Содержит библиотеки для программ из /usr/bin или /usr/sbin.
Содержит файлы программ, библиотек, и настроек созданные пользователем. Например, здесь могут храниться программы собранные и установленные из исходников и скрипты, написанные вручную.
В этой папке хранятся домашние каталоги всех пользователей. В них они могут хранить свои личные файлы, настройки программ и т д. Например, /home/sergiy и т д. Если сравнивать с Windows, то это ваша папка пользователя на диске C, но в отличии от WIndows, home как правило размещается на отдельном разделе, поэтому при переустановке системы все ваши данные и настройки программ сохранятся.
Содержит все файлы, связанные с загрузчиком системы. Это ядро vmlinuz, образ initrd, а также файлы загрузчика, находящие в каталоге /boot/grub.
Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.
Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib. Эту папку можно сравнить с WIndows\system32, там тоже сгружены все библиотеки системы, только там они лежат смешанные с исполняемыми файлами, а здесь все отдельно.
В эту папку устанавливаются проприетарные программы, игры или драйвера. Это программы созданные в виде отдельных исполняемых файлов самими производителями. Такие программы устанавливаются в под-каталоги /opt/, они очень похожи на программы Windows, все исполняемые файлы, библиотеки и файлы конфигурации находятся в одной папке.
В этот каталог системные администраторы могут монтировать внешние или дополнительные файловые системы.
В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.
Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.
Выводы
Systemd изменит работу вашего домашнего каталога Linux
Команда systemd хочет, чтобы вы применили новый способ управления домашними каталогами. Назвать это «новым способом» — значит легко сказать — это настоящий сдвиг парадигмы для Linux. В этой статье мы собрали всё, что вам нужно знать о systemd-homed, которая, скорее всего, уже присутствует в вашем дистрибутиве Linux.
Глобальные изменения всегда вызывают споры
Когда в 2010 году был представлен systemd, сообщество Linux разделилось на три лагеря. Некоторые думали, что это улучшение, а другие думали, что это неудачное устройство системы, не соответствующее философии Unix. А некоторым было всё равно какой вариант выбрать.
Ответная реакция противников была громкой, острой и в некоторых случаях почти фанатичной. Леннарту Поеттерингу, инженеру-программисту Red Hat и со-разработчику systemd, даже угрожали смертью.
Тем не менее, в течение восьми месяцев Fedora использовала systemd. К концу 2013 года Arch, Debian, Manjaro и Ubuntu перешли на systemd. Конечно, слава открытого исходного кода в том, что если вам что-то не нравится, вы можете форкнуть исходный код и делать с ним свои собственные дела. Новые дистрибутивы, такие как Devuan, который был ответвлением Debian, были созданы исключительно для того, чтобы избежать использования systemd.
В структуре каталогов Linux всё, что вы делаете, находится в каталоге «/home». Ваши файлы данных, изображения, музыка и всё дерево личных каталогов хранятся в одном каталоге, названном в честь вашей учётной записи.
Настройки ваших приложений хранятся в вашей домашней папке в скрытых каталогах, имя которых начинается с точки. Если первый символ имени файла или каталога — точка (.), Он считается скрытым. Поскольку эти настройки хранятся локально, а не в центральном реестре, и поскольку резервная копия вашего домашнего каталога включает в себя эти скрытые файлы и папки, все ваши настройки также будут скопированы.
Когда вы восстанавливаете резервную копию и запускаете приложение, такое как LibreOffice или Thunderbird, оно ищет свой скрытый каталог. Оно также находит ваши настройки документов, настройки панели инструментов и любые другие настройки. Thunderbird находит информацию о вашей учётной записи электронной почты и вашу электронную почту. Вам не придётся медленно настраивать каждое приложение.
Вы можете использовать ls с параметром -a (all, всё), чтобы увидеть скрытые файлы и каталоги. Сначала введите следующее:
Это показывает вам обычные файлы и каталоги. Затем введите следующее:
Теперь вы можете увидеть в дополнение скрытые файлы и каталоги.
Поскольку это наиболее важная часть установки, каталог «/home» обычно монтируется в отдельный раздел или на отдельный жёсткий диск. Таким образом, если что-то катастрофическое случится с операционной системой или разделом, на котором она находится, вы можете либо переустановить дистрибутив Linux, либо заменить его на новый. Затем вы можете просто перемонтировать существующий домашний раздел в «/home».
Данные о вас
Ваш домашний каталог не просто хранит ваши данные; он также хранит информацию о вас, включая некоторые атрибуты вашей цифровой идентичности. Например, в вашем каталоге «.ssh» хранится информация об удалённых подключениях, которые вы установили с другими компьютерами, и любых созданных вами SSH-ключах.
Другие системные атрибуты, такие как имя пользователя вашей учётной записи, пароль и уникальный идентификатор пользователя, хранятся в других местах в файлах, таких как «/etc/passwd» и «/etc/shadow». Кто угодно может прочитать некоторые из них, но другие могут быть прочитаны только людьми с правами root.
Вот как выглядит содержимое файла «/etc/passwd»:
Изменения, которые несёт systemd-homed
Целью изменений systemd-homed является создание полностью переносимого домашнего каталога с вашими данными и цифровыми идентификаторами Linux, хранящимися в нём. Ваш UID и все другие механизмы идентификации и аутентификации будут храниться только в вашем домашнем каталоге.
Благодаря конструкции «все яйца в одной корзине» домашние каталоги станут зашифрованными. Они автоматически расшифровываются при входе в систему и снова шифруются при выходе из системы. Предпочтительный метод — использовать шифрование диска Linux Unified Key Setup (LUKS). Однако есть и другие схемы, например fscrypt.
Запись пользователя JavaScript Object Notation (JSON) хранит всю вашу идентификационную информацию в каталоге с именем «
/.identity». Он подписан криптографически с помощью ключа, который находится вне вашего контроля.
Каковы преимущества?
Поскольку ваш домашний каталог становится безопасной инкапсуляцией всех ваших данных, у вас даже может быть домашний каталог на съёмном устройстве. Например, вы можете использовать USB-накопитель для перемещения его между вашей рабочей и домашней машинами или любым другим компьютером, подключённым к системе.
Это то, что Poettering имел в виду под «полностью переносимым домашним каталогом». Он сказал, что даже если вы не хотите перемещать домашний каталог на портативном устройстве, это упростит обновление и миграцию и повысит безопасность.
Такой подход удаляет то, что он называет «вспомогательными базами данных», которые содержат фрагменты важной информации о вас, которую, по мнению Poettering, следует централизовать. Файлы «/etc/passwd» и «/etc/shadow» содержат информацию для аутентификации и хешированные пароли. Однако они также содержат такую информацию, как ваша оболочка по умолчанию, поле General Electric Comprehensive Operating Supervisor (GECOS).
Поеттеринг сказал, что эти метаданные следует рационализировать и хранить в значимых группах в записи JSON каждого человека в их домашнем каталоге.
Служба systemd-home управляется с помощью нового инструмента командной строки homectl.
Есть варианты для создания пользователей и домашних каталогов, а также для установки ограничений хранилища для каждого пользователя. Вы также можете установить пароль, заблокировать кого-либо из его учётной записи или полностью удалить учётную запись. Пользователи могут быть проверены, и их пользовательские записи JSON также могут быть прочитаны.
Часовые пояса и другая информация на основе местоположения также может быть установлена для каждого пользователя. Вы можете указать оболочку по умолчанию и даже установить переменные среды, чтобы они находились в определённом состоянии при каждом входе в систему.
Если вы посмотрите в каталог «/home», вы увидите управляемые записи systemd-homed, размещённые в системе, которые выглядят следующим образом, с добавлением «.homedir» к имени пользователя:
Помните, что это просто точка монтирования. Местоположение фактического зашифрованного домашнего каталога находится в другом месте.
Ограничения и проблемы
systemd-homed предназначен только для использования в учётных записях пользователей. Он не может обрабатывать учётные записи пользователей с UID менее 1000. Другими словами, root, daemon, bin и т. д. не могут управляться с использованием новой схемы. Всегда будут нужны стандартные способы администрирования пользователей. Поэтому systemd-homed не является глобальным решением.
Есть известная Уловка-22, которую необходимо решить. Как мы упоминали ранее, домашний каталог человека расшифровывается всякий раз, когда он или она входит в систему. Но если кто-то получает удалённый доступ к компьютеру через SSH, на ключи SSH в домашнем каталоге нельзя ссылаться, потому что домашний каталог все ещё зашифрован до того момента, когда человек входит в систему. Конечно, для аутентификации необходимы ключи SSH, прежде чем он или она сможет войти в систему.
Это признанная командой systemd-homed проблема, но мы не смогли найти никаких ссылок на её решение. Мы уверены, что они найдут решение; если бы они этого не сделали, это стало бы зрелищным провалом.
Допустим, кто-то переносит свой домашний каталог на новую машину. Если UID уже используется на новом компьютере кем-то другим, ему автоматически будет назначен новый UID. Конечно, всем его файлам придётся переназначить право собственности на новый UID.
Когда это будет?
Это происходит сейчас. Изменения кода были представлены 20 января 2020 года и включены в сборку 245 systemd, которая уже присутствует на большинстве современных дистрибутивах.
Чтобы узнать, какая у вас версия, на производных Debian (Kali Linux, Linux Mint, Ubuntu) введите следующее:
А на производных Arch Linux нужно ввести:
Однако команда homectl пока присутствует не во всех дистрибутивах. Эта команда уже есть на производных Arch Linux, но всё ещё отсутствует на производных Debian.
Популярные дистрибутивы на момент написания используют каталог /home и не используют systemd-homed.
Конечно, отдельные дистрибутивы сами решают, когда они будут включать и поддерживать systemd-homed и homectl.
Так что никому не нужно переходить в режим работы с вилами и горящими факелами, чтобы ополчиться на инженеров и программистов Linux. Поскольку стандартные методы управления пользователями и домашними каталогами останутся, у всех по-прежнему будет выбор.
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Объяснение структуры каталогов Linux
Руководство по каталогам
Если вы работаете с Windows, структура файловой системы Linux может показаться особенно чуждой. Диск C:\ и буквы диска исчезли, их заменили каталоги / и загадочно звучащие каталоги, большинство из которых имеют трехбуквенные имена.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Обратите внимание, что мы не говорим здесь о файловой системе, которая является техническим шаблоном, используемым для хранения данных на диске. Структура каталогов, которую мы рассмотрим, применима к большинству дистрибутивов Linux независимо от того, какую файловую систему они используют.
Типы содержимого
Это основные типы контента, хранящегося в файловой системе Linux.
Каталог /bin содержит основные пользовательские двоичные файлы (программы), которые должны присутствовать при монтировании системы в однопользовательском режиме.
Каталог /media содержит подкаталоги, в которых монтируются съемные носители, вставленные в компьютер. Например, когда вы вставляете компакт-диск в свою систему Linux, внутри каталога /media автоматически создается каталог. Вы можете получить доступ к содержимому компакт-диска внутри этого каталога.
Например, /media/cdrom для CD-ROM (если он не расположен в корне), /media/floppy для дисководов гибких дисков, /media/cdrecorder для рекордера компакт-дисков
/var это место, где программы хранят информацию о времени выполнения, такую как системный журнал, отслеживание пользователей, кэши и другие файлы, которые системные программы создают и управляют.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Навигация по файлам и директориям
В прошлый раз мы хаотично вводили текст в командную строку Linux и получали сообщения об ошибках. Все это время мы находились внутри домашнего каталога. Сегодня мы попытаемся разобраться как перемещаться по папкам при помощи команд и просматривать их содержимое.
Но для начало необходимо понять устройство файловой структуры Linux. Она представляет собой иерархическую структуру. То есть файловая система организована на подобии директорий (они же папки и каталоги), в которых расположены иные директории и файлы. Верхняя директория файловой системы называется корневой директорией. Внутри корневой директории расположены файлы и директории, которые содержат файлы и директории.
В графическом интерфейсе структура директорий выглядит следующим образом.
В отличии от файловой организации Windows, где корневыми директориями являются диски, в Linux есть единственное дерево и только одна корневая директория, которая не ассоциируется с каким либо физическим дисковым устройством. Различные диски могут быть подключены как поддеревья (директории) внутри этого дерева.
Разморозим нашу виртуальную машину и сделаем первые шаги в освоении организации файловой структуры Linux 🙂
Рабочая директория и её содержание
Так как интерфейс командной строки не может графически показать файловую структуру, существует иной способ ее представления. Представим, что дерево файлов является лабиринтом, в котором мы находимся. В каждый момент мы находимся в одной из директорий данного лабиринта. Внутри нее мы видим путь к родительской директории, файлы и пути во вложенные директории.
Директория в которой мы находимся называется рабочей директорией. Чтобы узнать имя рабочей директории, воспользуемся командой pwd (print working directory — вывести рабочую директорию).
Введем команду pwd в окно терминала.