По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Седьмая часть тут. Поля фиксированной длины - самый простой из описанных в словаре механизмов. Протокол определяет набор полей, какие данные содержит каждое поле и насколько велико каждое поле. Эта информация «встроена» в определение протокола, поэтому каждая реализация построена в соответствии с этими же спецификациями и, следовательно, может взаимодействовать друг с другом. Рисунок 1 иллюстрирует кодирование поля фиксированной длины, используемое в протоколе Open Shortest Path First (OSPF), взятом из RFC2328. Ряд чисел в верхней части рисунка 1 указывает отдельные биты в формате пакета; каждая строка содержит 32 бита информации. Первые 8 битов указывают номер версии, вторые 8 битов всегда имеют номер 5, следующие 16 битов содержат общую длину пакета и так далее Каждое из этих полей дополнительно определяется в спецификации протокола с видом информации, переносимой в поле и как оно закодировано. Например: Поле номера версии кодируется как целое число без знака. Это метаданные, указывающие словарь и грамматику, используемые для этого пакета. Если формат пакета необходимо изменить, номер версии может быть увеличен, что позволяет передатчикам и получателям использовать правильный словарь и грамматику при кодировании и декодировании информации в пакете Число 5 указывает тип пакета в протоколе; это часть словаря, определенного в другом месте в документе стандартов, поэтому он просто вставляется как фиксированное значение на этом рисунке. Этот конкретный пакет является пакетом подтверждения состояния канала (Link State Acknowledgment Packet). Длина пакета кодируется как целое число без знака, указывающее количество октетов (или наборов из 8 битов), содержащихся в полном пакете. Это позволяет размеру пакета варьироваться по длине в зависимости от объема передаваемой информации. Формат поля фиксированной длины имеет несколько преимуществ. Прежде всего, местоположение любого фрагмента информации в пакете будет одинаковым для каждого пакета, что означает, что легко оптимизировать код, предназначенный для кодирования и декодирования информации вокруг формата пакета. Например, обычным способом обработки формата пакета фиксированной длины является создание структуры данных в памяти, точно соответствующей формату пакета; когда пакет считывается с провода, он просто копируется в эту структуру данных. Поля в пакете могут быть прочитаны напрямую. Форматы фиксированной длины имеют тенденцию быть несколько компактными. Метаданные, необходимые для кодирования и декодирования данных, передаются «вне протокола» в форме спецификации протокола. Сами пакеты содержат только значение и никогда не содержат никакой информации о значениях. С другой стороны, форматы фиксированной длины могут тратить много места на буферизацию полей, чтобы они всегда были одинаковой длины. Например, десятичное число 1 может быть представлено одной двоичной цифрой (один бит), тогда как десятичное число 4 требует 3 двоичных цифры (три бита); если поле фиксированной длины должно быть в состоянии представить любое число от 0 до 4, оно должно быть длиной не менее 3 битов, даже если два из этих битов иногда «теряются» при представлении меньших десятичных чисел. Форматы фиксированной длины также часто занимают место, выравнивая размеры полей по общим границам памяти процессора, чтобы повысить скорость обработки. Поле, которое должно принимать значения от 0 до 3, даже если для представления полного набора значений требуется только два бита, может быть закодировано как 8-битовое поле (полный октет), чтобы обеспечить всегда выравнивание следующего поля на границе октета для более быстрой обработки в памяти. Гибкость - то, где кодирование фиксированной длины часто сталкивается с проблемами. Если какое-либо поле определено как 8-битное значение (один октет) в исходной спецификации, нет очевидного способа изменить длину поля для поддержки новых требований. Основной способ решения этой проблемы в схемах кодирования с фиксированной длиной - через номер версии. Если длина поля должна быть изменена, номер версии изменяется в форматах пакетов, поддерживающих новую длину поля. Это позволяет реализациям использовать старый формат, пока все устройства в сети не будут обновлены для поддержки нового формата; после того как все они обновлены, вся система может быть переключена на новый формат, будь то больше или меньше.
img
Windows и Linux являются очень производительными операционными системами, и у каждой из них есть множество плюсов и минусов, которые мы можем обсудить. Но как часто вы задумываетесь о потенциале сценариев и автоматизации двух операционных систем? Мы решили посмотреть, что можно делать с помощью скриптовых функций, поставляемых с Windows и Linux. Немного истории: PowerShell PowerShell - это среда автоматизации и задач Microsoft, удобная для управления конфигурацией. PowerShell использует компоненты, называемые командлетами, которые встроены в PowerShell. Дополнительные функции доступны через модули. Они устанавливаются из галереи PowerShell непосредственно из командной строки. PowerShell отличается от Bash, потому что он предназначен для взаимодействия со структурами .NET изначально в Windows. Это означает, что он может передавать объекты и данные между сценариями, приложениями и сеансами. Каждый объект имеет свой собственный набор свойств, что делает обработку данных в PowerShell еще более детальной. Данные могут быть указаны как числа (целые числа), слова (строки), логические (истина и ложь) и многие другие типы. Это означает, что вы можете по-настоящему определиться с тем, как ваши скрипты обрабатывают ввод и вывод данных. Немного истории: Bash Системы Linux и Unix всегда выигрывали от структурирования многопользовательской терминальной среды. Это означает, что вы можете запускать дополнительные сессии в той же системе и запускать сценарии и приложения, не влияя на основные сессии, в которые вошли другие пользователи. Это сильно отличалось от ранних систем Windows и DOS, которые были однопользовательскими средами с одной сессией, до появления Windows NT в середине 90-х годов. Первоначальная оболочка, поставляемая с Unix, была известна как оболочка Bourne, названная в честь ее создателя Стивена Борна. Bash (Bourne again Shell) является преемником оболочки Bourne с открытым исходным кодом. Bash получил широкое распространение, когда Linux был создан в начале 90-х годов, поэтому он используется до сих пор. Существует множество функций, которые делают Bash очень популярным, главными из которых являются стабильность системы и то, что это открытый исходный код. Из-за этого он встречается практически в каждом дистрибутиве Linux. Все эти факторы делают его одной из наиболее часто используемых сред сценариев для ИТ-специалистов. Когда использовать PowerShell Администрирование Windows стало намного проще с тех пор, как разработка PowerShell стала частью среды Microsoft. Вместо того, чтобы бороться с неудобными пакетными файлами и планировщиком Windows, системные администраторы получают доступ к новому набору инструментов с впечатляющими приложениями и функциями. PowerShell может уточнять детали для создания эффективных скриптов, а также некоторых коммерчески доступных приложений. PowerShell может извлекать данные прямо из подсистемы WMI, предоставляя вам в режиме реального времени глубокую информацию обо всем, от идентификаторов процессов и счетчиков обработчиков. PowerShell включен в платформу .NET, поэтому вы можете создавать великолепно выглядящие меню и формы winform. Вы можете использовать PowerShell, чтобы делать что угодно - от запросов к базам данных SQL до захвата ваших любимых RSS-каналов прямо в сеанс PowerShell для дальнейших манипуляций. Это настоящий швейцарский нож для системного администрирования в среде Windows. Когда использовать Bash Если вы используете системы Linux, значит, вы знаете о необходимости автоматизации задач. Ранние ленточные накопители использовались для резервного копирования с архивированием tar. Эти операции могут быть написаны в Bash, а затем запущены через расписание cron. Сегодня мы воспринимаем подобные вещи как должное, но многие задачи приходилось выполнять вручную до создания таких сред, как Bash. Все, что связано с манипуляциями с файлами, такими как архивирование, копирование, перемещение, переименование и удаление файлов, подходит Bash. Также возможны более сложные манипуляции с файлами. Вы можете найти файлы, созданные в определенные даты, и для каких файлов были изменены права доступа CHMOD и владельца. Bash также отлично подходит для создания интерактивных меню для запуска скриптов и выполнения системных функций. Они выполняются в неграфической среде, но работают очень хорошо. Это отлично подходит для обмена вашими библиотеками скриптов с другими. Отличия PowerShell и Bash в чем-то похожи, но также очень разные. Вот четыре основных отличия. PowerShell по-разному обрабатывает данные PowerShell отличается от Bash способом обработки данных. PowerShell - это язык сценариев, но он может передавать данные в разных форматах таким образом, чтобы он выглядел как язык программирования. PowerShell также имеет дело с областями действия в своих скриптах. Использование переменных с $session, $script и $cache дает вашим сценариям дополнительную гибкость, позволяя передавать переменные другим командам в том же сценарии или сеансе PowerShell. Bash - это CLI Bash - это CLI (Command Language Interpreter), что означает интерпретатор командного языка. Как и PowerShell, Bash может передавать данные между командами по каналам. Однако эти данные отправляются в виде строк. Это ограничивает некоторые вещи, которые вы можете делать с выводом ваших скриптов, например математические функции. PowerShell - это и CLI, и язык Интегрированная среда сценариев PowerShell по умолчанию (ISE - Integrated Scripting Environment), поставляемая с Windows, показывает, как можно быстро и легко создавать сценарии, не жертвуя прямым доступом к командной строке. По умолчанию верхний раздел позволяет набирать строки кода сценария и быстро его тестировать. Окно ниже представляет собой командную строку PowerShell, которая дает вам быстрый доступ для выполнения отдельных команд. Это дает вам лучшее из обоих миров между языком сценариев и оболочкой командной строки. ISE - отличный инструмент для быстрого создания прототипов решений. PowerShell и Bash - мощные инструменты Среда, в которой вы работаете, определит, какой инструмент вы выберете. Системные администраторы Linux, пишущие сценарии в Bash, считают, что освоить сценарии PowerShell относительно легко. Навыки написания сценариев PowerShell также в определенной степени переносятся на сценарии Bash. Основными различиями между этими двумя языками сценариев являются синтаксис и обработка данных. Если вы понимаете такие концепции, как переменные и функции, тогда изучение любого из этих языков становится проще.
img
В этой статье рассмотрим, как управлять учетными записями пользователей и групп в Linux. Также посмотрим различные базы данных, в которых хранится информация о пользователях и группах и что такое теневые пароли. Изначально в Linux было 2 файла /etc/password и /etc/group. В первом файле хранилось: Имя_пользователя : пароль : uid : gid : сведения (поле предназначено для персональных данных) : домашняя_папка : командная оболочк(которая запускается при входе пользователя в систему) Во втором файле хранилось: имя_группы : пароль : gid : члены_группы У группы может быть пароль, но данную функцию очень редко, кто использует, в таком случае пароль будет запрашиваться при смене членства в группе. Данные файлы плохи тем, что у всех пользователей системы, по умолчанию, есть права на чтение. Такие права необходимы потому, что разные пользователи, разные демоны и сервисы обращаются к данным файлам, чтобы брать оттуда информацию. Соответственно в этих файлах хранился пароль пользователя, хотя и в зашифрованном виде, но с помощью различных методов криптографии подбора можно было воспользоваться данным паролем, потому что у всех пользователей был на эти файлы доступ. Поэтому был создан механизм теневых паролей. Были созданы вот такие 2 файла: /etc/shadow и /etc/gshadow. И к этим двум файлам имеет полный доступ только пользователь root. Следовательно, теперь в файлах passwd и group указываются не пароли, а специальные символы, говорящие что пароли были перенесены в файлы shadow и gshadow. В новом файле shadow хранится побольше информации о пароле пользователя. Это: Логин Пароль Время после смены пароля – это если пароль сбрасывался после времени установки системы Минимальный срок действия пароля - как часто можно менять пароль, если, например, стоит 5 дней, то пароль можно менять не чаще, чем раз в 5 дней. Максимальный срок действия пароля – максимальное количество дней, по прошествии которых обязательно необходимо сменить пароль. Срок предупреждения – за сколько дней до истечения пароля система предупредит о том, что необходимо сменить пароль. Время работы с истекшим паролем – это параметр позволяет указанное число дней работать с истекшим паролем. Срок для блокировки пароля – данный параметр отвечает за время жизни самого пароля, например, пароль будет работать 100 дней, после этого заблокируется. Соответственно данные параметры можно при необходимости задавать при создании учетной записи пользователя и паролей. Если провести аналогию с операционной системой Windows, то подобные параметры в Windows мы можем задавать через GPO (Group Policy Object - набор правил или настроек, в соответствии с которыми производится настройка рабочей среды в операционных системах Windows). Отличие заключается в том, что в Windows эти параметры выставляются в абсолютных величинах числом, а в операционной системе Linux, относительно даты 1 января 1970 года. Ну и соответственно gshadow имеет следующую структуру, разделенную символом :. Имя группы Пароль зашифрованный Администраторы, те учетные записи, которые могут менять пароль группы или добавлять другие аккаунты Члены групп Следовательно, пароли могут хранится и в тех, и в тех файлах, отличие в том, что у пользователей есть доступ на чтение к файлам passwd и group, а к shadow и gshadow только у пользователя root. Данный механизм называется механизмом теневых паролей, и он присутствует во всех современных Linux системах. Теперь, посмотрим, как это выглядит в операционной системе. Заходим в файл passwd любым текстовым редактором, например, nano, без повышения привилегий. Возьмем пользователя: list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin Логин - list, значок X говорит о том, что пароль хранится в теневом файле. Далее 38 – id пользователя, 38 - gid, прочая информация - Mailing List Manager, домашняя папка пользователя - /var/list и оболочка которая используется при входе - /usr/sbin/nologin. Можно увидеть, что вместо оболочки у пользователя указан nologin – это означает, что пользователь не может войти, используя стандартный экран входа, используя стандартные средства. На картинке можно найти пользователя siadmin. Можно также увидеть все остальные параметры этого пользователя. У него совпадает uid и gid, это связанно с тем , что при создании пользователя создается одноименная группа. Можно, конечно, при создании указать, что пользователь будет входить в другую группу и не создавать одноименную, но по умолчанию она создается. В конце строчки мы можем увидеть /bin/bash, которая запускается при входе в систему. Можно обратить внимания на uid и gid все реальные пользователи их имеют числом выше 1000. Все пользователи, у которых число ниже – это служебные пользователи или созданные автоматически. В некоторых дистрибутивах Linux нумерация реальных пользователей начинается с 500. Посмотрим файл с группами, вводим команду nano /etc/group Данная база очень простая. Указано наименование группы, знак X говорит, о том, что пароль хранится в теневой базе, идентификатор группы и список пользователей в данной группе. Единственный нюанс - если пользователь входит в свою же группу, то после знака двоеточие пользователь не отображается. Далее файлы /etc/shadow и /etc/gshadow, данные файлы не редактируются с помощью текстовых редакторов, а через специальные команды. Данные файлы — это просто хранилище информации. Эти утилиты будут рассмотрены в следующем уроке. Зайти в эти файлы могут только пользователи имеющие права root или с помощью команды повышающей привилегии sudo. sudo nano /etc/shadow Теперь мы видим в данном файле через двоеточие: Имя пользователя * или зашифрованный пароль Срок с последнего изменения пароля в днях Минимальный срок изменения пароля, если 0, то сменить пароль можно сразу 99999 - срок действия пароля, 7 - количество дней за которое до истечения пароля придет предупреждение Символ * говорит о том, что под данным пользователем нельзя зайти стандартным способом, обычно это применяется для служебных аккаунтов, т.е вход вообще заблокирован под данным аккаунтом. Вот так вот реализуется механизм теневых паролей.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59