предупреждение: небезопасный доступный для записи мир dir / usr / local / bin в PATH, режим 040777

172

Каждый раз, когда я запускаю эту команду rails server:

предупреждение: небезопасный доступный для записи мир dir / usr / local / bin в PATH, режим 040777

Я искал решение здесь, и они сказали, чтобы напечатать: chmod go-w /usr/local/bin

Но я получаю эту ошибку:

chmod: невозможно изменить режим файла в / usr / local / bin: операция не разрешена

Я использую OS X, кстати.

Xandman
источник
7
У меня была такая же проблема сразу после установки программного обеспечения для USB-ключа T-Mobile, и мне было интересно, отвечает ли он за это. Вы случайно не используете ключ?
Питер Никси
5
Да, я получил его после установки мобильного USB-ключа Virgin (Австралия)
nocache
3
О боже, правда? Спасибо за эту информацию! Я также заметил, что после того, как я попытаюсь запустить программное обеспечение защитного ключа T-Mobile, оно будет иметь * мои разрешения.
Ото Брглез
Я использую LTE-ключ от AU (японский перевозчик), который также требует некоторого волшебства командной строки, чтобы приступить к работе ...
Николас Миари

Ответы:

278

Для этого вам понадобится root-доступ. Если вы еще не являетесь администратором, войдите в систему как администратор. Затем используйте «sudo», чтобы изменить права доступа:

sudo chmod go-w /usr/local/bin

Очевидно, это будет означать, что вы больше не можете устанавливать материал в / usr / local / bin, кроме как через 'sudo', но вам, вероятно, не следует этого делать в любом случае.

Джонатан Леффлер
источник
если я наберу команду выше, я получу: sudo: / etc / sudoers в режиме 0644, должно быть 0440 Ошибка сегментации
Xandman 17.10.10
@ Xandman: я не знаю, что случилось с ошибкой сегментации; программы не должны этого делать (особенно не связанные с безопасностью, такие как sudo). Понятно, что кто-то вмешивался в права доступа к файлам в вашей системе - я рекомендую прочитать им бунт. В то же время вы, вероятно, столкнулись с ситуацией с курицей и яйцом; вы не можете использовать 'sudo', пока не исправите разрешения для / etc / sudoers, и вы не можете исправить разрешения для / etc / sudoers без использования 'sudo'. Я не уверен, что это лучшее решение ...
Джонатан Леффлер
1
Я думаю, я должен повеситься. Возился с моим MAC, так как я переключился с окон. Пытался сделать этот ноутбук для Windows. Я, вероятно, сделал что-то глупое
Xandman
1
Спасибо за комментарий, Джонатан, ты дал мне идею проверить разрешения. Я восстановил разрешения с помощью Дисковой утилиты, и когда я выполнил команду: sudo chmod go-w / usr / local / bin, она не прошла.
Xandman 17.10.10
@ Xandman: Нет необходимости в повешении, пока вы не доказали, что являетесь повторным преступником. Вы говорите «это не пройдет» - каким образом это не работает? С помощью «sudo» вы предоставляете свой собственный пароль (с помощью «su» вы предоставляете пароль целевого пользователя - обычно root). Чтобы разобраться с этим, вам может потребоваться включить root-вход (Системные настройки как администратор, IIRC) и перейти к исправлению разрешений как root. Это предполагает, что вы теперь знаете достаточно, чтобы не повеситься случайно. Или может быть лучше повторить установку с нуля; это зависит от того, насколько вы изменили разрешения.
Джонатан Леффлер
63

У меня была та же ошибка здесь MacOSX 10.6.8 - кажется, что ruby ​​проверяет, доступна ли для записи какая-либо директория (включая родителей) в пути. В моем случае не было / usr / local / bin, так как ничего не было создано.

так что я должен был сделать

sudo chmod 775 /usr/local

избавиться от предупреждения.

Вопрос здесь заключается в том, нужно ли любому процессу без полномочий root: MacOS создавать что-либо в / usr / local?

peterk
источник
9
Да,775 => root(7) group(7) others(5), 7 => read(4) + write(2) + execute(1), and 5 => read(4) + execute(1)
CrizCraig
8

Пытаться: sudo chmod go-w /usr/local/bin

Каталог / usr / local / bin принадлежит rootучетной записи (т.е. администратора), поэтому даже если вы можете писать в нее, вы не сможете изменить разрешения для нее. Команда sudoозначает «выполнить следующую команду как пользователь root» и работает так же, как нажатие на этот значок блокировки в диалоговых окнах «Системные настройки».

Jander
источник
7

У меня была такая же проблема в OSX. Это можно исправить, запустив Дисковые утилиты для восстановления прав доступа. Я согласен с Питером Никси: в моем случае это происходит, когда мой 3G-ключ устанавливает или переустанавливает драйвер. Восстановление Разрешения впоследствии устраняет проблему.

Ларри Хайнс
источник
7

Использую Mountain Lion. То, что я сделал, - это поиск / usr / local и Get Info. На это есть общий доступ и разрешения. Убедитесь, что только пользователь и администратор являются единственными, кто имеет права на чтение и запись. Любой другой должен иметь доступ только для чтения. Это решило мою проблему.

Обычно его полезны утилиты запуска диска и разрешения на ремонт.

Muendo
источник
3

То же самое здесь, очевидно, моя папка / usr / local была доступна для записи во всем мире, поэтому я сделал ее 755

# chmod 755 /usr/local

Также оказалось, что использованный мною мобильный ключ Hauwei установил мировые директории для записи в / usr / local.

Мистер П
источник
3

Если вы работаете с OSX и часто сталкиваетесь с этим, еще одна хорошая вещь, которую стоит рассмотреть, - это использовать встроенный инструмент для разрешения разрешений OSX. Если вы не изменили режим своих каталогов, что-то еще изменилось, и есть вероятность, что другие каталоги также имеют избыточные разрешения - этот инструмент вернет их обратно к заводским настройкам по умолчанию, что является хорошей идеей безопасности. На этом самом стеке Apple есть отличное руководство .

Кайл Хотчкисс
источник
3

Вам нужно бежать

sudo chmod o-w -R /usr/local 
Джай Кумар Раджпут
источник
2
для меня -R должен быть сразу после chmodsudo chmod -R o-w /usr/local/
бормат
2

Даже я сталкивался с подобной проблемой. Я использую KDE на Ubuntu 12, и, играя в своей домашней папке, я случайно изменил разрешения для группы и других на «просматривать и изменять содержимое», щелкнув правой кнопкой мыши в моей домашней папке, а затем в свойствах и забыв об этом.

Мое предупреждение было:

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

Так что в моем случае это была домашняя папка. Я отменил изменения разрешений и перестал получать эти предупреждения при запуске сервера rails или задач rake для запуска моих тестов.

arkiver
источник
1

У меня также точно такая же проблема с обоими / usr / local / bin и / etc / sudoers на OSX Snow lepard. Даже когда я вошел в систему как администратор и попытался изменить разрешения через терминал, он по-прежнему говорит: «Операция не разрешенный". И я сделал следующее, чтобы получить разрешение этих папок.

Из терминала я получил доступ к файлу / etc / sudoers и, используя пико-редактор, добавил следующий код: username ALL = (ALL) ALL Замените «username» именем вашей учетной записи MAC OS

Sayanee
источник
0

У меня была та же ошибка здесь MacOSX 10.11 - кажется, что ruby ​​проверяет, доступна ли для записи какая-либо директория (включая родителей) в пути. В моем случае не было / usr / local / bin, так как ничего не было создано.

Запустите эту команду в своем терминале. Попробуйте этот sudo chmod 775 / usr / local. После этого, если у вас есть пароль на вашем Mac, вам нужно будет ввести пароль. Теперь эта проблема будет исправлена.

Мандип Сингх
источник
0

Это должно решить вашу проблему: chmod go-w {/path/of/user}

aphexlog
источник