Es spielt keine Rolle, ob die Dateien in /bin
(oder einem anderen Standardverzeichnis, in dem ausführbare Dateien gespeichert sind) von root geschrieben werden können oder nicht. Auf einem Linux-Server, den ich verwende, sind sie von root schreibbar, auf meiner OpenBSD-Maschine jedoch nicht.
Solange sie nicht von der Gruppe oder von "anderen" beschreibbar sind!
Es gibt keine Sicherheitslücke, z
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
Wenn jemand es überschreiben wollte, musste er root sein, und wenn er es ist root
und überschreibt, dann sind sie es auch
- Installieren einer neuen Version oder
- ungeschickt oder
- ein Angreifer mit Root-Berechtigungen bereits .
Eine andere zu berücksichtigende Sache ist, dass root in die Datei schreiben kann, egal ob sie schreibgeschützt ist oder nicht, weil ... root.
Beachten Sie auch, dass "ein Skript" genauso ausführbar ist wie eine Binärdatei. Ein Skript muss nicht beschreibbar sein, "weil es eine Textdatei ist". Wenn überhaupt, sollte es wahrscheinlich nur dieselbe Berechtigung haben wie die anderen ausführbaren Dateien im selben Verzeichnis.
Ändern Sie jetzt nicht die Berechtigungen für alles! Dies kann allerlei Chaos anrichten und Paketmanager verwirren, die möglicherweise überprüfen, ob die Berechtigungen ordnungsgemäß festgelegt wurden. Dies kann das System auch anfällig machen, wenn Sie die Berechtigungen für eine sicherheitskritische Anwendung versehentlich auf die falsche Weise ändern.
Gehen Sie einfach davon aus, dass die Berechtigungen für die ausführbaren Dateien korrekt eingestellt sind, es sei denn, Sie finden etwas wirklich Seltsames. In diesem Fall sollten Sie sich wahrscheinlich an den entsprechenden Paketbetreuer wenden, um zu überprüfen, anstatt Änderungen vorzunehmen.
In den Kommentaren und im Chat wurde nach etwas Geschichte gerufen.
Die Geschichte der Berechtigungen für Binärdateien unter Linux ist nichts, wovon ich etwas weiß. Es kann spekuliert werden, dass sie einfach die Berechtigungen aus dem Verzeichnis oder nur aus dem Standard umask
von Linux geerbt haben , aber ich weiß es wirklich nicht.
Was ich weiß ist, dass OpenBSD die Binärdateien im Basissystem 1 standardmäßig mit dem Berechtigungsmodus 555 installiert ( -r-xr-xr-x
). Dies wird in einem Makefile-Fragment angegeben, in /usr/share/mk/bsd.own.mk
dem BINMODE
555 festgelegt ist (sofern es nicht bereits festgelegt ist). Dies wird später bei der Installation der ausführbaren Dateien make build
in verwendet /usr/src
.
Ich habe mir das mit Anmerkungen versehene CVS-Protokoll für diese Datei angesehen und festgestellt, dass diese Zeile in der Datei unverändert ist, seit sie 1995 aus NetBSD importiert wurde.
Unter NetBSD wurde die Datei 1993 zum ersten Mal in CVS gestellt und BINMODE
auf 555 gesetzt.
Das FreeBSD-Projekt verwendet anscheinend seit mindestens 1994 genau dieselbe Datei wie NetBSD und fügt bei einem späteren Commit einen Hinweis in die Commit-Meldung ein, dass die alten Dateien aus der 4.4BSD-Version der Berkeley Software Distribution stammen.
Darüber hinaus hat die CSRG in Berkeley die Quellen in SCCS gespeichert, ihr Repository ist jedoch in Git-Form auf GitHub 2 verfügbar . Die Akte, die wir hier forencisch behandeln, scheint von Keith Bostic (oder jemandem in seiner Nähe) im Jahr 1990 begangen worden zu sein .
Das ist also diese Geschichte. Wenn Sie das Warum wollen , dann müssen wir wahrscheinlich Keith fragen. Ich hatte gehofft, eine Commit-Nachricht zu einer Änderung zu erhalten, in der stand: " Das muss 555 sein, weil ... ", aber nein.
1 BSD-Systeme sind strenger in "Basissystem" - und "3rd-Party-Pakete" (Ports / Pakete) unterteilt als Linux. Das Basissystem ist eine zusammenhängende Einheit, die einen vollständigen Satz von Funktionen zum Ausführen des Betriebssystems bereitstellt, während die Ports oder Pakete als "lokale Software" angesehen und unter installiert werden /usr/local
.
2 Ein umfassenderes GitHub-Repository für Unix-Versionen ab den 70er Jahren ist ebenfalls verfügbar .
root
Schreibzugriff auf eine Binärdatei hat. Wenn nichts anderes hilft es beim Upgrade dieses Pakets.