
Ich möchte, dass eine Knotenanwendung die Möglichkeit hat, eine Bindung an Ports mit niedrigen Nummern herzustellen (genauer gesagt 443, da es sich um einen HTTP2-Server handelt).
Ich mache das mitsudo setcap cap_net_bind_service=+ep /path/to/node
Dies wird anscheinend beim Booten gespeichert. Ich verwende nvm, um verschiedene Node-Versionen installieren zu können. Ich habe gerade die Version aktualisiert und binde sie natürlich nicht mehr.
Es ist recht einfach, die Funktion wieder hinzuzufügen, aber vermutlich sammle ich irgendwo Berechtigungen an, die ich bei älteren Node-Versionen deaktivieren sollte.
Ich kann jedoch nicht herausfinden, an welcher Stelle in der Boot-Reihenfolge dies geschieht. Kann mir jemand sagen, wo (ich verwende Debian).
BEARBEITEN
Ich denke, die Informationen sollten in den zusätzlichen Attributen der ausführbaren Datei gespeichert werden. Ich kann jedoch keine zusätzlichen Attribute in den Dateien finden, die ich auf diese Weise eingerichtet habe.
Antwort1
Die Fähigkeiten werden mit dem Dateieintrag im Verzeichnis gespeichert (genauer gesagt, sie befinden sich in der DateiInode, wie andere Arten von Berechtigungen). Während des Bootvorgangs passiert nichts Besonderes.
Ab GNU coreutils 8.23 ls
kennt der Befehl keine Linux-Fähigkeiten, daher finden Sie in seiner Ausgabe nichts, das Ihnen mitteilt, dass ein Programm Fähigkeiten gesetzt hat. Verwenden Sie den getcap
Befehl, um Fähigkeiten aufzulisten.
Um alle Fähigkeiten aus einer Datei zu löschen, verwenden Sie setcap -r /path/to/file
. Sie müssen allerdings nichts bereinigen – die Fähigkeiten sind mit der Datei gespeichert, Sie müssen nichts weiter tun, als die Datei zu entfernen.
Antwort2
Sehen Sie setcap(8)
, Fähigkeiten sind gesetztfür die ausführbare Datei. Dies funktioniert ähnlich wie (aber feiner granular als) SUID oder SGID. Dies wird nirgends im „Bootvorgang“ behandelt; immer wenn die Datei als Programm ausgeführt wird, erhält der resultierende Prozess die Fähigkeiten.
Ja, das Belassen alter Versionen der Datei mit erhöhten Berechtigungen stellt ein ernstes Sicherheitsrisiko dar. Löschen Sie die alten Versionen besser, wenn eine neue installiert wird.