Skip to content

Instantly share code, notes, and snippets.

@kevinkarwaski
Last active September 13, 2023 21:34
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save kevinkarwaski/94bfb1e83ee20cf80c13 to your computer and use it in GitHub Desktop.
Save kevinkarwaski/94bfb1e83ee20cf80c13 to your computer and use it in GitHub Desktop.
Install Brew and set up for Standard OSX User
#!/usr/bin/env bash
# This script installs brew and chowns the right directories needed to run
# brew as a standard user. Your user should be the owner of /usr/local which
# gets set during the installation of brew. The global homebrew cache directory
# group should be set to 'staff' which is not set during a brew install. This
# script fixes that.
# To begin, you MUST execute this script with your user account while it has
# admin privileges. Once the script completes, you can change your
# user to a "standard" OSX user and retain use of brew without being an admin.
# The user executing the script.
username=`id -u -n`
# Install latest stable version of brew.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Update group ownership of global brew cache.
echo "Changing group ownership of /Library/Caches/Homebrew to staff..."
sudo chgrp staff /Library/Caches/Homebrew
sudo chown -Rv $username /usr/local
# Remove admin rights from current user. This is how you could make this
# change from the cli.
# sudo dseditgroup -o edit -d $USER -t user admin
# Tell user to remove admin rights and restart.
echo "Congrats! Brew is properly set up for a Standard OSX user. You can remove admin rights from your user account and restart."
@sscovil
Copy link

sscovil commented Nov 23, 2015

I had to use the -Rv flag to chown the /usr/local directory recursively, otherwise my standard user could not create directories.

@kevinkarwaski
Copy link
Author

@sscovil good catch, thanks man.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment