Versionen vergleichen
Модификация Firefox с помощью AutoConfig
Version 291171:
Version 291171 von Goudron am
Version 318850:
Version 318850 von SumoBot am
Schlüsselwörter:
Zusammenfassung für die Suchergebnisse:
Как использовать файлы AutoConfig для установки и блокировки параметров, которые не покрываются политиками Firefox.
Как использовать файлы AutoConfig для установки и блокировки параметров, которые не покрываются политиками Firefox.
Inhalt:
Файлы AutoConfig можно использовать для установки и блокировки параметров, которые не покрываются [[Customize Firefox using Group Policy|групповыми политиками на Windows]] или [[Customize Firefox using policies.json|policies.json для Mac и Linux]]. Этот метод может использоваться для автоматического изменения пользовательских настроек или для предотвращения изменения конечным пользователем определенных настроек путём их блокировки.
__TOC__
== Настройка AutoConfig ==
Чтобы использовать автонастройку, вам необходимо создать два файла, один на верхнем уровне, а другой в подкаталоге. В Windows пути основаны на каталоге, в котором установлен Firefox. В macOS пути основаны на каталоге <code>Contents/Resources</code> Firefox.app.
{note}В файле autoconfig.js должен использоваться конец строки Unix (LF), даже в системах Windows с [[Find what version of Firefox you are using|Firefox версии 60]] или более поздней.{/note}
Первый файл, который необходимо создать, называется '''autoconfig.js''', и он должен располагаться в папке <code>defaults/pref</code>. Он должен содержать следующие две строки:
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);
Первая строка определяет наименование AutoConfig-файла. Имя файла можно изменить, но расположения файла изменить нельзя.
Вторая строка указывает на то, что AutoConfig не должен быть скрыт. По умолчанию Firefox ожидает, что файл будет с побайтовым смещением 13 байтов для его обфускации.
Второй файл, который вы должны создать, называется '''firefox.cfg'' и он располагается на верхнем уровне каталога Firefox. Он всегда должен начинаться со строки-комментария, например:
// ВАЖНО: Начните свой код со второй строки
Хотя расширение файла автоконфигурации обычно <code>.cfg</code>, файл автоконфигурации является файлом JavaScript. Это позволяет записывать в файл дополнительный JavaScript для добавления другой логики в различных ситуациях.
== Функции AutoConfig ==
Следующие фукнции доступны внутри AutoConfig-файла:
'''pref(prefName, value)''' – устанавливает параметру пользовательское значение. Эта фукнция явно устанавливает параметр как пользовательский параметр. Это означает, что если пользователь изменил значение, оно будет сбрасываться при каждом запуске браузера.
'''defaultPref(prefName, value)''' – устанавливает параметру значение по умолчанию. Это то значение, которое параметр имеет, когда пользователь не устанавливает никакое значение или пользователь сбрасывает настройки. Оно может быть навсегда изменено пользователем.
'''lockPref(prefName, value)''' – устанавливает параметру значение по умолчанию и блокирует его. Это наиболее часто используемая функция. Блокировка параметра не даёт пользователи его изменять и в большинстве случаев отключает настройки в графическом интерфейсе, что даёт пользователю очевидное понимание, что параметр был отключен.
'''unlockPref(prefName)''' – разблокирует параметр. В качестве примера, это может быть использовано в случае, когда настройки должны быть заблокированы для всех пользователей, но разблокированы для определенных пользователей.
'''getPref(prefName)''' – извлекает значение параметра. Если параметр не существует, выводится сообщение об ошибке. Эту функцию следует использовать только для тех параметров, которые существуют всегда.
'''clearPref(prefName)''' – удаляет пользовательское значение параметра, возвращая его к значению по умолчанию.
'''displayError(funcname, message)''' – отображает ошибку в определенном формате, что является удобным инструментом для отладки.
Netscape.cfg/AutoConfig failed. Please contact your system administrator.
Error: [funcname] failed: [message]
'''getenv(name)''' – запрашивает переменные среды. Это может обеспечить доступ к таким вещам, как имена пользователей и другая системная информация.
=== Отключение элементов пользовательского интерфейса ===
В тех случаях, когда элементы пользовательского интерфейса не отключаются автоматически в настройках, существуют некоторые параметры “disable_button”, которые при блокировке отключают кнопки. Например, если добавить
lockPref("pref.privacy.disable_button.view_passwords",true);
в вашем файле AutoConfig, то будет отключена кнопка {button Просмотр паролей}. Другие параметры, которые включают блокировку кнопок:
*pref.general.disable_button.default_browser
*pref.browser.homepage.disable_button.current_page
*pref.browser.homepage.disable_button.bookmark_page
*pref.browser.homepage.disable_button.restore_default
*security.disable_button.openCertManager
*security.disable_button.openDeviceManager
*app.update.disable_button.showUpdateHistory
*pref.privacy.disable_button.cookie_exceptions
*pref.privacy.disable_button.view_cookies
*pref.privacy.disable_button.view_passwords
*pref.privacy.disable_button.view_passwords_exceptions
*pref.downloads.disable_button.edit_actions.
== Централизованное управление ==
Файлом AutoConfig можно управлять централизованно. Для этого необходимо указать расположение дополнительного файла AutoConfig в основном файле AutoConfig:
pref("autoadmin.global_config_url","http://yourdomain<!-- -->.com/autoconfigfile.js");
URL-адресом может быть любой протокол, поддерживаемый Firefox, включая протокол <code>file:</code>, указывающий на файл на сетевом диске. Формат удаленного файла AutoConfig такой же, как и у файла AutoConfig на клиенте, за исключением того, что первая строка не игнорируется.
Существуют и другие параметры, которые управляют различными аспектами AutoConfig. Параметр {pref autoadmin.refresh_interval} позволяет обновлять AutoConfig с заданным интервалом, указанным в минутах. Существуют также настройки, связанные с управлением автономным режимом, включая {pref autoadmin.offline_failover} и {pref autoadmin.failover_to_cached}.
Каждый раз при получении AutoConfig-файла с удалённого ресурса в папке профиля пользователя создаётся его резервная копия с именем {pref failover.jsc}. Если параметр {pref autoadmin.failover_to_cached} установлен в значение {pref false}, Firefox считывает закэшированный файл и отмечает браузер как работающий оффлайн и блокирует параметр, так что пользователь не может перейти в онлайн. Если этот параметр установлен в {pref true}, он просто использует закэшированный файл и продолжает. Параметр {pref autoadmin.offline_failover} контролирует, используется ли закэшированный файл, когда пользователь в оффлайне. Если он установлен в {pref true}, используется закэшированный файл.
== Параметры, относящиеся к конкретному пользователю ==
Если в файл AutoConfig необходимо включить информацию, относящуюся к конкретному пользователю, следует установить следующий параметр:
pref("autoadmin.append_emailaddr", true);
При этом к запросу будут добавлены вопросительный знак (?) и адрес электронной почты.
Поскольку Firefox не использует адреса электронной почты, необходимо задать параметр {pref mail.identity.useremail}. Если он не задан, Firefox отобразит запрос на ввод адреса электронной почты. Поскольку файл автонастройки является файлом JavaScript, это предпочтение можно задать перед установкой {pref autoadmin.global_config_url}. Например:
var user = getenv("USER");
lockPref("mail.identity.useremail", user);
lockPref("autoadmin.global_config_url","https://yourdomain<!-- -->.com/autoconfigfile.js");
Файлы AutoConfig можно использовать для установки и блокировки параметров, которые не покрываются [[Customize Firefox using Group Policy (Windows)|групповыми политиками на Windows]] или [[Customize Firefox using policies.json|policies.json для Mac и Linux]]. Этот метод может использоваться для автоматического изменения пользовательских настроек или для предотвращения изменения конечным пользователем определенных настроек путём их блокировки.
__TOC__
== Настройка AutoConfig ==
Чтобы использовать автонастройку, вам необходимо создать два файла, один на верхнем уровне, а другой в подкаталоге. В Windows пути основаны на каталоге, в котором установлен Firefox. В macOS пути основаны на каталоге <code>Contents/Resources</code> Firefox.app.
{note}В файле autoconfig.js должен использоваться конец строки Unix (LF), даже в системах Windows с [[Find what version of Firefox you are using|Firefox версии 60]] или более поздней.{/note}
Первый файл, который необходимо создать, называется '''autoconfig.js''', и он должен располагаться в папке <code>defaults/pref</code>. Он должен содержать следующие две строки:
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);
Первая строка определяет наименование AutoConfig-файла. Имя файла можно изменить, но расположения файла изменить нельзя.
Вторая строка указывает на то, что AutoConfig не должен быть скрыт. По умолчанию Firefox ожидает, что файл будет с побайтовым смещением 13 байтов для его обфускации.
Второй файл, который вы должны создать, называется '''firefox.cfg''' и он располагается на верхнем уровне каталога Firefox. Он всегда должен начинаться со строки-комментария, например:
// ВАЖНО: Начните свой код со второй строки
Хотя расширение файла автоконфигурации обычно <code>.cfg</code>, файл автоконфигурации является файлом JavaScript. Это позволяет записывать в файл дополнительный JavaScript для добавления другой логики в различных ситуациях.
== Функции AutoConfig ==
Следующие фукнции доступны внутри AutoConfig-файла:
'''pref(prefName, value)''' – устанавливает параметру пользовательское значение. Эта фунция явно устанавливает параметр как пользовательский параметр. Это означает, что если пользователь изменил значение, оно будет сбрасываться при каждом запуске браузера.
'''defaultPref(prefName, value)''' – устанавливает параметру значение по умолчанию. Это то значение, которое параметр имеет, когда пользователь не устанавливает никакое значение или пользователь сбрасывает настройки. Оно может быть навсегда изменено пользователем.
'''lockPref(prefName, value)''' – устанавливает параметру значение по умолчанию и блокирует его. Это наиболее часто используемая функция. Блокировка параметра не даёт пользователи его изменять и в большинстве случаев отключает настройки в графическом интерфейсе, что даёт пользователю очевидное понимание, что параметр был отключен.
'''unlockPref(prefName)''' – разблокирует параметр. В качестве примера, это может быть использовано в случае, когда настройки должны быть заблокированы для всех пользователей, но разблокированы для определенных пользователей.
'''getPref(prefName)''' – извлекает значение параметра. Если параметр не существует, выводится сообщение об ошибке. Эту функцию следует использовать только для тех параметров, которые существуют всегда.
'''clearPref(prefName)''' – удаляет пользовательское значение параметра, возвращая его к значению по умолчанию.
'''displayError(funcname, message)''' – отображает ошибку в определенном формате, что является удобным инструментом для отладки.
Netscape.cfg/AutoConfig failed. Please contact your system administrator.
Error: [funcname] failed: [message]
'''getenv(name)''' – запрашивает переменные среды. Это может обеспечить доступ к таким вещам, как имена пользователей и другая системная информация.
=== Отключение элементов пользовательского интерфейса ===
В тех случаях, когда элементы пользовательского интерфейса не отключаются автоматически в настройках, существуют некоторые параметры “disable_button”, которые при блокировке отключают кнопки. Например, если добавить
lockPref("pref.privacy.disable_button.view_passwords",true);
в вашем файле AutoConfig, то будет отключена кнопка {button Просмотр паролей}. Другие параметры, которые включают блокировку кнопок:
*pref.general.disable_button.default_browser
*pref.browser.homepage.disable_button.current_page
*pref.browser.homepage.disable_button.bookmark_page
*pref.browser.homepage.disable_button.restore_default
*security.disable_button.openCertManager
*security.disable_button.openDeviceManager
*app.update.disable_button.showUpdateHistory
*pref.privacy.disable_button.cookie_exceptions
*pref.privacy.disable_button.view_cookies
*pref.privacy.disable_button.view_passwords
*pref.privacy.disable_button.view_passwords_exceptions
*pref.downloads.disable_button.edit_actions
== Централизованное управление ==
Файлом AutoConfig можно управлять централизованно. Для этого необходимо указать расположение дополнительного файла AutoConfig в основном файле AutoConfig:
pref("autoadmin.global_config_url","https://yourdomain<!-- -->.com/autoconfigfile.js");
URL-адресом может быть любой протокол, поддерживаемый Firefox, включая протокол <code>file:</code>, указывающий на файл на сетевом диске. Формат удаленного файла AutoConfig такой же, как и у файла AutoConfig на клиенте, за исключением того, что первая строка не игнорируется.
Существуют и другие параметры, которые управляют различными аспектами AutoConfig. Параметр {pref autoadmin.refresh_interval} позволяет обновлять AutoConfig с заданным интервалом, указанным в минутах. Существуют также настройки, связанные с управлением автономным режимом, включая {pref autoadmin.offline_failover} и {pref autoadmin.failover_to_cached}.
Каждый раз при получении AutoConfig-файла с удалённого ресурса в папке профиля пользователя создаётся его резервная копия с именем <code>failover.jsc</code>. Если параметр {pref autoadmin.failover_to_cached} установлен в значение {pref false}, Firefox считывает закэшированный файл и отмечает браузер как работающий оффлайн и блокирует параметр, так что пользователь не может перейти в онлайн. Если этот параметр установлен в {pref true}, он просто использует закэшированный файл и продолжает. Параметр {pref autoadmin.offline_failover} контролирует, используется ли закэшированный файл, когда пользователь в оффлайне. Если он установлен в {pref true}, используется закэшированный файл.
== Параметры, относящиеся к конкретному пользователю ==
Если в файл AutoConfig необходимо включить информацию, относящуюся к конкретному пользователю, следует установить следующий параметр:
pref("autoadmin.append_emailaddr", true);
При этом к запросу будут добавлены вопросительный знак (?) и адрес электронной почты.
Поскольку Firefox не использует адреса электронной почты, необходимо задать параметр {pref mail.identity.useremail}. Если он не задан, Firefox отобразит запрос на ввод адреса электронной почты. Поскольку файл автонастройки является файлом JavaScript, это предпочтение можно задать перед установкой {pref autoadmin.global_config_url}. Например:
var user = getenv("USER");
lockPref("mail.identity.useremail", user);
lockPref("autoadmin.global_config_url","https://yourdomain<!-- -->.com/autoconfigfile.js");