chown: /usr/local: Operation not permitted

25,126

Solution 1

Try disabling System Integrity Protection.

Solution 2

I was getting this when trying to update brew so the easier way that worked for me:

sudo chown -R $(whoami) $(brew --prefix)/*

Solution 3

The solution to this problem is simple copy the usr/local pathv then paste it in the dialog box which appears after pressing command+shift+g after your usr folder items simply press command+i and the window which supports will be an info window now scroll to the bottom of the window and check the read and write permisson and if you don't see your username there then add your username/admin account by pressing the add icon

Share:
25,126

Related videos on Youtube

Mona Jalal
Author by

Mona Jalal

contact me at [email protected] I am a 5th-year computer science Ph.D. Candidate at Boston University advised by Professor Vijaya Kolachalama in computer vision as the area of study. Currently, I am working on my proposal exam and thesis on the use of efficient computer vision and deep learning for cancer detection in H&E stained digital pathology images.

Updated on September 18, 2022

Comments

  • Mona Jalal
    Mona Jalal over 1 year

    How should I fix this?

    Tue Oct 31 21:52:56 mona@dhcp-wifi-8021x-155-41-82-88:~$ brew update && brew upgrade && brew cleanup
    Error: /usr/local is not writable. You should change the
    ownership and permissions of /usr/local back to your
    user account:
      sudo chown -R $(whoami) /usr/local
    Wed Nov 01 20:41:30 mona@dhcp-wifi-8021x-155-41-82-88:~$ sudo chown -R $(whoami) /usr/local
    Password:
    chown: /usr/local: Operation not permitted
    

    sys info:

    Wed Nov 01 20:42:36 mona@dhcp-wifi-8021x-155-41-82-88:~$ uname -a
    Darwin dhcp-wifi-8021x-155-41-53-197.bu.edu 17.0.0 Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64
    

    and

    Wed Nov 01 20:44:03 mona@dhcp-wifi-8021x-155-41-82-88:~$ brew config
    HOMEBREW_VERSION: >1.2.0 (shallow or no git repository)
    ORIGIN: https://github.com/Homebrew/brew.git
    HEAD: 38209aadbfe4fd0c6772467c4bc5c63325d53f6c
    Last commit: 1 year, 3 months ago
    Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
    Core tap HEAD: 839ca7b9b4ce034b5abdb66cee0ef75bbb675ddf
    Core tap last commit: 1 year, 3 months ago
    HOMEBREW_PREFIX: /usr/local
    HOMEBREW_REPOSITORY: /usr/local
    HOMEBREW_CELLAR: /usr/local/Cellar
    HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
    CPU: quad-core 64-bit haswell
    Homebrew Ruby: 2.3.3 => /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby
    GCC-4.2: build 5666
    Clang: 8.0 build 800
    Git: 2.9.2 => /usr/local/bin/git
    Perl: /usr/bin/perl
    Python: /Users/mona/anaconda/bin/python => /Users/mona/anaconda/bin/python3.6
    Ruby: /Users/mona/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
    Java: 1.8.0_71, 1.7.0_60
    macOS: 10.13-x86_64
    Xcode: 8.0
    CLT: 9.0.1.0.1.1506734476
    X11: 2.7.11 => /opt/X11
    Wed Nov 01 20:44:25 mona@dhcp-wifi-8021x-155-41-82-88:~$ brew doctor
    Please note that these warnings are just used to help the Homebrew maintainers
    with debugging if you file an issue. If everything you use Homebrew for is
    working fine: please don't worry and just ignore them. Thanks!
    
    Warning: /usr/local is not writable.
    
    You should change the ownership and permissions of /usr/local
    back to your user account.
      sudo chown -R $(whoami) /usr/local
    
    Warning: Anaconda is known to frequently break Homebrew builds, including Vim and
    MacVim, due to bundling many duplicates of system and Homebrew-available
    tools.
    
    If you encounter a build failure please temporarily remove Anaconda
    from your $PATH and attempt the build again prior to reporting the
    failure to us. Thanks!
    
    Warning: python is symlinked to python3
    This will confuse build scripts and in general lead to subtle breakage.
    
    Warning: "config" scripts exist outside your system or Homebrew directories.
    `./configure` scripts often look for *-config scripts to determine if
    software packages are installed, and what additional flags to use when
    compiling and linking.
    
  • Barney Szabolcs
    Barney Szabolcs over 6 years
    Unfortunately in High Sierra it says: operation can't be completed because you don't have the necessary permission.
  • Gudlaugur Egilsson
    Gudlaugur Egilsson over 6 years
    What Barnabas said.
  • Sayan
    Sayan over 6 years
    @BarnabasSzabolcs To solve the operation not permitted issue boot into recovery mode and in a shell window/terminal window which you can access from the utilities option from the menu bar once you are inside the recovery mode screen, now in the terminal window type in this command csrutil disable (there will be a space after csrutil) what this does is that it disables System Integrity Protection which is giving you the operation error after disabling SIP try to do what I have told you to do in my answer!
  • Barney Szabolcs
    Barney Szabolcs over 6 years
    wow, that sounds like you had to dig deep into this thing... Thanks @Sayan!
  • matt
    matt almost 6 years
    @Sayan you should give disabling SIP as your answer. That was what helped me.
  • Mikrasya
    Mikrasya almost 6 years
    Did not work for me. Owner of /usr/local/* are changed, but update brew still fails.
  • 2540625
    2540625 over 5 years
    Could you provide a little more context as to what this does exactly, please?
  • 2540625
    2540625 over 5 years
    Disabling SIP indeed worked on my Mojave machine.
  • Swami PR
    Swami PR over 4 years
    brew --prefix is the same as /usr/local but the difference from the above answer is that this updates the ownership of the children of /usr/local than /usr/local itself and this worked for me as opposed to changing the ownership of /usr/local itself
  • Turists
    Turists over 4 years
    @SwamiPR Can you tell me what you did that was different from this answer? I had the same experience as you, but don't know how to fix.