Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Zugriffsrechte von Dateien/Verzeichnissen (https://www.delphipraxis.net/132892-zugriffsrechte-von-dateien-verzeichnissen.html)

Larsi 21. Apr 2009 13:43


Zugriffsrechte von Dateien/Verzeichnissen
 
Hi,

es geht um folgenden Code: http://www.delphipraxis.net/internal...ct.php?t=70877

Ich möchte jetzt einfach nur wissen wie ich damit sagen wir mal dem Nutzer "Example" keine Schreibrechte auf C:\Programme geben kann?

Mit freundlichen Grüßen

Lars Wiltfang

Tyrael Y. 21. Apr 2009 13:59

Re: Zugriffsrechte von Dateien/Verzeichnissen
 
Delphi-Quellcode:
  AddAccessRights(PChar("C:\Programme\"), PChar("Example"), myRightsMask)
...und die Maske setzt du aus den Rechten zusammen, die du vergeben möchtest
alle Rechte, die du hinzufügen möchtest miteinander mit OR vernknüpfen

...mehr zu den Rechten weiss Onkel Microsoft, die setzen sich aus zwei Teilen zusammen

1.Teil: das Recht selber (Lesen, Schreiben, Vollzugriff, ...)
2.Teil: der Mode für das Recht (verbieten, erlauben, ...)

Apollonius 21. Apr 2009 14:06

Re: Zugriffsrechte von Dateien/Verzeichnissen
 
Dieser Codeschnipsel kann nur Zugriffsrechte hinzufügen, nicht wegnehmen.

Dezipaitor 21. Apr 2009 14:15

Re: Zugriffsrechte von Dateien/Verzeichnissen
 
Nein, der Code kann es nicht. Man kann nur Zugriff erlauben. Die Maske lückenhaft zu lassen bedeutet nicht, dass der Zugriff verweigert wird. Der Benutzer kann in Gruppen sein, die trotzdem Zugriff erlauben.

p80286 21. Apr 2009 16:08

Re: Zugriffsrechte von Dateien/Verzeichnissen
 
hallo zusammen,

Zitat:

Zitat von Dezipaitor
Nein, der Code kann es nicht. Man kann nur Zugriff erlauben. Die Maske lückenhaft zu lassen bedeutet nicht, dass der Zugriff verweigert wird. Der Benutzer kann in Gruppen sein, die trotzdem Zugriff erlauben.

das ist nicht ganz richtig, wenn Ihr ein "Verbieten"-Recht vergebt, dann ist der Laden zu.
Wenn ich das noch richtig zusammen bekomme wird von MS erst nach verbotenen Rechten gesucht und dann nach der Erlaubnis.
verboten ist verboten, das dürfte man auch durch eine Gruppe nicht aushebeln können.

In der Praxis sollte es aber besser sein, Benutzer und/oder Gruppen zuzulassen, sonst wird das Chaos zu groß.

Grüße
K-H

Dezipaitor 21. Apr 2009 16:41

Re: Zugriffsrechte von Dateien/Verzeichnissen
 
Du hast meinen Text nicht richtig verstanden. Man kann durch Verkleinerung der Zugriffsmaske auch den Zugriff verweigern. Wenn man z.B. READ_FILE_ACCESS nicht vergibt, dann kann der Benutzer auch keine Dateien lesen - es sei denn, er ist in einer Gruppe, die das erlaubt und zwar indem die Gruppe in der ACL mit diesem Recht erlaubend gelistet ist.
Die Vergabe einer Verweigerung schließt auch diese Lücke.

Die Normalform einer ACL ist u.a. so definiert, dass zuerst Verweigerungs- und dann Erlaubeneinträge stehen sollten. Das muss aber nicht unbedingt so sein. Im so einem Fall kann es aber chaotisch werden.

p80286 21. Apr 2009 17:32

Re: Zugriffsrechte von Dateien/Verzeichnissen
 
Zitat:

Zitat von Dezipaitor
Wenn man z.B. READ_FILE_ACCESS nicht vergibt, dann kann der Benutzer auch keine Dateien lesen - es sei denn, er ist in einer Gruppe, die das erlaubt und zwar indem die Gruppe in der ACL mit diesem Recht erlaubend gelistet ist.

d'accord
Zitat:

Zitat von Dezipaitor
Die Vergabe einer Verweigerung schließt auch diese Lücke.

d'accord
Zitat:

Zitat von Dezipaitor
Die Normalform einer ACL ist u.a. so definiert, dass zuerst Verweigerungs- und dann Erlaubeneinträge stehen sollten. Das muss aber nicht unbedingt so sein. Im so einem Fall kann es aber chaotisch werden.

"Kann" ist da recht optimistisch.

Edit:
Ich würde auf jeden Fall davon absehen, einem Benutzer Rechte zu entziehen (verbieten).
Rechte Vergeben ist wesentlich übersichtlicher und einfacher zu pflegen.
Und Gruppen ist der Vorzug vor Einzelpersonen zu geben.

Gruß
K-H

Dezipaitor 21. Apr 2009 18:16

Re: Zugriffsrechte von Dateien/Verzeichnissen
 
Nunja, wenn es sein muss, dann muss es eben sein :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz