По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Привет! В этой статье мы рассмотрим Partitions и Calling Search Space (CSS) в Cisco Unified Communications Manager (CUCM) , которые являются частью механизма Class of Control и применяются при разграничении доступов. /p> Partitions можно рассматривать как набор маршрутов, паттернов, номеров DN, каждый из которых может принадлежать к определенным разделам. CSS же представляет собой упорядоченный список Partitions. Чтобы совершить вызов Partition вызываемой стороны должен принадлежать CSS вызывающей стороны. При попытке выполнить вызов CUCM просматривает CSS вызывающей стороны и проверяет, принадлежит ли вызываемая сторона Partition’у в CSS. Если это так, вызов направляется в Translation Pattern. Если нет, то вызов отклоняется или Translation Pattern игнорируется. Подробнее про маршрутизацию и Translation Pattern’ы можно прочить в наших статьях. Можно назначить разные CSS IP-телефонам, номерам DN, переадресации всех вызовов (Call Forwarding All – CFA), переадресации без ответа (Call Forwarding No Answer - CFNA), переадресации вызовов в случае занятости (Call Forwarding Busy - CFB), шлюзов и паттернам Translation Pattern. Разделы и CSS облегчают маршрутизацию вызовов, поскольку они делят план маршрутизации на логические подмножества на основе организации, местоположения и/или типа вызова. Чтобы лучше понять, как все это работает, рассмотрим пример. Пример использования Partitions и CSS Этот пример иллюстрирует, как можно разграничить маршрутизацию звонка между пользователями в пределах организации. Допустим, у нас имеется три группы пользователей: Стажеры (могут звонить только на внутренние номера) Работники (могут звонить на внутренние номера и совершать междугородние звонки) Руководство (могут звонить на внутренние номера, совершать междугородние и международные звонки) Для каждого направления необходимо иметь Partition: Внутренние номера –Partition_1 Междугородние звонки – Partition_2 Международные звонки – Partition_3 Эти разделы отражают все возможные направления звонков. Все телефоны (номера DN) мы поместим в раздел Partition_1 (внутренние номера). На шлюзе сконфигурировано два паттерна Route Patterns: Все звонки кроме международных (поместим в раздел Partition_2) Международные звонки (поместим в раздел Partition_3) На основании этих ограничений создаем три CSS: CSS1 содержит разделы: Partition_1 CSS2 содержит разделы: Partition_1, Partition_2 CSS3 содержит разделы: Partition_1, Partition_2, Partition_3 Настраиваем телефоны: На телефонах стажеров указываем CSS1 На телефонах работников указываем CSS2 На телефонах руководства указываем CSS3 Теперь совершим тестовые звонки с заданными настройками. Тест 1: Звонок с телефона стажера Набран внутренний номер: Вызываемый абонент: Partition_1 Разделы CSS вызывающего абонента: Partition_1 Результат: Вызов выполнится (раздел Partition_1 включен в CSS) Набран междугородний номер: Вызываемый абонент: Partition_2 Разделы CSS вызывающего абонента: Partition_1 Результат: Вызов не выполнится (раздел Partition_2 не включен в CSS) Набран международный номер: Вызываемый абонент: Partition_3 Разделы CSS вызывающего абонента: Partition_1 Результат: Вызов не выполнится (раздел Partition_3 не включен в CSS) Тест 2: Звонок с телефона работника Набран внутренний номер: Вызываемый абонент: Partition_1 Разделы CSS вызывающего абонента: Partition_1, Partition_2 Результат: Вызов выполнится (раздел Partition_1 включен в CSS) Набран междугородний номер: Вызываемый абонент: Partition_2 Разделы CSS вызывающего абонента: Partition_1, Partition_2 Результат: Вызов выполнится (раздел Partition_2 включен в CSS) Набран международный номер: Вызываемый абонент: Partition_3 Разделы CSS вызывающего абонента: Partition_1, Partition_2 Результат: Вызов не выполнится (раздел Partition_3 не включен в CSS) Тест 3: Звонок с телефона руководства Набран внутренний номер: Вызываемый абонент: Partition_1 Разделы CSS вызывающего абонента: Partition_1, Partition_2, Partition_3 Результат: Вызов выполнится (раздел Partition_1 включен в CSS) Набран междугородний номер: Вызываемый абонент: Partition_2 Разделы CSS вызывающего абонента: Partition_1, Partition_2, Partition_3 Результат: Вызов выполнится (раздел Partition_2 включен в CSS) Набран международный номер: Вызываемый абонент: Partition_3 Разделы CSS вызывающего абонента: Partition_1, Partition_2, Partition_3 Результат: Вызов выполнится (раздел Partition_3 включен в CSS) Таким образом, получается, что вызовы совершать можно, только если раздел Partition вызываемого абонента находится в CSS вызывающего. Настройка Начнем с настройки Partitions. В Cisco Call Manager Administration переходим во вкладку Call Routing → Class of Control → Partition и нажимаем Add New. Здесь в поле Name указываем название для раздела и нажимаем Save. Теперь перейдем к созданию CSS. Для этого выберем вкладку Call Routing → Class of Control → Calling Search Space. Тут указываем имя в поле Name, из поля Available Partitions перенесем в поле Selected Partitions разделы, которые должен содержать CSS. Перенос осуществляется при помощи стрелочек. После чего нажимаем кнопку Save для сохранения. После того как мы создали CSS и Partitions на наших серверах, применим их к устройствам. Рассмотрим это на примере настройки телефона. Для этого выбираем телефон, который мы хотим настроить во вкладке Device → Phone. В его настройках выбираем желаемую линию и нажимаем на нее, например Line [1] . В открывшемся окне в строке Route Partition в выпадающем списке выбираем раздел для этой линии. После этого нажимаем Save и возвращаемся назад. Теперь нам осталось применить к телефону CSS. Здесь, в настройках телефона в поле Device Information находим строчку Calling Search Space и в выпадающем меню выбираем созданный ранее CSS. Затем сохраняем и применяем настройки. Аналогично мы можем настраивать Partitions и CSS на других устройствах, паттернах и номерах.
img
Почитать лекцию №20 про протоколы передачи данных нижнего уровня можно тут. Обычно называется и маркируется как Wi-Fi 802.11, который широко используется для передачи данных по беспроводной сети в радиочастотах 2,4 и 5 ГГц. Микроволновые печи, радиолокационные системы, Bluetooth, некоторые любительские радиосистемы и даже радионяня также используют радиочастоту 2,4 ГГц, поэтому WiFi может создавать помехи и мешать работе другим системам. Мультиплексирование Спецификации 802.11 обычно используют форму частотного мультиплексирования для передачи большого количества информации по одному каналу или набору частот. Частота сигнала-это просто скорость, с которой сигнал меняет полярность в течение одной секунды; следовательно, сигнал 2,4 ГГц-это электрический сигнал, передаваемый по проводу, оптическому волокну или воздуху, который меняет полярность с положительной на отрицательную (или отрицательную на положительную) 2,4 × 109 раз в секунду. Чтобы понять основы беспроводной передачи сигналов, лучше всего начать с рассмотрения идеи несущей и модуляции. Рисунок 1 иллюстрирует эти концепции. На рисунке 1 выбрана одна центральная частота; канал будет представлять собой диапазон частот по обе стороны от этой центральной частоты. В результирующем канале две несущие частоты выбираются таким образом, чтобы они были ортогональны друг другу-это означает, что сигналы, передаваемые на этих двух несущих частотах, не будут мешать друг другу. Они обозначены на рисунке как OSF 1 и OSF 2. Каждая из этих несущих частот, в свою очередь, фактически является более узким каналом, позволяя модулировать фактический сигнал "0" и "1" на канале. Модуляция, в данном случае, означает изменение фактической частоты сигнала вокруг каждой из частот. Модуляция просто означает изменение несущей таким образом, чтобы сигнал передавался так, чтобы приемник мог его надежно декодировать. Таким образом, в спецификации 802.11 используется схема мультиплексирования с ортогональным частотным разделением каналов (Orthogonal Frequency Division Multiplexing- OFDM), а фактические данные кодируются с использованием частотной модуляции (Frequency Modulation-FM). Важно Один из сбивающих с толку моментов мультиплексирования заключается в том, что оно имеет два значения, а не одно. Либо это означает размещение нескольких битов на одном носителе одновременно, либо возможность одновременного взаимодействия нескольких хостов с использованием одного и того же носителя. Какое из этих двух значений подразумевается, можно понять только в конкретном контексте. В этой лекции применяется первое значение мультиплексирования, разбиение одного носителя на каналы, чтобы можно было передавать несколько битов одновременно. Скорость, с которой данные могут передаваться в такой системе (полоса пропускания), напрямую зависит от ширины каждого канала и способности передатчика выбирать ортогональные частоты. Таким образом, для увеличения скорости 802.11 были применены два разных метода. Первый - просто увеличить ширину канала, чтобы можно было использовать больше несущих частот для передачи данных. Второй - найти более эффективные способы упаковки данных в один канал с помощью более сложных методов модуляции. Например, 802.11b может использовать канал шириной 40 МГц в диапазоне 2,4 ГГц, а 802.11ac может использовать канал шириной 80 или 160 МГц в диапазоне 5 ГГц. Пространственное мультиплексирование Другие формы мультиплексирования для увеличения пропускной способности между двумя устройствами также используются в серии спецификаций 802.11. Спецификация 802.11n представила Multiple Input Multiple Output (MIMO), которые позволяют сигналу проходить разными путями через единую среду (воздух). Это может показаться невозможным, поскольку в комнате только один "воздух", но беспроводные сигналы фактически отражаются от различных объектов в комнате, что заставляет их проходить через пространство разными путями. Рисунок 2 демонстрирует это. На рисунке 2, если предположить, что передатчик использует антенну, которая будет передавать во всех направлениях (всенаправленная антенна), есть три пути через одно пространство, помеченные 1, 2 и 3. Передатчик и приемник не могут "видеть" три отдельных пути, но они могут измерять силу сигнала между каждой парой антенн и пытаться посылать различные сигналы между внешне разделенными парами, пока не найдут несколько путей, по которым могут быть отправлены различные наборы данных. Второй способ использования нескольких антенн - это формирование луча. Обычно беспроводной сигнал, передаваемый от антенны, охватывает круг (3D-шар). При формировании луча, он формируется с помощью одного из различных методов, чтобы сделать его более продолговатым. Рисунок 3 иллюстрирует эти концепции. В несформированном узоре сигнал представляет собой шар или шар вокруг кончика антенны- нарисованный сверху, он выглядит как простой круг, простирающийся до самой дальней точки в форме шара. С помощью отражателя луч может быть сформирован или сформирован в более продолговатую форму. Пространство позади отражателя и по бокам луча будет получать меньше (или вообще не получать, для очень плотных лучей) мощности передачи. Как можно построить такой отражатель? Самый простой способ - это физический барьер, настроенный на отражение силы сигнала, подобно тому, как зеркало отражает свет или стена отражает звук. Ключ - это точка в сигнале передачи, в которой устанавливается физический барьер. Рисунок 4 будет использоваться для объяснения ключевых моментов в форме сигнала, отражении и гашении. Типичная форма волны следует за синусоидальной волной, которая начинается с нулевой мощности, увеличивается до максимальной положительной мощности, затем возвращается к нулевой мощности, а затем проходит цикл положительной и отрицательной мощности. Каждый из них представляет собой цикл- частота относится к числу повторений этого цикла в секунду. Вся длина волны в пространстве вдоль провода или оптического волокна называется длиной волны. Длина волны обратно пропорциональна частоте- чем выше частота, тем короче длина волны. Ключевой момент, который следует отметить на этой диаграмме, - это состояние сигнала в точках четверти и половины длины волны. В четвертьволновой точке сигнал достигает наивысшей мощности; если объект или другой сигнал интерферирует в этой точке, сигнал будет либо поглощен, либо отражен. В точке полуволны сигнал находится на минимальной мощности; если нет смещения или постоянного напряжения на сигнале, сигнал достигнет нулевой мощности. Чтобы отразить сигнал, вы можете расположить физический объект так, чтобы он отражал мощность только в точке четверти волны. Физическое расстояние, необходимое для этого, будет, конечно, зависеть от частоты, так же как длина волны зависит от частоты. Физические отражатели просты. Что делать, если вы хотите иметь возможность динамически формировать луч без использования физического отражателя? Рисунок 5 иллюстрирует принципы, которые вы можете использовать для этого. Светло-серые пунктирные линии на рисунке 5 представляют собой маркер фазы; два сигнала находятся в фазе, если их пики выровнены, как показано слева. Два сигнала, показанные в середине, находятся на четверть вне фазы, так как пик одного сигнала совпадает с нулевой точкой или минимумом второго сигнала. Третья пара сигналов, показанная в крайнем правом углу, является комплементарной, или на 180 градусов вне фазы, так как положительный пик одного сигнала совпадает с отрицательным пиком второго сигнала. Первая пара сигналов будет складываться вместе; третья пара сигналов будет погашена. Вторая пара может, если она правильно составлена, отражать друг друга. Эти три эффекта позволяют сформировать пучок, как показано на рисунке 6. Одна система формирования луча может использовать или не использовать все эти компоненты, но общая идея состоит в том, чтобы ограничить луч в пределах физического пространства в среде - как правило, свободное распространение в воздухе. Формирование луча позволяет использовать общую физическую среду в качестве нескольких различных каналов связи, как показано на рисунке 7. На рисунке 7 беспроводной маршрутизатор использовал свои возможности формирования луча для формирования трех разных лучей, каждый из которых направлен на другой хост. Маршрутизатор теперь может отправлять трафик по всем трем из этих сформированных лучей с более высокой скоростью, чем если бы он обрабатывал все пространство как единую совместно используемую среду, потому что сигналы для A не будут мешать или перекрываться с информацией, передаваемой в B или C. Совместное использование канала Проблема мультиплексирования в беспроводных сигналах связана с совместным использованием одного канала, как в системах проводных сетей. В решениях, разработанных для совместного использования единой беспроводной среды, преобладают две специфические проблемы: проблема скрытого узла и проблема мощности передачи / приема (которую также иногда называют перегрузкой приемника). На рисунке 8 показана проблема со скрытым узлом. Три круга на рисунке 8 представляют три перекрывающихся диапазона беспроводных передатчиков в точках A, B и C. Если A передает в сторону B, C не может слышать передачу. Даже если C прослушивает свободный канал, A и C могут передавать одновременно, что вызывает конфликт в B. Проблема скрытого узла усугубляется из-за того, что мощность передачи по сравнению с мощностью принятого сигнала, и реальность воздуха как среды. Главное практическое правило для определения мощности радиосигнала в воздухе - сигнал теряет половину своей мощности на каждой длине волны в пространстве, которое он проходит. На высоких частотах сигналы очень быстро теряют свою силу, что означает, что передатчик должен послать сигнал с мощностью на несколько порядков больше, чем его приемник способен принять. Очень сложно создать приемник, способный "слушать" локальный передаваемый сигнал в полную силу, не разрушая приемную схему, а также способный "слышать" сигналы очень низкой мощности, необходимые для расширения диапазона действия устройства. Другими словами, передатчик насыщает приемник достаточной мощностью, чтобы во многих ситуациях "уничтожить" его. Это делает невозможным в беспроводной сети для передатчика прослушивать сигнал во время его передачи и, следовательно, делает невозможным реализацию механизма обнаружения коллизий, используемого в Ethernet (как пример). Механизм, используемый 802.11 для совместного использования одного канала несколькими передатчиками, должен избегать проблем со скрытым каналом и приемником. 802.11 WiFi использует множественный доступ с контролем несущей / предотвращение конфликтов (Carrier Sense Multiple Access/Collision Avoidance -CSMA/CA) для согласования использования канала. CSMA/CA похож на CSMA/CD: Перед передачей отправитель прослушивает сообщение, чтобы определить, передает ли его другое устройство. Если слышна другая передача, отправитель "замирает" на определенный случайный период времени перед повторной попыткой- эта отсрочка предназначена для предотвращения того, чтобы несколько устройств, слышащие одну и ту же передачу, не пытались передать данные одновременно. Если никакой другой передачи не слышно, отправитель передает весь кадр- отправитель не может принять сигнал, который он передает, поэтому в этой точке нет способа обнаружить коллизию. Получатель отправляет подтверждение кадра при получении; если отправитель не получает подтверждения, он предполагает, что произошла коллизия, отключается на случайное количество времени и повторно отправляет кадр. Некоторые системы WiFi также могут использовать Request to Send/Clear to Send (RTS / CTS). В таком случае: Отправитель передает RTS. Когда канал свободен, и никакая другая передача не запланирована, получатель отправляет CTS. Получив CTS, отправитель передает данные Какая система будет обеспечивать более высокую пропускную способность, зависит от количества отправителей и получателей, использующих канал, длины кадров и других факторов. Маршалинг данных, контроль ошибок и управление потоком данных Маршалинг данных в 802.11 аналогичен Ethernet; в каждом пакете есть набор полей заголовка фиксированной длины, за которыми следуют транспортируемые данные и, наконец, четыре октетная Frame Check Sequence (FCS), которая содержит CRC для содержимого пакета. Если получатель может исправить ошибку на основе информации CRC, он это сделает, в противном случае получатель просто не подтверждает получение кадра, что приведет к повторной передаче кадра отправителем. Порядковый номер также включен в каждый кадр, чтобы гарантировать, что пакеты принимаются и обрабатываются в том порядке, в котором они были переданы. Управление потоком обеспечивается в системе RTS / CTS приемником, ожидающим отправки CTS, пока у него не будет достаточно свободного места в буфере для приема нового пакета, чтобы промежуточные системы могли обнаруживать конечные системы; это называется протоколом End System to Intermediate System (ES-IS).
img
Данная статья посвящена, наверное, самой сложной части начальной части изучения Linux - правам доступа. В данной статье будет рассказано о правах доступа, владельцах файлов, папок. Цели статьи: Просматривать и изменять владельцев объектов. Устанавливать правила доступа к объектам. Понимать право “Execute” Основные команды для работы с правами доступа: chown – установка владельца chgrp – установка группы владельца chmod – установка прав доступа В Windows у нас есть только один владелец файла или папки. Это можно посмотреть в свойствах объекта на вкладке безопасность, дополнительно и там же мы можем сменить владельца. Владелец в Windows по умолчанию обладает полными правами на объект. В Linux все происходит немного по-другому: Любой объект моет иметь своего владельца и группу владельцев, и кроме этого для объекта существуют все остальные пользователи в системе. Это самое существенное различие, что может быть владелец и группа владельцев. И так у меня есть пользователь petya и пользователь siadmin. Теперь посмотрим информацию по этим двум пользователям. Чтобы посмотреть воспользуемся командой id siadmin и id petya. У моего пользователя есть uid, который говорит, что я siadmin и вхожу в группу siadmin. Когда мы создаем нового пользователя группа по умолчанию совпадает с именем пользователя. Т.е каждый пользователь по умолчанию входит в свою собственную группу. Для пользователя petya я создал группу не по его имени. Я создал группу testusers и включил данного пользователя в данную группу и установил данную группу по умолчанию для данного пользователя. Я нахожусь в домашней папке. Набрав команду ls –l мы можем посмотреть список каталогов и файлов, у каждого из них есть владелец и группа владельцев. Эти данные указаны в колонках. Для файла test1.txt владельцем является root и группа владельцев root. Я создал папку Folder и файл test2.txt и назначил владельца и группу владельцев, согласно картинке. Для изменения данных параметров используется команда chown. Данную команду необходимо применять с повышением в привилегиях, через команду sudo. Например, изменим владельца для файла test1.txt. команда будет выглядеть так sudo chown petya test1.txt. Пароль не запросило, т.к я уже его вводил. Как мы видим все успешно отработало. Если раньше был владелец root, то теперь мы видим petya. Для изменения группы мы так же можем воспользоваться командой sudo chgrp testusers test1.txt. Данная команда chgrp используется редко, т.к вполне достаточно знать команду chown. Данная команда умеет менять в том числе и группу. Простой пример изменим группу используя команду chown :testusers file.txt. Просто перед группой ставим знак : который и говорит, что надо заменить группу на указанную. А можно сделать сразу 2 действия chown petya:testusers file1.txt Немного сумбура вносит, что у пользователя группа по умолчанию совпадает с именем пользователя. Но это стандартное поведение Linux, который так заводит группу. Даже суперпользователь root имеет свою группу root. При создании пользователя petya был принудительно включен в группу testusers и она была выставлена по умолчанию для данного пользователя. Еще есть важный момент, который необходимо упомянуть. Это рекурсивное выставление владельцем или группы владельцев на папки или файлы. Т.е если у нас есть папка родительская и в ней дочерние папки и файлы, а то и несколько вложений, а мы хотим изменить владельца или группу владельцев рекурсивно вниз, то команду chown необходимо использовать с ключем –R. Пример: sudo chown –R siadmin:testusers Folder Права доступа Далее вернемся к самой первой картинке. На картинке добавлены подписи на английском языке. Это сделано, для большей наглядности. Потому, что сейчас будем раздавать права на объекты файловой системы файлы, папки и другие объект. Следовательно, права будут присваиваться владельцам, группе владельцев и все остальные. Права для владельцев – это user - (u), права для группы владельцев group - (g), Права для всех остальных other - (o). Для того, чтобы далее разбираться с темой прав, надо запомнить вот такую табличку. В классическом Linux, есть 3 вида доступа к объекту, это право на чтение, право на запись и право на выполнение и различные комбинации из этих прав. Заглавные буквы на верху таблицы отвечают за какое-либо право. Цифрами обозначены значения данных прав. Если мы даем право на чтение, то оно обозначается r--, если чтение и запись то rw-, если даем все права то rwx. Мы можем объединять данные права, как видите в табличке различные комбинации указаны. Всего 8 комбинаций от "нет прав", до "полных прав". Так же данная комбинация может назначаться в виде цифр. Т.е на какой то файл у такого товарища доступ 5, это значить что данный товарищ имеет право читать файл и запускать на выполнение. Посчитать очень просто чтение это - 4 , а выполнение – это 1, а в сумме будет 5 или по другому r-x. Следовательно мы можем назначать, как в цифровом, так и в символьном варианте права. Еще один не маловажный момент мы назначаем права на файл, сразу для всех видов пользователей. Следовательно, указывая права, мы их сразу задаем для владельца, для группы владельца и всех остальных. Права мы можем назначать. Точно так же как на картинке символами rwx или цифрами, согласно табличке. Для лучшего понимания пример: Chmod 750 script - полные права владельцу, чтение и выполнение группе владельца и ничего всем остальным. Когда мы просматриваем права на объекты мы видим символьные обозначения, а там, где нет символа ставится прочерк, который означает, что данное право отсутствует. Право <<rwx rw- r-->> script - полные права владельцу, чтение и запись группе владельца, чтение остальным. Чтобы легче было определять права на объект надо мысленно разделить на блоки по 3 символа. Первый блок — это Владелец, 2-й Блок — это группа владельца и 3-й блок — это другие пользователи. Сhmod u+w script - дать право записи владельцу. Chmod ugo-x script - отобрать у всех право исполнения файла. Посмотреть, какие объекты находятся в директории и их права можно командой ls –la. Так же мы видим владельца и группу владельца. Теперь мы можем понимать первую строчку. Вывод из всего этого, напрашивается следующий. Владелец у объекта файловой системы может быть только один. В группу testusers или другую мы можем добавить кого угодно и они будут следовательно иметь права, как группа владельцев. И, следовательно, все остальные пользователи, т.е не владелец и не входящие в группу, будут относится к категории всех остальных пользователей. Получается Linux нам дает разбить всех на три группы и в соответствии с этим назначить различные права, а Windows ведет себя по-другому и там можно более гибко задавать права. Мы можем создать 100 пользователей и каждому из них дать какие-то свои уникальные права. В Linux тоже это возможно с помощью разных ACL (Access Control List - лист доступа), но это не входит в базовые понятия, которые мы разбираем в рамках данной статьи. Можно заметить ,что для папки спереди появляется символ d. Это d – directory каталог. Может появляться l – link – ссылка и.т.д. Следовательно, можно убирать права указывая у кого, например, забрать выполнение chmod ugo-x test1.txt или мы можем добавить владельцу chmod u+x test1.txt. И третий вариант изменения прав на файл - это полностью перезаписать права на объект chmod 640 test1.txt. Разберемся с правом на execute – выполнение. Понятно становится это права, когда мы имеет дело с каким-то скриптом или бинарником или программой исполняемой. Так же у нас данное право может назначаться на каталог, а каталог мы исполнить не можем. Но тут есть интересный момент, если у вас будет на папку разрешение только на чтение и запись, прочитать папку, переименовать ее т.е поработать с наименованием папки, но в глубь папки вы не сможете зайти. Чтобы зайти во внутрь папки необходимо право execute – т.е выполнение ее. Маска создания файлов и папок В данной части статьи рассмотрим следующий вопрос: Понимание принципов работы и управления масками создания файлов и папок. Основные понятия: umask – маска создания файлов и папок suid – бит запуска от имени владельца sgid – бит запуска от имени группы владельцев sticky – бит защиты содержимого Первое понятие umask - user creation mask - т.е маска с которой создается новая папка или файл, это то с какими правами по умолчанию будут создаваться папки и файлы для данного пользователя. В том случае если не создано каких-то особенных настроек наследования папки. suid – set user id, который позволяет, если установлен на исполняемый файл, то любой пользователь, который запускает, получает права определенные для владельца данного файла. По-другому, позволяет использовать права владельца данного файла, происходит некая подмена вас на владельца этого файла. sgid – set user id, который позволяет, если установлен на исполняемый файл, то любой пользователь, который запускает, получает права определенные для группы владельца данного файла. По-другому, позволяет использовать права группы владельца данного файла, происходит некая подмена вас на пользователя входящего в группу владельца этого файла. Маска это такая интересная штука, которая указывает права по–умолчанию. Она рассчитывается с помощью вычитания из максимальных прав. Примеры вычисления показаны на картинке. Посмотрим, как выглядит это в консоли. Создадим текстовый файл от имени стандартного пользователя touch test10.txt. Мы видим права, которые были выданы по умолчанию 664, соответственно я являюсь владельцем и моя группа. Создадим папку mkdir TestFolder. Выданы права по умолчанию 775. Теперь посмотрим правило действующее. Почему создаются объекты именно с такими правами. Этот параметр находится в профиле в старых версиях, сейчас он перенесен и за данный параметр отвечает утилита pam_umask. Если мы откроем мануал по данной утилите, то мы увидим, что данный параметр находится в /etc/login.defs Видим, что значение umask = 022. – это значение, которое идет по умолчанию во всех дебиан подобных операционных системах. Введем новое значение umask 075. Создадим новый файл touch test20.txt. Получаем права 602. После перезагрузки маска изменится на маску по умолчанию, чтобы маску нужную зафиксировать, необходимо отредактировать файл /etc/login.defs. Следовательно, для нашего пользователя значить маска изменится с 022 на ту маску, которую там пропишем. Нужно обратить внимание, что при создании папки права на выполнение по умолчанию выдаются, а на файл нет. Это связанно с тем, что без данных прав в данную папку невозможно будет зайти, а с файла убираются в целях защиты. Например, если вдруг окажется, что файл – это вредоносный код. Suid, sgid, sticky Рассмотрим оставшийся вопрос. Зачем нужны suid, sgid и sticky, биты и их установка. Suid – устанавливается для файлов. Sgid – устанавливается для файлов и для папок Sticky – устанавливается для папок. У них у всех есть цифровые значения. Их можно назначать точно так же, как и права, можно назначать через rwx или цифирные сочетания, а также т.к есть цифирные обозначения их можно комбинировать. Если мы установили 6 то мы установили suid и sgid. Этот бит через цифры ставится, точно так же, как и права, только ставим дополнительную цифру перед цифрами, означающими права. Так же эти биты можно ставить, через буквы: Chmod u+s script - установка suid Chmod g+s script - установка sgid Chmod o+t script - установка sticky Как мы видим suid добавляется к правам владельца, sguid прибавляется к правам группы владельца. Sticky добавляется к правам всем остальным. Как мы видим создан файл script.run с правами 755 и папка TestFolder 755. Установим suid бит на файл script.run. В настоящее время данный файл может выполнить любой человек. Изменим права на 770 - sudo chmod 770 script.run. Переключимся под пользователя, который не входит в группу siadmin. Например, пользователь su petya. Можно конечно добавить права пользователю petya, но иногда нужно, чтобы файлик запустился из-под Владельца файла. Даже если будут стоять разрешение на запуск данного файла и будет стоять suid, то файл запуститься из под Владельца. Устанавливаем sudo chmod u+s script.run и видим, во-первых, теперь у нас файлик подкрашен красным, данное выделение делает оболочка. Во-вторых, когда мы смотрим права, то видим x заменился на s. И теперь, кто бы не запускал файл, он всегда будет запускать от имени Владельца. Можно подробнее посмотреть через команду stat script.run, которая показывает полную статистику по файлу. Мы можем увидеть, что права стали теперь 4770. Вот эта самая цифра 4 впереди и говорит, что установлен suid бит. Мы аналогично можем убрать suid бит sudo chmod u-s script.run. Все вернулось на свои места. Для чего это нужно, есть некоторые программы которым необходим доступ к аппаратной части. Например ping, который проверяет связь, ему нужен доступ к сетевой карте. По умолчанию права на ping есть только у root, но если мы хотим чтобы все пользователи могли использовать данную утилиту, то мы должны разрешить ее запуск от имени root. Фактически та же самая функция, как и в операционной системе Windows запустить от пользователя. Аналогичным образом работает и sgid, если нам необходимо запускать от группы владельца, то устанавливаем этот бит и можем пользоваться - sudo chmod g+s script.run. Результат наших действий подсвечен желтым. Можно одновременно оба бита установить, следовательно, при выполнении будет и владелец заменен и группа заменена. Это имеет смысл делать, только для исполняемых файлов. Устанавливать на обычный текстовый файл данные биты, смысла конечно же нет. Очень редко, когда применяю оба бита сразу, такое сочетание необходимо если уж сильно кто-то заморачивается с безопасностью или требуется ювелирная настройка прав доступа и запуска. Теперь посмотрим, что с папкой происходит. На папку можно устанавливать sgid и sticky биты. Если мы устанавливаем групповой бит, то он для папок будет менять владельцев всех вложенных файлов на группу владельцев этой папки, т.е это один из вариантов наследования. Создадим файл от пользователя siadmin. Touch file.txt в текущей папки он создается со стандартными правами. Установим sgid на папку TestFolder - Sudo chmod g+s TestFolder. Создадим в ней такой же файл sudo touch TestFolder/file.txt Как мы видим группа осталась прежней. Если пользователю root сказать создать файл в текущем каталоге, то владелец и группа будут root. Теперь про sticky бит. Если установлен sticky бит на папку, то только Владелец данной папки или суперпользователь может удалить из нее файлы. Создадим папку Folder, поставим на нее максимальные права 777. И внутри создадим файл file.txt. Файлик с правами по умолчанию. Поменяем права на данный фал 666. Права на чтение и запись появились теперь у всех. Переключимся на другого пользователя, например, petya. Перейдем в домашний каталог пользователя siadmin - cd /home/siadmin/Folder. Внутри файл txt, который мы создавали. И удаляем rm file.txt. Файл удалился без проблем. Допустим мы хотим защитить от удаления, следовательно, необходимо установить sticky бит - sudo chmod o+t Folder Как видим появилась буква t на месте прав для всех остальных. Создадим еще раз файл touch file1.txt. Даем на данный файл всем права 666. А далее перелогиниваемся под petya. Заходим в папку /home/siadmin/Folder и командой rm file1.txt пытаемся удалить, на что получаем отказ от системы. Несмотря на права 666, система не дает удалить файл. Следовательно, удалить все вложенные объекты может либо root или Владелец папки.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59