попередження: Небезпечний запис, що записується у світі / usr / local / bin в PATH, режим 040777


172

Кожен раз, коли я запускаю цю команду rails server:

попередження: Небезпечний запис, що записується у світі / usr / local / bin в PATH, режим 040777

Я шукав тут рішення, і вони сказали: chmod go-w /usr/local/bin

Але я отримую цю помилку:

chmod: Не вдається змінити режим файлу на / usr / local / bin: Операція заборонена

Я, до речі, використовую OS X.


7
У мене виникла така ж проблема, як тільки після встановлення програмного забезпечення для широкосмугового USB-ключа T-Mobile, і мені було цікаво, чи відповідає він за це. Ви випадково також використовуєте донгл?
Пітер Ніксей

5
Так, я отримав це після встановлення мобільного USB-ключа Virgin (Австралія)
nocache

3
OMG, справді? Дякую за цю інформацію! Я також помітив, що після того, як я спробую запустити програмне забезпечення для dongle T-Mobile, це дозволило отримати мої дозволи.
Ото Брглез

Я використовую LTE-ключ від AU (японський перевізник), який також вимагає певного
майстра

Відповіді:


278

Для цього вам потрібно буде мати кореневий доступ. Якщо ви ще не є адміністративним користувачем, увійдіть як адміністратор. Потім використовуйте "sudo", щоб змінити дозволи:

sudo chmod go-w /usr/local/bin

Очевидно, це означає, що ви більше не можете встановлювати матеріал у / usr / local / bin, окрім "sudo", але ви, мабуть, не повинні цього робити.


якщо я
напишу

@Xandman: я не знаю, що з помилкою сегментації; програми не повинні цього робити (особливо не такі, які стосуються безпеки, як sudo). Зрозуміло, що хтось зазнав фальсифікації дозволів на файли у вашій системі - я рекомендую прочитати їх. Тим часом ви, мабуть, зіткнулися з ситуацією з куркою та яйцями; ви не можете використовувати "sudo", поки ви не зафіксуєте дозволи на / etc / sudoers, і ви не зможете виправити дозволи на / etc / sudoers, не використовуючи "sudo". Я не впевнений, що найкраще виправити ...
Джонатан Леффлер

1
Я думаю, я повинен тоді повіситись. Займався моїм MAC з моменту переходу з windows. Намагався зробити це ноутбуком для Windows. Я, мабуть, зробив щось дурне
Ксандман

1
Дякую за коментар Джонатане, ти дав мені ідею перевірити дозволи. Я відремонтував дозволи з Disk Utility, і коли я запустив команду: sudo chmod go-w / usr / local / bin, він не пройде.
Xandman

@Xandman: Не потрібно вешати, поки ви не зарекомендували себе як злочинця, що повторюється. Ви кажете "це не пройде" - яким чином це не працює? За допомогою «sudo» ви надаєте свій власний пароль (зазвичай із «su» ви вводите пароль цільового користувача - root, як правило). Щоб розібратись із цього, вам може знадобитися увімкнути кореневий логін (System Preferences як адміністратор, IIRC) та перейти до виправлення дозволів як root. Це припускає, що ви зараз знаєте достатньо, щоб не повіситись випадково. Або може бути краще переробити установку з нуля; залежить від того, наскільки ви змінили дозволи.
Джонатан Леффлер

63

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

тому мені довелося робити

sudo chmod 775 /usr/local

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

Питання тут полягає в тому, чи потрібен будь-який не кореневий: колесовий процес у MacOS повинен створювати що-небудь в / usr / local?


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засобі командного «виконайте наступну команду як корінь», і багато працює , як натиснувши на цей значок блокування в налаштуваннях діалогів системи.


7

У мене була така ж проблема в OSX. Це можна виправити, запустивши дискові утиліти для відновлення дозволів. Я погоджуюся з Пітером Ніксей: у моєму випадку це спричинено, коли мій 3G dongle встановлює або перевстановлює його драйвер. Після відновлення дозволів виправляється проблема.


7

Я використовую гірський лев. Що я зробив, це шукати / usr / local та отримати інформацію. На ньому є обмін та дозволи. Переконайтеся, що його користувач та адміністратор - єдині, хто має права на читання та запис. Будь-хто інший повинен мати лише доступ для читання. Це розібрало мою проблему.

Зазвичай корисними є ваші утиліти Run disk та дозволи на відновлення.


3

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

# chmod 755 /usr/local

Також з'ясувалося, що мобільний ключ «Hauwei», який я використав, встановив світові довідникові каталоги в / usr / local також


3

Якщо ви запускаєте OSX і отримуєте це часто, ще одна хороша річ, яку слід враховувати, - це використовувати вбудований інструмент для виправлення дозволів OSX. Якщо ви не змінили режим своїх каталогів, зробили щось інше, і є ймовірність, що й інші каталоги також мають надмірну кількість дозволів - цей інструмент поверне їх назад до заводських налаштувань, що є хорошою ідеєю безпеки. Про стадію Apple про цей процес є чудовий посібник .



2

Навіть я зіткнувся з подібною проблемою. Я використовую KDE на ubuntu 12, і, граючи в домашній папці, я випадково змінив дозволи для груп та інших, оскільки "можна переглядати та змінювати вміст", клацнувши правою кнопкою миші в моїй домашній папці, а потім - властивостями та забувши про неї.

Моє попередження:

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

Тож у моєму випадку це була домашня папка. Я скасував зміни дозволів і перестав отримувати ці попередження під час запуску сервера рейлів або рейкових завдань для запуску своїх тестів.


1

У мене також є та сама проблема з / usr / local / bin та / etc / sudoers на OSX Snow lepard. Навіть коли я входив як адміністратор і намагався змінити дозволи через термінал, він все ще говорить "Операція не дозволено ". І я зробив наступне, щоб отримати дозвіл цих папок.

З терміналу я отримав доступ до файлу / etc / sudoers та за допомогою редактора pico я додав наступний код: ім'я ALL = (ALL) ВСІ Замініть "ім'я користувача" своїм іменем облікового запису MAC OS


0

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

Запустіть цю команду у своєму терміналі. Спробуйте цей sudo chmod 775 / usr / local Після цього, якщо у вас є пароль на вашому mac, вам доведеться ввести пароль. Тепер це питання буде виправлено.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.