Erste Vorraussetzung für Dein Vorhaben, ist, daß Du überhaupt das Recht hast, die Rechte zu lesen.
Genau deswegen geht hier ja auch Probieren über Studieren. Also echt entweder das Objekt per
AccessCheck (oder im KM
SeAccessCheck) auf Zugriffsmöglichkeiten testen oder öffnen und ggf. einen Fehler melden.
Benutzer Y hat aber keine Rechte auf Verzeichnis U in dem sich Datei X ja befindet.
Das ist bei den Standardinstallationen Unsinn, siehe
SeChangeNotifyPrivilege.
NB: man unterscheide
keine Rechte und
Zugriff verweigern!
[...] dann hat man sich eine echte Leiche gebastelt.
Nicht wirklich. Es gibt ja noch Backup-Privilegien.
Aber ohnehin ist es am besten sowas nicht selber nachzuprogrammieren sondern sich auf das vom System vorgegebene zu verlassen. Da kann man zumindest erstmal annehmen, daß es konsistentes Verhalten produziert (auch wenn das in Wirklichkeit nicht immer der Fall sein mag).