Hi,
On 28/06/2023 22:28, Andreas Fett wrote:
On Wed, Jun 28, 2023 at 10:02:37PM +0200, Christian Perle wrote:
Die Capability CAP_DAC_READ_SEARCH erlaubt zwar open()/openat() auf eine sonst nicht lesbare Datei, aber die access()-Familie liefert einen Fehler. Ob das jetzt inkonsistentes Verhalten des Kernels ist, sei mal dahingestellt.
Ich finde dieses access()/open() Pattern im userspace ist generell kaputt. Das ist ja eh immer anfällig für race conditions.
Die access() calls ignorieren zum Teil auch Flags auf Mount-Ebene, ACLs, Superuser-Rechte etc. Es werden nur stupide die Bits der klassischen Zugriffsrechte geprüft. Es gibt Race Conditions, Security Considerations und angeblich auch versteckte Drachen, die Hunger auf ahnungslose Programmierer haben.
Die man-Page klingt nicht gerade wie eine uneingeschränkte Empfehlung durch die Kernelentwickler.
Kurz: man kann nur davon abraten access() zu benutzen.
Konrad