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

Attachment: OpenPGP_0xBE96A6EE776FE5D0.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Antwort per Email an