Wenn Sie verwenden setcap
, um einer Binärdatei zusätzliche Berechtigungen zu erteilen, sollte die neue Berechtigung irgendwo im Speicher oder im Speicher geschrieben werden. Wo wird sie gespeichert?
Die Verwendung von lsof
as is funktioniert nicht, da der Prozess zu schnell verschwindet.
capabilities
setcap
Zulgrib
quelle
quelle
/usr/bin/sleep
und geben Sie die Funktionen für diese Kopie an.Antworten:
Erweiterte Berechtigungen wie Zugriffssteuerungslisten, die von
setfacl
und Fähigkeitsflags festgelegtsetcap
sind, werden an derselben Stelle gespeichert wie herkömmliche Berechtigungen und setzen [ug] -ID-Flags, die vonchmod
: im Inode der Datei festgelegt werden.(Sie können tatsächlich in einem separaten Block auf der Festplatte gespeichert werden, da ein Inode eine feste Größe hat, die Platz für die herkömmlichen Berechtigungsbits bietet, jedoch nicht für die möglicherweise unbegrenzten erweiterten Berechtigungen. Dies ist jedoch nur in seltenen Fällen von Bedeutung, z Pflege,
setcap
bei der möglicherweisechmod
nicht genügend Speicherplatz zur Verfügung steht. Auf einem System, das Deduplizierung verwendet, kann sogar der Speicherplatz knapp werden!)GNU ls zeigt die Setcap-Attribute einer Datei nicht an. Sie können sie mit anzeigen
getcap
. Sie können alle erweiterten Attribute mitgetfattr -d -m -
auflisten. Das Attribut setcap wird aufgerufensecurity.capability
und in einem Binärformat codiert, dasgetcap
für Sie decodiert.quelle
setcap legt Dateifunktionen fest, die im erweiterten Attribut des Dateisystems gespeichert sind. Diese werden erklärt in
man 7 capabilities
:Sie können die Funktionen eines laufenden Prozesses überprüfen, indem Sie die Felder CapInh / CapPrm / CapEff in untersuchen
/proc/PID/status
. In meiner Antwort auf " Festlegen von Funktionen mit dem Befehl setcap? " Finden Sie Erläuterungen dazu, wie die Funktionen auf die Verarbeitung bei exec angewendet werden.quelle