Есть ли способ для администраторов отключить пользователей от установки расширений Firefox?

13

Есть ли способ отключить установку расширений Firefox пользователями без прав администратора?

Виктор Родригес
источник

Ответы:

12

Вроде. Вы можете применить настройки блокировки с помощью mozilla.cfg. Это, однако, не позволит всем пользователям использовать заблокированные функции. Администраторы, конечно, могут по своему желанию менять / загружать конфигурационный файл.

Вот список настроек, которые мы используем через блокировку. Это среда К-12, поэтому ваши потребности, скорее всего, будут разными.

//
lockPref("app.update.auto", false);
lockPref("app.update.enabled", false);
lockPref("app.update.silent", true);
lockPref("browser.cache.disk.capacity", 1000);
lockPref("browser.download.useDownloadDir", false);
lockPref("browser.rights.3.shown", true);
lockPref("browser.search.update", false);
lockPref("browser.shell.checkDefaultBrowser", false);
lockPref("extensions.update.enabled", false);
lockPref("plugin.default_plugin_disabled", false);
lockPref("plugin.scan.plid.all", true);
lockPref("plugins.hide_infobar_for_missing_plugin", true);
lockPref("profile.allow_automigration", false);
lockPref("signon.prefillForms", false);
lockPref("signon.rememberSignons", false);
lockPref("startup.homepage_override_url", "");
lockPref("startup.homepage_welcome_url", ""); 
lockPref("xpinstall.enabled", false);
lockPref("xpinstall.whitelist.required", true);

Также смотрите настройки заблокированного конфига на официальных документах Mozilla.org.

jscott
источник
6

Это вариант, составленный из полезных сведений @ MDN , MozillaZine , PCC-Services , Mike's Musings.

Чтобы заблокировать / предотвратить расширения (включите это в файл блокировки (политики) ):

lockPref("xpinstall.enabled", false);
lockPref("extensions.enabledScopes", 0);   // Or 4 or 8 for approved extensions

Components.utils.import("resource://gre/modules/FileUtils.jsm");
var profExtDir = FileUtils.getDir("ProfD", ["extensions"], false, false);
if ( profExtDir.exists() )
Tech_a_break;             // here anything undefined would suffice

Двойная косая черта (//) вне кода обозначает комментарии.

lockPref()определяет политику, т.е. обязательную - пользователи не могут изменять, тогда как defaultPref()или pref()указывает предпочтение, т.е. не обязательную - пользователи могут изменять первоначально установленное значение.

Установка xpinstall.enabledв ложных отключает все установки через (работает) Firefox, то есть установки с веб - сайтов, Инструменты> Дополнения> [Get Дополнения | Панель поиска | значок шестеренки], Файл> Открыть файл и перетащите курсор. Форматы установщика: .xpi и .jar.

Установка extensions.enabledScopesв 0 отключает все (кроме пользователя (профиль) папки (Scope 1) , и администратора папки ) в автономном режиме / ручное открытие (один раз на каждом Firefox при запуске) местах.

Гибридное местоположение Scope 1 (пользователь) (папка расширений профиля пользователя) является единственным хранилищем первого метода установки и устарело, установив для xpinstall.enabled значение false, но не ограничено (extensions.enabledScopes) как обнаруженное местоположение. (второй способ установки). Второй блок кода выше выдает ошибку всякий раз, когда появляется это местоположение, и Firefox завершает работу.

about: config , about: config Записи , расширение описаний конфигурации , установка расширений , специальные места


Утвержденные расширения

Чтобы включить утвержденные расширения через Firefox install_directory \ browser \ extensions , установите extensions.enabledScopesзначение 4 и добавьтеlockPref("extensions.autoDisableScopes", 11);

В качестве альтернативы (в Windows), чтобы позволить одобрили расширение через окно реестр HKLM , установленное extensions.enabledScopesна 8 , и extensions.autoDisableScopesдо 7 . Эквивалентом в GNU / Linux является / usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}

Чтобы включить оба местоположения, используйте 12 и 3 соответственно.

Также возможно lockPref()или defaultPref()настройки тех расширений, которые интегрируют их конфигурацию в about: config; обычно определенные ключи в about: config включают имя расширения или часть имени или em: id .


Внутреннее хранилище, Централизованные расширения ( например, FoxyProxy ):

Загрузите и разархивируйте FoxyProxy в подпапку верхнего уровня сетевого ресурса (например, сетевой ресурс FxExts и подпапку foxyproxy ). Затем переименуйте подпапку foxyproxy, указав значение между тегами em: id в разархивированном файле install.rdf - foxyproxy переименовывается в foxyproxy@eric.h.jung .

Затем в текстовом файле введите путь в первой строке, т.е. \\ server \ FxExts \ foxyproxy@eric.h.jung , а также переименуйте текстовый файл (включая расширение .txt) со значением em: id - New Текстовый Document.txt переименован в foxyproxy@eric.h.jung .

Эти текстовые файлы могут быть распространены на существующие каталоги установки Firefox \ browser \ extensions или включены в ядро установщика Firefox \ browser \ extensions .

  • При каждом запуске Firefox просматривает текстовые файлы и удаляет (под учетными записями администратора) любые сообщения об ошибках или если общий ресурс недоступен в данный момент. Чтобы предотвратить это после тестирования, используйте групповую политику для [установить запретить удаление разрешений для папок расширений и / или автономного кэширования общего ресурса ( FxExts )].

Альтернативно или дополнительно через реестр HKLM: имя foxyproxy@eric.h.jung и Data \\ server \ FxExts \ foxyproxy@eric.h.jung

В одном или обоих случаях (области 4 и 8):

  • Чтобы отключить расширение, переименуйте целевое расширение в install.rdf , например в disabled.rdf.

  • Чтобы обновить расширение, удалите содержимое его подпапки и распакуйте новый XPI. Обычно уникальный em: id будет таким же.

Если extensions.autoDisableScopesустановлено значение 15 , пользователи смогут искать и активировать предпочтительные расширения с помощью Сервис (Alt + T)> Дополнения: Панель поиска. В качестве альтернативы можно включить одно местоположение для автоматически активируемых расширений, которое оставит другое для пользовательских (вручную) расширений.


Фильтрация политик (выборочно применять настройки в файле блокировки):

В Windows Запретить на Чтение данных разрешение на местных-settings.js для пользователей / групп , которые будут освобождены. В системах GNU / Linux одним из вариантов было бы установить базовые разрешения local-settings.js равными 0600 (с корневым именем - ug), добавить всех пользователей в группу (например, fxgrp), оставив пользователей, которые будут освобождены, а потомsetfacl -m g:fxgrp:r local-settings.js

Обратите внимание, что использование переменных среды ОС небезопасно, поскольку его можно обойти, если не будут приняты дополнительные меры за пределами файла блокировки (политики).


Разное: Панель команд консоли браузера можно отключить с помощью правила CSS в таблице стилей, например. .jsterm-input-container {display:none;}Чтобы централизовать эту таблицу стилей с помощью файла блокировки (политики):

var css = Components.classes["@mozilla.org/content/style-sheet-service;1"]
.getService(Components.interfaces.nsIStyleSheetService);

var ioSvc = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI("file://///server/share/Fx.css", null, null);
css.loadAndRegisterSheet(ioSvc, 1);

Fx.css (таблица стилей) также загружается в безопасном режиме Firefox и может указывать как правила chrome (Firefox UI), так и правила содержимого ( внутренние страницы , веб-страницы). Для монтирования NFS, SMB или локальной файловой системы используйтеfile:///

[ userChrome и userContent ] .css имеют наивысший приоритет, поэтому было бы неплохо проверить и папку chrome , напримерvar profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )

Chrome имен элементов и идентификаторы , Chrome URL - адреса , работа с хромированными URL - адресами

Другие инструменты и GCLI можно отключить по мере необходимости через файл блокировки (политики) - фильтр для devtools*enabledabout: config.

Для получения подробной информации о nsInterfaces в Components.interfaces. * См. Интерфейсы XPCOM .

PS: Чтобы надежно фиксировать ошибки и условия в файле .cfg некоторых выпусков Firefox, может потребоваться поместить все содержимое блокировки (политики) в блок try, например, при try { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); }желании также включить Services.prompt.alert(null, "Firefox", "Failed to start. Please inform the IT dept.");в блок catch (e) {}.

XPConnect , интерфейсы XPCOM , JSCM , omni.ja , JS reference , быстрый JS , JS

VWil
источник
6

Запретить пользователям установку дополнений труднее в более поздних версиях Firefox. Firefox не учитывает предпочтение xpinstall.enabled в некоторых версиях. (Изменить: см. Комментарий ниже: они уважают это предпочтение с версии 31)

Подробную информацию о том, как изменить Firefox для предотвращения отображения диспетчера надстроек и как пользователи не могут устанавливать надстройки, можно найти в этой статье .

Инструкции не для слабонервных, но они работают; У меня есть 700 машин, заблокированных в среде К-8, используя эти указания.

Дополнительную информацию о блокировке настроек браузера смотрите в этой статье .

Тим Дирборн
источник
Отличный ответ. Наш район надеется избавиться от Firefox из-за этих трудностей с настройкой. Поскольку Google начинает предлагать свои собственные объекты групповой политики , Chrome, вероятно, станет альтернативой IE на всех машинах.
Jscott
1
Firefox действительно соблюдает «xpinstall.enabled» начиная с Firefox 31.
Джастин Скилес