ostrzeżenie: katalog / usr / local / bin z możliwością zapisu w niezabezpieczonym świecie w PATH, tryb 040777

172

Za każdym razem, gdy uruchamiam to polecenie rails server:

ostrzeżenie: katalog / usr / local / bin z możliwością zapisu w niezabezpieczonym świecie w PATH, tryb 040777

Szukałem tutaj rozwiązania i powiedzieli, żeby wpisać: chmod go-w /usr/local/bin

Ale pojawia się ten błąd:

chmod: Nie można zmienić trybu pliku na / usr / local / bin: Operacja niedozwolona

Nawiasem mówiąc, używam OS X.

Xandman
źródło
7
Miałem ten sam problem zaraz po zainstalowaniu oprogramowania dla szerokopasmowego klucza USB T-Mobile i zastanawiałem się, czy to on jest za to odpowiedzialny. Czy przypadkiem używasz również klucza sprzętowego?
Peter Nixey
5
Tak, dostałem go po zainstalowaniu mobilnego klucza USB Virgin (Australia)
nocache
3
O mój Boże naprawdę? Dzięki za tą informację! Zauważyłem również, że po próbie uruchomienia klucza sprzętowego T-Mobile znika moje uprawnienia.
Oto Brglez
Używam klucza LTE firmy AU (japoński przewoźnik), który również wymaga pewnej magii wiersza poleceń, aby dostać się do pracy ...
Nicolas Miari

Odpowiedzi:

278

Aby to zrobić, musisz mieć uprawnienia administratora. Jeśli nie jesteś jeszcze użytkownikiem administracyjnym, zaloguj się jako administrator. Następnie użyj „sudo”, aby zmienić uprawnienia:

sudo chmod go-w /usr/local/bin

Oczywiście będzie to oznaczać, że nie możesz już instalować materiału w / usr / local / bin z wyjątkiem 'sudo', ale prawdopodobnie i tak nie powinieneś tego robić.

Jonathan Leffler
źródło
jeśli
wpiszę
@Xandman: Nie wiem, o co chodzi z błędem segmentacji; programy nie powinny tego robić (zwłaszcza te niezwiązane z bezpieczeństwem, jak sudo). Najwyraźniej ktoś majstrował przy uprawnieniach do plików w Twoim systemie - polecam przeczytać mu dokument o zamieszkach. W międzyczasie prawdopodobnie masz do czynienia z sytuacją dotyczącą kury i jajka; nie możesz użyć „sudo”, dopóki nie naprawisz uprawnień w / etc / sudoers, a nie możesz naprawić uprawnień w / etc / sudoers bez użycia „sudo”. Nie jestem pewien, co jest najlepszym rozwiązaniem ...
Jonathan Leffler
1
Chyba powinienem się wtedy powiesić. Majstrowałem przy moim MAC, odkąd przełączyłem się z Windows. Próbowałem zrobić to laptop z systemem Windows. Prawdopodobnie zrobiłem coś głupiego
Xandman
1
Dzięki za komentarz Jonathan, wpadłeś na pomysł sprawdzenia uprawnień. Naprawiłem uprawnienia za pomocą Narzędzia dyskowego, a kiedy uruchomiłem polecenie: sudo chmod go-w / usr / local / bin, nie przejdzie.
Xandman
@Xandman: Nie ma potrzeby wieszania, dopóki nie udowodnisz, że jesteś recydywistą. Mówisz „to nie przejdzie” - w jakim sensie to nie działa? Za pomocą „sudo” podajesz własne hasło (za pomocą „su” podajesz hasło docelowego użytkownika - zazwyczaj root). Aby rozwiązać ten problem, może być konieczne włączenie logowania jako root (Preferencje systemowe jako administrator, IIRC) i naprawienie uprawnień jako root. To zakłada, że ​​wiesz już wystarczająco dużo, aby przypadkowo się nie powiesić. A może lepiej byłoby powtórzyć instalację od zera; zależy to od tego, jak bardzo zmodyfikowałeś uprawnienia.
Jonathan Leffler
63

Miałem ten sam błąd w MacOSX 10.6.8 - wygląda na to, że Ruby sprawdza, czy w jakimkolwiek katalogu (w tym nadrzędnych) w ścieżce można zapisywać na całym świecie. W moim przypadku nie było katalogu / usr / local / bin, ponieważ nic go nie stworzyło.

więc musiałem to zrobić

sudo chmod 775 /usr/local

pozbyć się ostrzeżenia.

Pytanie brzmi, czy jakikolwiek proces inny niż root: wheel w MacOS musi tworzyć cokolwiek w / usr / local?

peterk
źródło
9
Tak,775 => root(7) group(7) others(5), 7 => read(4) + write(2) + execute(1), and 5 => read(4) + execute(1)
crizCraig,
8

Próbować: sudo chmod go-w /usr/local/bin

Katalog / usr / local / bin należy do rootkonta (tj. Administratora), więc nawet jeśli możesz do niego pisać, nie możesz zmienić jego uprawnień. Te sudośrodki polecenie „uruchom następujące polecenie jako root” i działa dużo jak kliknięcie tej ikony kłódki w systemie Preferencje dialogowych.

Jander
źródło
7

Miałem ten sam problem w OSX. Można to naprawić, uruchamiając Narzędzia dyskowe, aby naprawić uprawnienia. Zgadzam się z Peterem Nixeyem: w moim przypadku jest to spowodowane instalacją lub ponowną instalacją sterownika przez klucz 3G. Naprawienie uprawnień później rozwiązuje problem.

Larry Hynes
źródło
7

Używam Mountain Lion. Poszukałem / usr / local i Get Info. Na nim jest Udostępnianie i uprawnienia. Upewnij się, że tylko użytkownik i administrator są jedynymi, którzy mają uprawnienia do odczytu i zapisu. Każdy inny powinien mieć dostęp tylko do odczytu. To rozwiązało mój problem.

Zwykle pomocne są narzędzia do uruchamiania dysków i uprawnienia do naprawy.

Muendo
źródło
3

To samo tutaj, najwyraźniej mój folder / usr / local był zapisywalny dla świata, więc utworzyłem go 755

# chmod 755 /usr/local

Okazało się również, że klucz sprzętowy Hauwei, którego użyłem, zainstalował również światowe katalogi do zapisu w / usr / local

Mister P.
źródło
3

Jeśli używasz OSX i często to robisz, kolejną dobrą rzeczą do rozważenia jest użycie wbudowanego narzędzia do naprawy uprawnień OSX. Jeśli nie zmieniłeś trybu swoich katalogów, zrobiłeś coś innego i istnieje szansa, że ​​inne katalogi również mają zbyt duże uprawnienia - to narzędzie zresetuje je z powrotem do ustawień fabrycznych, co jest dobrym pomysłem na bezpieczeństwo. Jest świetny przewodnik po stosie Apple, o tym procesie .

Kyle Hotchkiss
źródło
3

Musisz biec

sudo chmod o-w -R /usr/local 
Jai Kumar Rajput
źródło
2
dla mnie -R musi być bezpośrednio po chmodsudo chmod -R o-w /usr/local/
bormat
2

Nawet ja napotkałem podobny problem. Używam KDE na Ubuntu 12 i podczas zabawy w moim folderze domowym przypadkowo zmieniłem uprawnienia grupy i innych, ponieważ „mogę przeglądać i modyfikować zawartość”, klikając prawym przyciskiem myszy folder domowy, a następnie właściwości i zapomniałem o wszystkim.

Moje ostrzeżenie brzmiało:

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

Więc w moim przypadku był to folder domowy. Cofnąłem modyfikacje uprawnień i przestałem otrzymywać te ostrzeżenia podczas uruchamiania serwera railsowego lub zadań rake w celu uruchomienia testów.

arkiver
źródło
1

Mam również dokładnie ten sam problem z / usr / local / bin i / etc / sudoers na OSX Snow lepard. Nawet gdy zalogowałem się jako administrator i próbowałem zmienić uprawnienia za pośrednictwem terminala, nadal wyświetla się komunikat „Operacja nie dozwolony". Wykonałem następujące czynności, aby uzyskać pozwolenie na te foldery.

Z terminala uzyskałem dostęp do pliku / etc / sudoers i używając edytora pico dodałem następujący kod: nazwa użytkownika ALL = (ALL) ALL Zastąp „nazwę użytkownika” nazwą konta MAC OS

Sayanee
źródło
0

Miałem ten sam błąd w MacOSX 10.11 - wygląda na to, że Ruby sprawdza, czy w jakimkolwiek katalogu (w tym nadrzędnych) w ścieżce można zapisywać na całym świecie. W moim przypadku nie było katalogu / usr / local / bin, ponieważ nic go nie stworzyło.

Uruchom to polecenie w swoim terminalu i spróbuj wykonać to sudo chmod 775 / usr / local Po tym, jeśli masz jakieś hasło na komputerze Mac, musisz wprowadzić hasło. Teraz ten problem zostanie rozwiązany.

Mandeep Singh
źródło
0

To powinno rozwiązać twój problem: chmod go-w {/path/of/user}

aphexlog
źródło