Sind Setcap-Änderungen permanent?


11

Ist diese Änderung bei Verwendung von setcap für eine Datei dauerhaft oder muss ich setcap beim Booten irgendwo aufrufen?

setcap cap_sys_nice fooexecutable

Antworten:


15

Die setcap in der Datei speichert die Funktionen in einem erweiterten Attribut mit einem Aufruf von setxattr . Dieses erweiterte Attribut wird wie andere Attribute (Eigentum, Rechte ...) im Dateisystem gespeichert.

Seit Kernel 2.6.24 unterstützt der Kernel das Zuordnen von Fähigkeitssätzen zu einer ausführbaren Datei mithilfe von setcap (8). Die Dateifähigkeitssätze werden in einem erweiterten Attribut (siehe setxattr (2)) mit dem Namen security.capability gespeichert.

Sie müssen Ihre Kappe also nicht bei jedem Neustart zurücksetzen.


Was ist, wenn die Datei ersetzt wird?
Ryanwinchester

1
@ryanwinchester Wenn nur der Inhalt der Datei geändert wird, kein Problem, aber wenn die Datei entfernt / neu erstellt wird, wird auch die Setcap-Kapazität entfernt.
Cédric Julien

:( ah, das ist also mein Problem. Ich habe ein Skript, das ein Verzeichnis neu erstellt und dann einen Server startet, der Port 80 setcap
überwacht

"Wenn nur der Inhalt der Datei geändert wird, kein Problem" ist nicht wahr. Wenn Sie den Inhalt einer Datei ändern, werden deren Funktionen entfernt. Siehe unix.stackexchange.com/a/283408/2526
Richard Fearn

0

Die Änderungen sind dauerhaft, aber ich habe Probleme bei der Verwendung mit nodejs.

Sie können verwenden authbind, um die Berechtigung des Benutzers bereitzustellen

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.