Sollte / usr / local / bin Eigentum von root sein?

7

Der Paketmanager Homebrew (ich bin unter OS X, aber ich bin neugierig auf Unix-basierte Sicherheit im Allgemeinen, da es sich um Verzeichnisberechtigungen handelt) legt den Eigentümer von /usr/local/binauf meinen Benutzer fest (dies ist rootstandardmäßig richtig?), Was bedeutet, dass Jetzt kann ich ausführbare Dateien installieren, indem ich sie einfach nach verschiebe /usr/local/bin(nicht sudoerforderlich).

  1. Habe ich recht damit, das normalerweise /usr/local/bingehört root?
  2. Ist das Chowning /usr/local/binmit Ihrem normalen Benutzer nicht ein großes Sicherheitsproblem, da jetzt jede von mir ausgeführte Software Programme in meinem Namen installieren kann, ohne dass mein Kennwort erforderlich ist?
Orokusaki
quelle

Antworten:

6

Aus den häufig gestellten Fragen geht hervor, dass bei der Installation von Paketen die gefährliche Praxis vermieden werden muss, beliebigen Code aus dem Internet als Root auszuführen. Für die meisten Benutzer ist dies ein vernünftiger Kompromiss - Homebrew wird im Allgemeinen auf der Entwicklungsmaschine einer einzelnen Person verwendet, nicht auf Servern mit mehreren Benutzern in der Produktion.

Homebrew ist so konzipiert, dass es ohne Sudo funktioniert. Sie können sich dafür entscheiden, es wird jedoch dringend empfohlen, dies nicht zu tun. Wenn Sie sudo verwendet haben und auf einen Fehler stoßen, ist dies wahrscheinlich die Ursache. Bitte reichen Sie keinen Fehlerbericht ein, es sei denn, Sie können ihn nach der Neuinstallation von Homebrew von Grund auf ohne Verwendung von sudo reproduzieren.

Sie sollten immer nur ein Tool verwenden, dem Sie vertrauen. Natürlich können Sie Homebrew vertrauen;) Aber vertrauen Sie dem Multi-Megabyte-Makefile, das Homebrew ausführt? Entwickler verstehen C ++ oft viel besser als die Syntax make. Es ist ein zu hohes Risiko, solche Sachen zu sudo. Es könnte Ihr Basissystem beschädigen oder es subtil verändern.

In der Tat haben einige Build-Skripte versucht, Änderungen vorzunehmen, /usrselbst wenn das Präfix vollständig als etwas anderes angegeben wurde.

Hast du Wurzel gefressen /Applications/TextMate.app? Wahrscheinlich nicht. Also ist es so wichtig chown root wget?

Wenn Sie Homebrew in einer Mehrbenutzerumgebung ausführen müssen, sollten Sie ein separates Benutzerkonto speziell für die Verwendung von Homebrew erstellen.

Informationen dazu, warum es nicht nur in Ihrem installiert wird ~, finden Sie in der früheren FAQ-Frage "Warum bevorzugt Homebrew, dass ich es installiere /usr/local?".

ceejayoz
quelle
Ich weiß warum sie es tun. Dies beantwortet meine Frage nicht. Meine Frage ist herauszufinden, ob das, was Homebrew tut, eine wirklich sehr, sehr schlechte Idee ist (trotz der Tatsache, dass es vor einer anderen Art von Angriff schützt). Meine Frage ist die umfassendere: Ist es eine schlechte Idee, die /usr/local/binPeriode zu kauen , trotz der Bequemlichkeit oder anderer schlechter Praktiken, die sie zu vermeiden hilft?
Orokusaki
2
Touché ihrerseits (nur überprüft - obwohl ich TextMate nicht verwende, habe ich mehrere Pakete gefunden, die mir gehören /Applications), aber es hört sich so an, als würden sie falsch verwendet, um ein anderes zu verpflichten, oder? Warum kann Homebrew Sie während der Installation nicht nach Ihrem Passwort fragen, nicht damit das Installationsprogramm beliebigen Code ausführen kann root, sondern damit Homebrew chown root:admindas installierte Paket nachträglich ausführen kann ? Homebrew könnte den Besitz von Dateien und Verzeichnissen verwalten, ohne dass Pakete Code ausführen könnten root, oder?
Orokusaki
1
@ceejayoz Ich verstehe diesen Teil. Der besorgniserregendere Teil ist, dass ich in der Lage sein sollte, einen Fehler zu machen und ein Programm auszuführen, das schlechte Dinge tut, und wenn ich dann entdecke, dass es schlechte Dinge tut, sollte ich in der Lage sein, es loszuwerden und damit fertig zu werden. Stattdessen muss das Programm nur noch etwas tun cp <self> /usr/local/bin/<something else>. Es könnte starke Tropfen Kot hinterlassen, von denen ich nie erfahren werde, die aber meine Maschine für die Ewigkeit infizieren. In der idealen Welt kann eine App nur Dinge in meinem Home-Verzeichnis und darunter ändern, was bedeutet, dass Apps meine lokal gespeicherten Daten beeinflussen können, aber meinen Computer nicht ruinieren.
Orokusaki
1
Aus Sicht der Raumeffizienz ist es nicht ideal, wenn jeder das gleiche Paket separat installiert. Sie können jedoch jederzeit eine API verwenden, mit der Benutzer eine Paketinstallationsanforderung beim Benutzerland-Nicht-Root-Paketverwaltungsdämon registrieren, ein Paket einmal installieren und für alle Benutzer, die dieses Paket anfordern, Softlinks oder Hardlinks für die erforderlichen Ressourcen erstellen. Es gibt Systeme, die das tun. Leider sind sie keine Mainstream-Nixe ...: /
Parthian Shot
1
@Piskvor Es gibt ein cooles Betriebssystem (das ich zugegebenermaßen noch nicht ausprobiert habe, aber es klingt cool) namens NixOS , das anscheinend viele dieser Probleme löst.
Parthian Shot