Apakah ada cara bagi administrator untuk menonaktifkan pengguna dari menginstal ekstensi Firefox?

13

Apakah ada cara untuk menonaktifkan instalasi ekstensi Firefox oleh pengguna non-admin?

Victor Rodrigues
sumber

Jawaban:

12

Semacam. Anda dapat menerapkan pengaturan penguncian dengan mozilla.cfg. Namun, ini akan mencegah semua pengguna menggunakan fitur terkunci. Administrator tentu saja dapat menukar masuk / keluar file konfigurasi sesuka hati.

Berikut daftar pengaturan yang kami gunakan melalui penguncian. Ini adalah lingkungan K-12, jadi kebutuhan Anda kemungkinan akan beragam.

//
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);

Lihat juga pengaturan konfigurasi yang dikunci pada dokumen resmi Mozilla.org.

jscott
sumber
6

Ini adalah variasi, yang disusun dari detail yang bermanfaat @ MDN , MozillaZine , PCC-Services , Mike Musings

Untuk memblokir / mencegah ekstensi (sertakan ini dalam file kunci (kebijakan) ):

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

Garis miring ganda (//) di luar kode menunjukkan komentar.

lockPref()menetapkan kebijakan yaitu wajib - pengguna tidak dapat memodifikasi, sedangkan defaultPref()atau pref()menentukan a preferensi yaitu tidak wajib - pengguna dapat memodifikasi nilai yang ditetapkan pada awalnya.

Pengaturan xpinstall.enableduntuk false menonaktifkan semua instalasi melalui (menjalankan) Firefox, yaitu instalasi dari situs web, Alat> Pengaya> [Dapatkan Pengaya | Bilah pencarian | ikon gir], File> Buka File, dan seret-n'-drop. Format penginstal adalah .xpi dan .jar.

Pengaturan extensions.enabledScopeske 0 menonaktifkan semua (kecuali pengguna (profil) folder (Cakupan 1) , dan folder admin ) offline / pencarian manual (sekali di setiap startup Firefox) lokasi.

The (pengguna) Lingkup 1 lokasi hybrid (folder 'ekstensi' profil pengguna) adalah satu-satunya penyimpanan metode instalasi pertama dan usang dengan menetapkan xpinstall. Diaktifkan ke false, tetapi tidak dicopot keluar (extensions.enabledScopes) sebagai lokasi yang ditemukan (metode instalasi kedua). Blok kode kedua di atas melempar kesalahan setiap kali lokasi ini muncul, dan Firefox keluar.

about: config , about: config Entries , Config Deskripsi ekstensi , Menginstal ekstensi , Lokasi khusus


Ekstensi yang disetujui

Untuk mengaktifkan ekstensi yang disetujui melalui Firefox install_directory \ browser \ extensions , atur extensions.enabledScopeske 4 , & tambahkanlockPref("extensions.autoDisableScopes", 11);

Atau (di Windows), untuk mengaktifkan ekstensi yang disetujui melalui HKLM registri Windows , atur extensions.enabledScopeske 8 , dan extensions.autoDisableScopeske 7 . Setara dengan GNU / Linux adalah / usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}

Untuk mengaktifkan kedua lokasi, gunakan masing-masing 12 , dan 3 .

Mungkin juga untuk lockPref()atau defaultPref()pengaturan ekstensi yang mengintegrasikan konfigurasi mereka di about: config; biasanya kunci tertentu di about: config akan menyertakan nama ekstensi atau bagian dari nama atau em: id .


Toko internal, ekstensi terpusat ( FoxyProxy sebagai contoh):

Unduh dan unzip FoxyProxy ke dalam subfolder tingkat atas dalam jaringan berbagi (mis. Jaringan berbagi FxExts , dan subfolder foxyproxy ). Selanjutnya, ganti nama subfolder foxyproxy dengan nilai antara tag em: id di file install.rdf yang tidak di- zip - foxyproxy diubah namanya menjadi [email protected] .

Selanjutnya, dalam file teks masukkan path di baris pertama, yaitu \\ server \ FxExts \ [email protected] , dan juga ganti nama file teks (termasuk ekstensi .txt) dengan em: id value - New Text Document.txt diganti namanya menjadi [email protected] .

File-file teks ini dapat didistribusikan ke Firefox install_directory \ browser \ ekstensi yang ada , atau termasuk dalam inti penginstal Firefox \ browser \ ekstensi .

  • Di setiap startup, Firefox menelusuri file teks, dan menghapus (di bawah akun admin) setiap kesalahan atau jika bagian itu tidak tersedia pada saat itu. Untuk mencegah hal ini setelah pengujian, gunakan kebijakan grup untuk [mengatur Tolak menghapus izin pada folder ekstensi , dan / atau cache offline berbagi ( FxExts )].

Sebagai alternatif atau tambahan melalui registry HKLM: Name [email protected] , dan Data \\ server \ FxExts \ [email protected]

Dalam salah satu atau kedua kasus (Cakupan 4 dan 8):

  • Untuk menonaktifkan ekstensi, ubah nama install.rdf ekstensi target menjadi, misalnya disabled.rdf.

  • Untuk memperbarui ekstensi, hapus konten dalam subfoldernya dan bukalah XPI yang baru. Biasanya em unik : id akan sama.

Jika extensions.autoDisableScopesdiatur ke 15 , pengguna akan dapat mencari, dan mengaktifkan ekstensi yang disukai melalui Alat (Alt + T)> Add-ons: Bilah pencarian. Atau, aktifkan satu lokasi untuk ekstensi yang diaktifkan otomatis yang akan meninggalkan yang lain untuk ekstensi yang diaktifkan pengguna (secara manual).


Pemfilteran kebijakan (menerapkan pengaturan secara selektif dalam file kunci):

Pada Windows, Deny yang Baca data izin pada lokal-settings.js bagi pengguna / kelompok untuk dibebaskan. Dalam sistem GNU / Linux satu opsi adalah mengatur izin dasar local-settings.js sebagai 0600 (dengan root menjadi ug), tambahkan semua pengguna ke grup (mis. Fxgrp) dengan mengabaikan pengguna yang akan dikecualikan, lalusetfacl -m g:fxgrp:r local-settings.js

Harap dicatat bahwa menggunakan variabel lingkungan OS tidak aman karena dapat dilewati, kecuali langkah-langkah tambahan di luar file kunci (kebijakan) diterapkan.


Lain-lain .: Bilah perintah Konsol Peramban dapat dinonaktifkan oleh aturan CSS dalam style sheet misalnya .jsterm-input-container {display:none;}untuk memusatkan style sheet ini melalui file kunci (kebijakan):

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 (style sheet) dimuat di Firefox Safe Mode juga, dan dapat menentukan aturan chrome (Firefox UI), dan konten ( halaman internal , halaman web). Untuk NFS, atau pemasangan SMB, atau sistem file lokal, gunakanfile:///

[ userChrome dan userContent ] .css memiliki prioritas tertinggi, jadi akan lebih baik untuk memeriksa folder chrome juga, misalnyavar profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )

Nama dan ID elemen Chrome , URL Chrome , Bekerja dengan URL chrome

Alat- alat lain , dan GCLI dapat dinonaktifkan sesuai kebutuhan melalui file kunci (kebijakan) - filter untuk devtools*enableddi about: config.

Untuk detail tentang nsInterfaces di Components.interfaces. * Silakan lihat antarmuka XPCOM .

PS: Untuk secara andal menangkap kesalahan dan ketentuan dalam file .cfg dari beberapa edisi Firefox, mungkin perlu memasukkan seluruh kunci (kebijakan) konten di dalam blok percobaan, mis. Secara try { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); }opsional juga termasuk Services.prompt.alert(null, "Firefox", "Failed to start. Please inform the IT dept.");dalam blok catch (e) {}.

XPConnect , XPCOM interface , JSCM , omni.ja , referensi JS , JS cepat , JS

vWil
sumber
6

Mencegah pengguna memasang addons lebih sulit di versi Firefox yang lebih baru. Firefox tidak menghormati preferensi xpinstall.enabled di beberapa versi. (Edit: lihat komentar di bawah: mereka menghargai preferensi ini pada versi 31)

Untuk artikel rinci tentang cara memodifikasi Firefox untuk mencegah Add-on Manager dari menampilkan dan bagaimana mencegah pengguna menginstal add-on, lihat artikel ini .

Instruksi bukan untuk orang yang lemah hati, tetapi mereka berhasil; Saya memiliki 700 mesin yang terkunci di lingkungan K-8 menggunakan petunjuk ini.

Untuk informasi lebih lanjut tentang mengunci pengaturan browser, lihat artikel ini .

Tim Dearborn
sumber
Jawaban tindak lanjut yang bagus. Distrik kami sedang mencari cara untuk menyingkirkan Firefox karena kesulitan konfigurasi yang tepat ini. Dengan Google mulai menawarkan GPO mereka sendiri , Chrome kemungkinan akan menjadi alternatif IE di semua mesin.
jscott
1
Firefox sebenarnya memang menghormati "xpinstall.enabled" pada Firefox 31.
Justin Skiles