Аналог групповых политик для Chromium в Linux

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Created page with " Традиционно большинство приложений в Linux имеют два уровня настроек - системный и пользовательс...")
 
м
 
Строка 1: Строка 1:
 +
Традиционно большинство приложений в Linux имеют два уровня настроек — системный и пользовательский. Системные настройки обычно размещаются в директории {{File|/etc}}; они задаются администратором на подконтрольных ему машинах либо приходят вместе с пакетами дистрибутива. Если пользователю эти настройки не подходят, он их изменяет (обычно с помощью самого приложения). Измененные настройки сохраняются в его домашний каталог, не влияя на других пользователей машины. При этом пользовательские настройки обладают более высоким приоритетом, чем системные — исходя из того, что пользователю лучше знать, что ему нужно, а Linux — дружелюбная пользователю ОС (старается ей быть, по крайней мере).
  
Традиционно большинство приложений в Linux имеют два уровня настроек - системный и пользовательский. Системные настройки обычно размещаются в директории {{File|/etc}}; они задаются администратором на подконтрольных ему машинах либо приходят вместе с пакетами дистрибутива. Если пользователю эти настройки не подходят, он их изменяет (обычно с помощью самого приложения). Измененные настройки сохраняются в его домашний каталог, не влияя на других пользователей машины. При этом пользовательские настройки обладают более высоким приоритетом, чем системные - исходя из того, что пользователю лучше знать, что ему нужно, а Linux - дружелюбная пользователю ОС (старается ей быть, по крайней мере).
+
Однако бывают ситуации, когда пользователю надо «дать по рукам» и запретить менять некоторые настройки. Такие ситуации могут возникнуть и на домашней машине (например, если дети добрались до компьютера), а уж в корпоративном секторе — это дело обычное. Причем корпоративным регламентом могут быть охвачены вполне безобидные, на первый взгляд, параметры — домашняя страница браузера или используемая им по умолчанию поисковая система.
  
Однако бывают ситуации, когда пользователю надо "дать по рукам" и запретить менять некоторые настройки. Такие ситуации могут возникнуть и на домашней машине (например, если дети добрались до компьютера), а уж в корпортаивном секторе - это дело обычное. Причем корпоративным регламентом могут быть охвачены вполне безобидные, на первый взгляд, параметры - как то домашняя страница браузера или используемая им по умолчанию поисковая система.
+
Для таких случаев требуется еще одно звено в цепочке настроек, которое было бы системным по своей сути (в том плане, что распространялось на всех пользователей системы и могло модифицироваться только администратором), но при этом имело бы приоритет больший, чем настройки пользователя. В Windows в роли такого звена выступают '''групповые политики''' (GPO), обычно задаваемые администратором домена AD и распространяемые на членов домена. В Linux, несмотря на существенный подвижки в плане интеграции с AD, прямого аналога GPO нет.
  
Для таких случаев требуется еще одно звено в цепочке настроек, которое было бы системным по своей сути (в том плане, что распространялось на всех пользователей системы и могло  модифицироваться только администратором), но при этом имело бы приоритет больший, чем настройки пользователя. В Windows в роли такого звена выступают '''групповые политики''' (GPO), обычно задаваемые администратором домена AD и распространячемые на членов домена. В Linux, несмотря на существенный подвижки в плане интеграции с AD, прямого аналога GPO нет.
+
По большому счету, это и не нужно для низкоуровневых системных настроек, которые может изменять только администратор — например, набора подключенных репозиториев дистрибутива, используемых DNS-серверов и тому подобного. Но что делать с приложениями, системные настройки которых пользователь может переопределить своими собственными? Есть и здесь свет в конце тоннеля. По крайней мере, для отдельных программ, разработчики которых в курсе потребностей корпоративного сектора и знают, что там используются ОС не только от MS. И хороший пример здесь — браузер {{Prog|Chromium}}. Пример выше с настройками веб-браузера приведен не зря — в случае с Chromium, параметры такого рода можно намертво зафиксировать на уровне системы так, что пользователи не смогут их перебить.
  
По большому счету, это и не нужно для низкоуровневых системных настроек, которые может изменять только администратор - например, набора подключенных репозиториев дистрибутива, используемых DNS-серверов и тому подобного. Но что делать с приложениями, системные настройки которых пользователь может переопределить своими собственными? Есть и здесь свет в конце тоннеля. По крайней мере, для отдельных программ, разработчики которых в курсе потребностей корпоративного сектора и знают, что там используются ОС не только от MS. И хороший пример здесь - браузер {{Prog|Chromium}}. Пример выше с настройками веб-браузера приведен не зря - в случае с Chromium, параметры такого рода можно намертво зафиксировать на уровне системы так, что пользователи не смогут их перебить.
+
Реализована такая возможность в Chromium очень просто — здесь предусмотрен системный файл настроек, данные из которго имеют приоритет выше, чем настройки пользователя. По сложившейся терминологии, такие настройки называют «политиками». Политики Chromium описываются файлами формата <tt>json</tt>, находящимися в директории {{File|/etc/chromium/policies}}. Политики делятся на обязательные (лежат в папке {{File|/etc/chromium/policies/managed}}) и рекомендуемые ({{File|/etc/chromium/policies/recommended}} соответсвенно). Рекомендуемые политики — это практически обычные системные настройки, которые пользователь может переопределять. А вот обязательные политики — это то, что нам нужно.
  
Реализована такая возможность в Chromium очень просто - здесь предусмотрен системный файл настроек, данные из которго имеют приоритет выше, чем настройки пользователя. По сложившейся терминологии, такие настройки называют "политиками". Политики Chromium описываются файлами формата json, находящимися в директории {{File|/etc/chromium/policies}}. Политики делятся на обязательные (лежат в папке {{File|/etc/chromium/policies/managed}}) и рекомендуемые ({{File|/etc/chromium/policies/recommended}} соответсвенно). Рекомендуемые политики - это практически обычные системные настройки, которые пользователь может переопределять. А вот обязательные политики - это то, что нам нужно.
+
Для примера давайте зададим что-нибудь например, список сайтов, которые Chromium должен блокировать. Все действия нужно производить с правами <tt>root</tt>; также не забывайте следить, чтобы у обычных пользователей не было прав на запись в создаваемые файлы.
 
+
Для примера давайте зададим что-нибудь - например, список сайтов, которые Chromium должен блокировать. Все действия нужно производить с правами root; также не забывайте следить, чтобы у обычных пользователей не было прав на запись в создаваемые файлы.
+
  
 
Для начала, создадим нужную папку, если ее еще нет:
 
Для начала, создадим нужную папку, если ее еще нет:
Строка 22: Строка 21:
 
  }
 
  }
  
А теперь закройте Chromium, если он уже работает, запустите его снова и попробуйте перейти на сайт example.com.
+
А теперь закройте Chromium, если он уже работает, запустите его снова и попробуйте перейти на сайт <tt>example.com</tt>.
  
 
[[File:Chrome block.png|600px|thumb|center]]
 
[[File:Chrome block.png|600px|thumb|center]]
Строка 28: Строка 27:
 
Всего через политики можно задать почти три сотни различных настроек, полный список которых можно найти [https://www.chromium.org/administrators/policy-list-3 на сайте Chromium]. Также Google предоставляет [http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip архив с шаблонами] политик, куда входит и json-файл для Linux с аннотированными именами политик и их возможными значениеями.
 
Всего через политики можно задать почти три сотни различных настроек, полный список которых можно найти [https://www.chromium.org/administrators/policy-list-3 на сайте Chromium]. Также Google предоставляет [http://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip архив с шаблонами] политик, куда входит и json-файл для Linux с аннотированными именами политик и их возможными значениеями.
  
Список политик, используемых в данный момент броузером, можно получить по ссылке chrome://policy.
+
Список политик, используемых в данный момент броузером, можно получить по ссылке <tt>chrome://policy</tt>.
  
 
Как и прочие файлы конфигурации, json-файлы с политиками Chromium можно распространить по папкам {{File|/etc/chromium/policies}} целого парка машин с помощью Puppet, CFEngine и подобных программ управления конфигурацией.
 
Как и прочие файлы конфигурации, json-файлы с политиками Chromium можно распространить по папкам {{File|/etc/chromium/policies}} целого парка машин с помощью Puppet, CFEngine и подобных программ управления конфигурацией.
  
 +
----
  
<hr>
+
Chromium не единственный пример приложения, поддерживающий системные настройки, которые не могут быть переопределены пользователем. Например, {{Prog|OpenOffice}} уже много лет [http://www.linux-kongress.org/2010/slides/ooo_netzwerk-effenberger.pdf поддерживает такой функционал]. Правда, там разработчики пошли немного другим путем и добавили возможность для каждой опции в системном конфигурационном файле указать атрибут '''finalized''', который и означает, что значение «окончательное и переопределению не подлежит». В случае OOo такой подход вполне логичен файлы конфигурации Open/LibreOffice (с расширением «.xcu») имеют формат XML, где каждое свойство задается отдельным элементом. Наличие дополнительного атрибута элемента в такую архитектуру хорошо вписывается. Правда, редактировать XML-файлы вручную то еще удовольствие. На FOSDEM 2014 разработчики из Collabora [https://archive.fosdem.org/2014/schedule/event/central_configuration_management_of_large_libreoffice_deployments/attachments/slides/465/export/events/attachments/central_configuration_management_of_large_libreoffice_deployments/slides/465/Andras_Timar_LibO_Central_Config_Management.pdf демонстрировали на слайдах] графическую программу для редактирования файла настроек LibreOffice, а заодно и инструмент RemoteRoot для удаленного управления множеством машин (в частности, для доставки на них пакетов и конфигураций LO) еще одно приложение из серии Puppet & co. Однако пока что многие из представленных там возможностей
 
+
можно посмотреть только в рамках слайдов. Так, на сайте «remoteroot.org» в разделе «Downloads» уже второй год красуется сообщение «Very soon, please be patient!».
 
+
Chromium - не единственный пример приложения, поддерживающий системные настройки, которые не могут быть переопределены пользователем. Например, {{Prog|OpenOffice}} уже много лет [http://www.linux-kongress.org/2010/slides/ooo_netzwerk-effenberger.pdf поддерживает такой функционал]. Правда, там разработчики пошли немного другим путем и добавили возможность для каждой опции в системном конфигурационном файле указать атрибут '''finalized''', который и означает, что значение "окончательное и переопределению не подлежит". В случае OOo такой подход вполне логичен - файлы конфигурации Open/LibreOffice (с расширением ".xcu") имеют формат XML, где каждое свойство задается отдельным элементом. Наличие дополнительного атрибута элемента в такую архитектуру хорошо вписывается. Правда, редактировать XML-файлы вручную - то еще удовольствие. На FOSDEM 2014 разработчики из Collabora [https://archive.fosdem.org/2014/schedule/event/central_configuration_management_of_large_libreoffice_deployments/attachments/slides/465/export/events/attachments/central_configuration_management_of_large_libreoffice_deployments/slides/465/Andras_Timar_LibO_Central_Config_Management.pdf демонстрировали на слайдах] графическую программу для редактирования файла настроек LibreOffice, а заодно и инструмент RemoteRoot для удаленного управления множеством машин (в частности, для доставки на них пакетов и конфигураций LO) - еще одно приложение из серии Puppet & co. Однако пока что многие из представленных там возможностей
+
можно посмотреть только в рамках слайдов. Так, на сайте "remoteroot.org" в разделе "Downloads" уже второй год красуется сообщение "Very soon, please be patient!".
+
  
 
[[Category:ToROSAPoint]]
 
[[Category:ToROSAPoint]]
 
{{wl-publish: 2015-04-02 18:05:13 +0400 | Denis.silakov }}
 
{{wl-publish: 2015-04-02 18:05:13 +0400 | Denis.silakov }}

Текущая версия на 17:06, 3 апреля 2015

Традиционно большинство приложений в Linux имеют два уровня настроек — системный и пользовательский. Системные настройки обычно размещаются в директории /etc; они задаются администратором на подконтрольных ему машинах либо приходят вместе с пакетами дистрибутива. Если пользователю эти настройки не подходят, он их изменяет (обычно с помощью самого приложения). Измененные настройки сохраняются в его домашний каталог, не влияя на других пользователей машины. При этом пользовательские настройки обладают более высоким приоритетом, чем системные — исходя из того, что пользователю лучше знать, что ему нужно, а Linux — дружелюбная пользователю ОС (старается ей быть, по крайней мере).

Однако бывают ситуации, когда пользователю надо «дать по рукам» и запретить менять некоторые настройки. Такие ситуации могут возникнуть и на домашней машине (например, если дети добрались до компьютера), а уж в корпоративном секторе — это дело обычное. Причем корпоративным регламентом могут быть охвачены вполне безобидные, на первый взгляд, параметры — домашняя страница браузера или используемая им по умолчанию поисковая система.

Для таких случаев требуется еще одно звено в цепочке настроек, которое было бы системным по своей сути (в том плане, что распространялось на всех пользователей системы и могло модифицироваться только администратором), но при этом имело бы приоритет больший, чем настройки пользователя. В Windows в роли такого звена выступают групповые политики (GPO), обычно задаваемые администратором домена AD и распространяемые на членов домена. В Linux, несмотря на существенный подвижки в плане интеграции с AD, прямого аналога GPO нет.

По большому счету, это и не нужно для низкоуровневых системных настроек, которые может изменять только администратор — например, набора подключенных репозиториев дистрибутива, используемых DNS-серверов и тому подобного. Но что делать с приложениями, системные настройки которых пользователь может переопределить своими собственными? Есть и здесь свет в конце тоннеля. По крайней мере, для отдельных программ, разработчики которых в курсе потребностей корпоративного сектора и знают, что там используются ОС не только от MS. И хороший пример здесь — браузер Chromium. Пример выше с настройками веб-браузера приведен не зря — в случае с Chromium, параметры такого рода можно намертво зафиксировать на уровне системы так, что пользователи не смогут их перебить.

Реализована такая возможность в Chromium очень просто — здесь предусмотрен системный файл настроек, данные из которго имеют приоритет выше, чем настройки пользователя. По сложившейся терминологии, такие настройки называют «политиками». Политики Chromium описываются файлами формата json, находящимися в директории /etc/chromium/policies. Политики делятся на обязательные (лежат в папке /etc/chromium/policies/managed) и рекомендуемые (/etc/chromium/policies/recommended соответсвенно). Рекомендуемые политики — это практически обычные системные настройки, которые пользователь может переопределять. А вот обязательные политики — это то, что нам нужно.

Для примера давайте зададим что-нибудь — например, список сайтов, которые Chromium должен блокировать. Все действия нужно производить с правами root; также не забывайте следить, чтобы у обычных пользователей не было прав на запись в создаваемые файлы.

Для начала, создадим нужную папку, если ее еще нет:

# mkdir -p /etc/chromium/policies/managed

А внутри нее создадим файл test_policy.json со следующим содержимым:

{
  "URLBlacklist": ["example.com", "enemy-site.com"],
}

А теперь закройте Chromium, если он уже работает, запустите его снова и попробуйте перейти на сайт example.com.

Chrome block.png

Всего через политики можно задать почти три сотни различных настроек, полный список которых можно найти на сайте Chromium. Также Google предоставляет архив с шаблонами политик, куда входит и json-файл для Linux с аннотированными именами политик и их возможными значениеями.

Список политик, используемых в данный момент броузером, можно получить по ссылке chrome://policy.

Как и прочие файлы конфигурации, json-файлы с политиками Chromium можно распространить по папкам /etc/chromium/policies целого парка машин с помощью Puppet, CFEngine и подобных программ управления конфигурацией.


Chromium — не единственный пример приложения, поддерживающий системные настройки, которые не могут быть переопределены пользователем. Например, OpenOffice уже много лет поддерживает такой функционал. Правда, там разработчики пошли немного другим путем и добавили возможность для каждой опции в системном конфигурационном файле указать атрибут finalized, который и означает, что значение «окончательное и переопределению не подлежит». В случае OOo такой подход вполне логичен — файлы конфигурации Open/LibreOffice (с расширением «.xcu») имеют формат XML, где каждое свойство задается отдельным элементом. Наличие дополнительного атрибута элемента в такую архитектуру хорошо вписывается. Правда, редактировать XML-файлы вручную — то еще удовольствие. На FOSDEM 2014 разработчики из Collabora демонстрировали на слайдах графическую программу для редактирования файла настроек LibreOffice, а заодно и инструмент RemoteRoot для удаленного управления множеством машин (в частности, для доставки на них пакетов и конфигураций LO) — еще одно приложение из серии Puppet & co. Однако пока что многие из представленных там возможностей можно посмотреть только в рамках слайдов. Так, на сайте «remoteroot.org» в разделе «Downloads» уже второй год красуется сообщение «Very soon, please be patient!».

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.