Skip to main content
Question

Setting Browser Homepages via script?


Forum|alt.badge.img+11

Good morning,
I've been beating my head against the wall trying to find a solution to this, so I'm hoping that the Jamfnation "hive mind" might have a solution: I need to set the homepage for Firefox, Chrome and Safari via a script (or some way that can be deployed post-image.)

Here's the situation: After we image our student laptops with DeployStudio (yes, I know, imaging is dead...but that's what we have right now,) DeployStudio appears to "sanitize" the image, which causes us to lose the homepages we set on the "master," from which the image was created. We'd like to set the homepages so that new students get familiar with our "logins" page, which is where they'll start when accessing our online resources. We don't necessarily want to "lock" the homepages, just to initially set them - and doing so via a script (or a package/payload-free package) that can be run during post-image in DeployStudio would be ideal.

What seems like a simple task has proven fairly difficult to accomplish. I've found many old ways of doing it that no longer work, or ways that set the homepage but then prevent it from being changed. If anyone out there has any insight into what might work, I would love to hear it.

12 replies

Forum|alt.badge.img+18
  • Valued Contributor
  • 1811 replies
  • June 12, 2018

Each of the browsers are different unfortunately.

Chrome can be managed via a custom config profile, Safari used to be able to, although some people have said it isn't working any longer, and firefox needs a custom setting added to the app bundle with CCK2.

Here's some useful guides / links:


Forum|alt.badge.img+7
  • Contributor
  • 98 replies
  • June 12, 2018

For Safari

! /bin/bash

Get the UUID of the Mac system

if [[ ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-50 == "00000000-0000-1000-8000-" ]]; then MAC_UUID=ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c51-62 | awk {'print tolower()'}
elif [[ ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-50 != "00000000-0000-1000-8000-" ]]; then MAC_UUID=ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62
fi

Kill open browsers

sudo killall -z -m "Safari" -signal

Get the list of local Users

localUsers=$( dscl . list /Users UniqueID | awk '$2 >= 501 {print $1}' | grep -v admin )

User Template

defaults write /System/Library/User Template/English.lproj/Library/Preferences/com.apple.Safari.plist HomePage https://apolloedu.sharepoint.com/sites/PhoenixView/

Delete keychain entry locking Safari HomePage

echo "$localUsers" | while read userName; do
mv /Users/$userName/Library/Keychains/$MAC_UUID/keychain-2.db /Users/$userName/Library/Keychains/$MAC_UUID/keychain-2.dbBKUP 2> /dev/null
defaults write /Users/$userName/Library/Preferences/com.apple.Safari.plist HomePage https://apolloedu.sharepoint.com/sites/PhoenixView/
defaults write /Users/$userName/Library/Safari/LastSession.plist TabURL https://apolloedu.sharepoint.com/sites/PhoenixView/
chown $userName /Users/$userName/Library/Preferences/com.apple.Safari.plist
sleep 3
mv /Users/$userName/Library/Safari/LastSession.plist /Users/$userName/Library/Safari/LastSession.plistBKUP
chmod 644 /Users/$userName/Library/Safari/LastSession.plistBKUP
chown -R $userName:"APOLLOGROUPDomain Users" /Users/$userName/Library/Safari/LastSession.plistBKUP

done

For Firefox

! /bin/bash

Kill open browsers

sudo killall Firefox.app

Get the list of local Users

localUsers=$( dscl . list /Users UniqueID | awk '$2 >= 501 {print $1}' | grep -v admin )

ffold=(http://arc.apollogrp.edu)
ffnew=(https://apolloedu.sharepoint.com/sites/PhoenixView)

User Template

sed -i .bak 's|'$ffold'|'$ffnew'|g' /usr/local/storage/Firefox/Profiles/lsbasfxf.default/prefs.js
sed -i .bak 's|'$ffold'|'$ffnew'|g' /System/Library/User Template/English.lproj/Library/Application Support/Firefox/Profiles/lsbasfxf.default/prefs.js

Existing Users

echo "$localUsers" | while read userName; do
sed -i .bak 's|'$ffold'|'$ffnew'|g' /Users/$userName/Library/Application Support/Firefox/Profiles/lsbasfxf.default/prefs.js

done

For Chrome

! /bin/bash

Kill open browsers

sudo killall -z -m "Google Chrome"

Get the list of local Users

localUsers=$( dscl . list /Users UniqueID | awk '$2 >= 501 {print $1}' | grep -v admin )

ffold=(http://arc.apollogrp.edu)
ffnew=(https://apolloedu.sharepoint.com/sites/PhoenixView)

User Template

defaults write /System/Library/User Template/English.lproj/Library/Preferences/com.google.Chrome.plist HomepageLocation -string https://apolloedu.sharepoint.com/sites/PhoenixView/
defaults write /System/Library/User Template/English.lproj/Library/Preferences/com.google.Chrome.plist RestoreOnStartupURLs -array https://apolloedu.sharepoint.com/sites/PhoenixView/
sed -i .bak 's|'$ffold'|'$ffnew'|g' /System/Library/User Template/English.lproj/Library/Application Support/Google/Chrome/Default/Preferences

Existing Users

echo "$localUsers" | while read userName; do
sed -i .bak 's|'$ffold'|'$ffnew'|g' /Users/$userName/Library/Application Support/Google/Chrome/Default/Preferences
defaults write /Users/$userName/Library/Preferences/com.google.Chrome.plist HomepageLocation -string https://apolloedu.sharepoint.com/sites/PhoenixView/
defaults write /Users/$userName/Library/Preferences/com.google.Chrome.plist RestoreOnStartupURLs -array https://apolloedu.sharepoint.com/sites/PhoenixView/
chmod 755 /Users/$userName/Library/Preferences/com.google.Chrome.plist
chmod 755 /Users/$userName/Library/Preferences/com.google.Keystone.Agent.plist
sleep 2
chown $userName:wheel /Users/$userName/Library/Preferences/com.google.Chrome.plist
chown $userName:wheel /Users/$userName/Library/Preferences/com.google.Keystone.Agent.plist

Remove HonePage MCX setting

dscl . -mcxdelete /Computers/localhost com.google.Chrome
mcxrefresh -n $userName
done


Forum|alt.badge.img+11
  • Author
  • Contributor
  • 30 replies
  • June 14, 2018

Thank you for your responses! I'm hoping to try these later today - I apologize for the delay in responding - got pulled into a different project temporarily.


Forum|alt.badge.img+3
  • New Contributor
  • 9 replies
  • August 26, 2018

@jkarpenske did you get a chance to try this if so what were your results? I tried to run parts of the script manually before setting a script in jamf and didn't have success setting the homepage.


Forum|alt.badge.img+7

The jamf Binary also has a Build in Option to set the Homepage for Safari and Firefox

Usage:   jamf setHomePage -homepage <homepage> [-feu] [-fut] [-username <username>]
             [-removeDownloadLocation] [-skipIE] [-skipFirefox] [-skipMozilla] [-skipSafari]


         -homepage       The URL for the homepage

         -feu            Set the homepage for existing users

         -fut            Set the homepage in the User Templates

         -username       Set the homepage only for this user

         -ffmstone       Specify the milestone version for FireFox

         -mozmstone          Specify the milestone version for Mozilla (Netscape)

         -removeDownloadLocation Remove the default download location

         -skipIE         Do not set the homepage for Internet Explorer

         -skipFirefox        Do not set the homepage for Firefox

         -skipMozilla        Do not set the homepage for Mozilla based browsers (Netscape)

         -skipSafari         Do not set the homepage for Safari

Forum|alt.badge.img+3
  • New Contributor
  • 9 replies
  • August 27, 2018

@claudiogardini That was one of the first things I tried. This did not work for Safari but did work for Firefox and doesn't help for Chrome. For reference we are on MacOS 10.13, Safari 11.0.2, FF 61.0.2, and Chrome 68.

Edit: Managed to get Chrome working via notes https://www.jamf.com/jamf-nation/discussions/23233/google-chrome-homepage


Forum|alt.badge.img+16
  • Honored Contributor
  • 1054 replies
  • August 27, 2018

On of my philosophies is when Jamf feature is broken.. I like to think why? And since "jamf setHomePage -homepage" has worked on again off again for years and years (over 8 years). A few years back I decided that it was Apple didn't want anybody changing Safari home page...that empower me to "convince" my "management" that if Apple doesn't want it then we really shouldn't be doing it ... and then in that same discussion I asked why? It came down to none of the macOS user were hitting the home page so the "stats looked bad" Then I pointed out that the macOS stats were the true users stats of the our home page... that ended the discussion and topic...

C

PS IF you have a web page that the user really need to visit and it's a complicate URL you can alway use self service too!!!


Forum|alt.badge.img+3
  • New Contributor
  • 1 reply
  • September 11, 2018

Has anyone tested @Cornoir scripts yet, I have been looking for anything to making this a little more stream lined and have looking at most of the relevant post pertaining to this. I have also tried jamf setHomePage for Firefox 62.0, Safari 11.1.2, Chrome 69.0


Forum|alt.badge.img+16
  • Honored Contributor
  • 1054 replies
  • September 12, 2018

Not sure this will help but it's the last "trick" I had working before I gave up..

https://managingosx.wordpress.com/2015/02/02/command-line-tools-via-python-and-cocoa/

C


Forum|alt.badge.img+2
  • New Contributor
  • 19 replies
  • April 17, 2019

@claudiogardini This was working for me today with macOS Mojave and Firefox 66.0!

sudo jamf setHomePage -homepage https://www.google.com -feu -fut -skipIE -skipSafari


Forum|alt.badge.img+8
  • Contributor
  • 30 replies
  • January 29, 2020

For Safari, check out my post here.


Forum|alt.badge.img+5
  • Contributor
  • 74 replies
  • December 7, 2020

Hi

Does anyone have working .plist for firefox homepage?

I got the safari and chrome to work , but no luck with firefox!

many thanks in advance!!!


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings