187

Every time I run this command rails server:

warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777

I searched for a solution here and they said to type: chmod go-w /usr/local/bin

But I get this error:

chmod: Unable to change file mode on /usr/local/bin: Operation not permitted

I am using OS X by the way.

Ujitha Perera
  • 25
  • 1
  • 7
Xandman
  • 1,933
  • 2
  • 13
  • 8
  • 7
    I had the same problem just after installing the software for a T-Mobile broadband USB dongle and was wondering whether it was responsible for doing it. Are you by any chance also using a dongle? – Peter Nixey Jun 22 '11 at 12:06
  • 5
    Yes I got it after installing a Virgin (Australia) mobile USB dongle – nocache May 10 '13 at 08:24
  • 3
    OMG, really? Thanks for this information! I have also noticed that after I try to run T-Mobile dongle software it f* my permissions. – Oto Brglez Oct 03 '13 at 10:25
  • I am using an LTE dongle by AU (japanese carrier) which also requires some command line wizardry to get to work... – Nicolas Miari Sep 02 '15 at 01:08

13 Answers13

304

You will need to have root access to do this. If you aren't already the administrative user, login as the administrator. Then use 'sudo' to change the permissions:

sudo chmod go-w /usr/local/bin

Obviously, that will mean you can no longer install material in /usr/local/bin except via 'sudo', but you probably shouldn't be doing that anyway.

Jonathan Leffler
  • 730,956
  • 141
  • 904
  • 1,278
  • if I type the command above, I get: sudo: /etc/sudoers is mode 0644, should be 0440 Segmentation fault – Xandman Oct 17 '10 at 12:50
  • @Xandman: I don't know what is up with the segmentation fault; programs should not do that (especially not security related ones like sudo). Clearly, someone has been tampering with file permissions on your system - I recommend reading them the riot act. In the mean time, you're probably faced with a chicken and egg situation; you can't use 'sudo' until you fix the permissions on /etc/sudoers, and you can't fix the permissions on /etc/sudoers without using 'sudo'. I'm not sure what the best fix is... – Jonathan Leffler Oct 17 '10 at 17:23
  • 1
    I guess I should hang myself then. Been tinkering with my MAC since I switched from windows. Tried to make this a windows laptop. I probably did something stupid – Xandman Oct 17 '10 at 17:35
  • 1
    Thanks for the comment Jonathan, you gave me an idea to check the permissions. I repaired the permissions with Disk Utility and when I ran the command: sudo chmod go-w /usr/local/bin it won't through. – Xandman Oct 17 '10 at 17:53
  • @Xandman: No need for the hanging until you've proven yourself to be a repeat offender. You say "it won't go through" - in what way is it not working? With 'sudo', you provide your own password (with 'su', you provide the password of the target user - root, typically). To sort some of this out, you may need to enable the root login (System Preferences as an administrator, IIRC), and go fix permissions as root. That does assume you now know enough not to hang yourself accidentally. Or it might be better to redo the installation from scratch; it depends how much you modified the permissions. – Jonathan Leffler Oct 17 '10 at 18:07
  • I tried this, but when I do `thin start` it is still giving me that message. Did I miss something? Btw, the `chmod` command seems to have been run successfully. I even entered my admin pw when prompted and it went through. What am I missing ? Do I need to restart my computer ? I stopped and restarted the server. – marcamillion May 29 '11 at 02:38
  • @marcamillion: it is hard to say what might be going wrong on your machine. You should look at the permissions on `/usr/local/bin`, of course, and maybe at the ACL values, if there are any. – Jonathan Leffler May 29 '11 at 03:26
  • sh-3.2# chmod go-w /usr/local/bin sh-3.2# brew install opencv /usr/local/Library/Homebrew/global.rb:64: warning: Insecure world writable dir /opt/local in PATH, mode 040777 /usr/local/bin/brew:74: warning: Insecure world writable dir /opt/local in PATH, mode 040777 don't work for me – Jayyrus Mar 15 '12 at 23:39
  • @JackTurky: From what I can see, the warning is about `/opt/local`; if that's the case, changing the mode of `/usr/local/bin` won't help you. – Jonathan Leffler Mar 15 '12 at 23:45
  • I started getting the same warning after installing a piece of software that came with a wireless broadband dongle. Thanks for this post/answers. – Shyam Habarakada May 30 '12 at 18:47
65

I had the same error here MacOSX 10.6.8 - it seems ruby checks to see if any directory (including the parents) in the path are world writable. In my case there wasn't a /usr/local/bin present as nothing had created it.

so I had to do

sudo chmod 775 /usr/local

to get rid of the warning.

A question here is does any non root:wheel process in MacOS need to create anything in /usr/local ?

Victor Bjelkholm
  • 2,177
  • 9
  • 28
  • 50
peterk
  • 5,136
  • 6
  • 33
  • 47
  • 11
    Yeah, `775 => root(7) group(7) others(5), 7 => read(4) + write(2) + execute(1), and 5 => read(4) + execute(1)` – crizCraig Sep 07 '14 at 18:58
11

Try: sudo chmod go-w /usr/local/bin

The /usr/local/bin directory is owned by the root (i.e. administrator) account, so even if you can write to it, you can't change the permissions on it. The sudo command means "run the following command as root", and works a lot like clicking that lock icon in the System Preferences dialogs.

Jander
  • 5,359
  • 1
  • 22
  • 21
7

I have had the same issue in OSX. It can be fixed by running Disk Utilities to Repair Permissions. I agree with Peter Nixey: in my case it is caused when my 3G dongle installs or reinstalls its driver. Repairing Permissions afterward fixes the issue.

Larry Hynes
  • 71
  • 1
  • 1
7

Am using Mountain Lion. What I did was Look for /usr/local and Get Info. On it there is Sharing and Permissions. Make sure that its only the user and Admin are the only ones who have read and write permissions. Anyone else should have read access only. That sorted my problem.

Its normally helpful is your Run disk utilities and repair permissions too.

Muendo
  • 71
  • 1
  • 2
4

Same here, apparently my /usr/local folder was world writable so I made it 755

# chmod 755 /usr/local

It also appeared that a Hauwei mobile dongle I had used had installed world writeable directories in /usr/local as well

Mister P
  • 1,253
  • 1
  • 11
  • 9
4

You need to run

sudo chmod o-w -R /usr/local 
Jai Chauhan
  • 4,035
  • 3
  • 36
  • 62
3

If you're running OSX and getting this often, another good thing to consider is to use a built-in OSX permissions fixing tool. If you didn't change the mode of your directories, something else did and there's a chance that other directories have overgenerous permissions as well - this tool will reset them back all to factory defaults, which is a good security idea. There's a great guide on the Apple stackextange about this very process.

Community
  • 1
  • 1
Kyle Hotchkiss
  • 10,754
  • 20
  • 56
  • 82
3

in macOS run the following command in terminal

sudo chmod -R o-w /usr/local/bin
user311086
  • 920
  • 2
  • 16
  • 29
  • 1
    After struggling a lot of time simply this cmd is worked for me. Thank you... For the above error simply this cmd is more than enough for M1 chip MacBook Pro. – Naresh Jan 20 '23 at 07:03
2

Even I came across similar problem. I use KDE on ubuntu 12 and while playing around in my home folder I had accidently changed permissions for Group and Others as "can view and modify content" by right clicking in my home folder and then properties and forgot all about it.

My warning was:

warning: Insecure world writable dir /home/my_home_folder in PATH, mode 040777

So in my case it was the home folder. I did undid the modifications of permissions and I stopped getting those warnings when running the rails server or rake tasks to run my tests.

arkiver
  • 465
  • 1
  • 5
  • 11
1

This should resolve your problem: chmod go-w {/path/of/user}

aphexlog
  • 1,503
  • 3
  • 16
  • 43
1

I'm also having the exact same problem with both /usr/local/bin and /etc/sudoers on OSX Snow lepard.Even when i logged in as admin and tried to change the permissions via the terminal, it still says "Operation not permitted". And i did the following to get the permission of these folders.

From the terminal, I accessed /etc/sudoers file and using pico editor i added the following code: username ALL=(ALL) ALL Replace "username" with your MAC OS account name

Sayanee
  • 4,957
  • 4
  • 29
  • 35
0

I had the same error here MacOSX 10.11 - it seems ruby checks to see if any directory (including the parents) in the path are world writable. In my case there wasn't a /usr/local/bin present as nothing had created it.

Run this command in your terminal. Try this

sudo chmod 775 /usr/local

After this if you have any password on your mac , then you have to enter the password . Now this issue will be fix.

hakki
  • 6,181
  • 6
  • 62
  • 106
Mandeep Singh
  • 2,810
  • 1
  • 19
  • 31