Warnung: Unsicheres, weltweit beschreibbares Verzeichnis / usr / local / bin in PATH, Modus 040777

172

Jedes Mal, wenn ich diesen Befehl ausführe rails server:

Warnung: Unsicheres, weltweit beschreibbares Verzeichnis / usr / local / bin in PATH, Modus 040777

Ich suchte hier nach einer Lösung und sie sagten zu tippen: chmod go-w /usr/local/bin

Aber ich bekomme diesen Fehler:

chmod: Dateimodus in / usr / local / bin kann nicht geändert werden: Vorgang nicht zulässig

Ich benutze übrigens OS X.

Xandman
quelle
7
Ich hatte das gleiche Problem kurz nach der Installation der Software für einen T-Mobile-Breitband-USB-Dongle und fragte mich, ob er dafür verantwortlich war. Benutzt du zufällig auch einen Dongle?
Peter Nixey
5
Ja, ich habe es nach der Installation eines mobilen USB-Dongles von Virgin (Australien) erhalten
Nocache
3
Oh mein gott, wirklich? Danke für diese Information! Ich habe auch festgestellt, dass nach dem Versuch, die T-Mobile-Dongle-Software auszuführen, meine Berechtigungen erfüllt sind.
Oto Brglez
Ich benutze einen LTE-Dongle von AU (japanischer Carrier), der auch einige Kommandozeilen-
Assistenten

Antworten:

278

Dazu benötigen Sie Root-Zugriff. Wenn Sie noch kein Administrator sind, melden Sie sich als Administrator an. Verwenden Sie dann 'sudo', um die Berechtigungen zu ändern:

sudo chmod go-w /usr/local/bin

Das bedeutet natürlich, dass Sie kein Material mehr in / usr / local / bin installieren können, außer über 'sudo', aber das sollten Sie wahrscheinlich sowieso nicht tun.

Jonathan Leffler
quelle
Wenn ich den obigen Befehl eingebe, erhalte ich: sudo: / etc / sudoers ist Modus 0644, sollte 0440 sein Segmentierungsfehler
Xandman
@ Xandman: Ich weiß nicht, was mit dem Segmentierungsfehler los ist. Programme sollten das nicht tun (insbesondere nicht sicherheitsrelevante wie sudo). Offensichtlich hat jemand die Dateiberechtigungen auf Ihrem System manipuliert - ich empfehle, ihnen den Aufruhr vorzulesen. In der Zwischenzeit sind Sie wahrscheinlich mit einer Henne-Ei-Situation konfrontiert. Sie können 'sudo' erst verwenden, wenn Sie die Berechtigungen für / etc / sudoers festgelegt haben, und Sie können die Berechtigungen für / etc / sudoers nicht festlegen, ohne 'sudo' zu verwenden. Ich bin nicht sicher, was die beste Lösung ist ...
Jonathan Leffler
1
Ich denke, ich sollte mich dann aufhängen. Ich habe an meinem MAC herumgebastelt, seit ich von Windows gewechselt bin. Versucht, dies zu einem Windows-Laptop zu machen. Ich habe wahrscheinlich etwas Dummes
getan
1
Vielen Dank für den Kommentar Jonathan, Sie haben mir eine Idee gegeben, die Berechtigungen zu überprüfen. Ich habe die Berechtigungen mit dem Festplatten-Dienstprogramm repariert und als ich den Befehl sudo chmod go-w / usr / local / bin ausgeführt habe, wird er nicht durchlaufen.
Xandman
@ Xandman: Sie müssen nicht hängen, bis Sie sich als Wiederholungstäter erwiesen haben. Sie sagen "es wird nicht durchgehen" - auf welche Weise funktioniert es nicht? Mit 'sudo' geben Sie Ihr eigenes Passwort ein (mit 'su' geben Sie das Passwort des Zielbenutzers an - normalerweise root). Um dies zu klären, müssen Sie möglicherweise die Root-Anmeldung aktivieren (Systemeinstellungen als Administrator, IIRC) und die Berechtigungen als Root festlegen. Das setzt voraus, dass Sie jetzt genug wissen, um sich nicht versehentlich aufzuhängen. Oder es ist besser, die Installation von Grund auf neu zu erstellen. Dies hängt davon ab, wie stark Sie die Berechtigungen geändert haben.
Jonathan Leffler
63

Ich hatte hier den gleichen Fehler MacOSX 10.6.8 - es scheint, dass Ruby prüft, ob ein Verzeichnis (einschließlich der Eltern) im Pfad weltweit beschreibbar ist. In meinem Fall war kein / usr / local / bin vorhanden, da nichts es erstellt hatte.

also musste ich tun

sudo chmod 775 /usr/local

die Warnung loswerden.

Eine Frage hier ist, muss ein Nicht-Root: Wheel-Prozess in MacOS etwas in / usr / local erstellen?

Peterk
quelle
9
Ja,775 => root(7) group(7) others(5), 7 => read(4) + write(2) + execute(1), and 5 => read(4) + execute(1)
CrizCraig
8

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

Das Verzeichnis / usr / local / bin gehört dem rootKonto (dh dem Administrator). Selbst wenn Sie darauf schreiben können, können Sie die Berechtigungen dafür nicht ändern. Der sudoBefehl bedeutet "Führen Sie den folgenden Befehl als root aus" und funktioniert ähnlich wie das Klicken auf dieses Schlosssymbol in den Dialogfeldern "Systemeinstellungen".

Jander
quelle
7

Ich hatte das gleiche Problem in OSX. Dies kann durch Ausführen von Festplatten-Dienstprogrammen zum Reparieren von Berechtigungen behoben werden. Ich stimme Peter Nixey zu: In meinem Fall wird dies verursacht, wenn mein 3G-Dongle seinen Treiber installiert oder neu installiert. Das anschließende Reparieren von Berechtigungen behebt das Problem.

Larry Hynes
quelle
7

Ich benutze Mountain Lion. Was ich getan habe, war Suchen nach / usr / local und Get Info. Darauf befinden sich Freigabe und Berechtigungen. Stellen Sie sicher, dass nur der Benutzer und der Administrator über Lese- und Schreibberechtigungen verfügen. Alle anderen sollten nur Lesezugriff haben. Das hat mein Problem gelöst.

Normalerweise sind die Dienstprogramme zum Ausführen von Datenträgern und Reparaturberechtigungen hilfreich.

Muendo
quelle
3

Das gleiche hier, anscheinend war mein / usr / local-Ordner weltweit beschreibbar, also habe ich ihn 755 gemacht

# chmod 755 /usr/local

Es stellte sich auch heraus, dass ein von mir verwendeter mobiler Hauwei-Dongle auch in / usr / local weltweit beschreibbare Verzeichnisse installiert hatte

Herr P.
quelle
3

Wenn Sie OSX ausführen und dies häufig erhalten, sollten Sie auch ein integriertes Tool zur Korrektur von OSX-Berechtigungen verwenden. Wenn Sie den Modus Ihrer Verzeichnisse nicht geändert haben, hat sich etwas anderes geändert, und es besteht die Möglichkeit, dass auch andere Verzeichnisse über großzügige Berechtigungen verfügen. Dieses Tool setzt sie alle auf die Werkseinstellungen zurück, was eine gute Sicherheitsidee ist. Es gibt eine großartige Anleitung zum Apple Stackextange zu diesem Prozess .

Kyle Hotchkiss
quelle
3

Du musst rennen

sudo chmod o-w -R /usr/local 
Jai Kumar Rajput
quelle
2
für mich -R muss direkt nach chmodsudo chmod -R o-w /usr/local/
bormat
2

Sogar ich bin auf ein ähnliches Problem gestoßen. Ich verwende KDE unter Ubuntu 12 und während ich in meinem Home-Ordner herumspielte, hatte ich versehentlich die Berechtigungen für Group und andere geändert, da "Inhalte anzeigen und ändern können", indem ich mit der rechten Maustaste in meinen Home-Ordner und dann auf Eigenschaften geklickt und alles vergessen habe.

Meine Warnung war:

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

In meinem Fall war es also der Home-Ordner. Ich habe die Änderungen der Berechtigungen rückgängig gemacht und diese Warnungen nicht mehr erhalten, wenn der Rails-Server oder Rake-Tasks ausgeführt wurden, um meine Tests auszuführen.

Arkiver
quelle
1

Ich habe auch genau das gleiche Problem mit / usr / local / bin und / etc / sudoers unter OSX Snow lepard. Selbst als ich mich als Administrator anmeldete und versuchte, die Berechtigungen über das Terminal zu ändern, heißt es immer noch "Operation nicht" zulässig". Und ich habe Folgendes getan, um die Erlaubnis für diese Ordner zu erhalten.

Vom Terminal aus habe ich auf die Datei / etc / sudoers zugegriffen und mit dem Pico-Editor den folgenden Code hinzugefügt: Benutzername ALL = (ALL) ALL Ersetzen Sie "Benutzername" durch Ihren MAC OS-Kontonamen

Sayanee
quelle
0

Ich hatte hier den gleichen Fehler MacOSX 10.11 - es scheint, dass Ruby prüft, ob ein Verzeichnis (einschließlich der Eltern) im Pfad weltweit beschreibbar ist. In meinem Fall war kein / usr / local / bin vorhanden, da nichts es erstellt hatte.

Führen Sie diesen Befehl in Ihrem Terminal aus. Versuchen Sie diesen sudo chmod 775 / usr / local. Wenn Sie danach ein Kennwort auf Ihrem Mac haben, müssen Sie das Kennwort eingeben. Jetzt wird dieses Problem behoben.

Mandeep Singh
quelle
0

Dies sollte Ihr Problem lösen: chmod go-w {/path/of/user}

aphexlog
quelle