AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zugriffsrechte von Dateien ändern

Ein Thema von naht2k6 · begonnen am 21. Jul 2015 · letzter Beitrag vom 22. Jul 2015
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#1

AW: Zugriffsrechte von Dateien ändern

  Alt 21. Jul 2015, 14:28
Also erstens: Zugriffsrechte öffnet man nur so weit, wie es unbedingt notwendig ist, nicht so weit wie es geht. "Jeder" mit Vollzugriff auszustatten, ist absoluter Unsinn! Ich habe mich bereits mehrfach hier im Forum dazu ausgelassen, daher spare ich mir das an dieser Stelle; trotzdem kann man das nicht oft genug erwähnen, weil dieser Nonsens seit Jahren durchs Netz geistert und von "allen" (oft gedankenlos) benutzt wird.

Zweitens: Jeder Benutzer und jede Gruppe hat einen sogenannten SID (Security Identifier). Diese sind eineindeutig für jedes System. Diese Benutzer(gruppen), auf die du hinaus willst, haben ebenfalls einen SID, diese sind immer gleich. Von MS werden die als Well-known SIDs bezeichnet. Das bedeutet, du solltest diese SIDs benutzen, um die Zugriffsrechte zu setzen, denn dann bist du unabhängig von der Sprache des installierten OS.

MfG Dalai
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

AW: Zugriffsrechte von Dateien ändern

  Alt 21. Jul 2015, 14:59
Getestet mit XE7, WIN8.1 - Everyone wird überall verstanden.

Delphi-Quellcode:
// uses WinApi.ACCCTRL, WinApi.ACLAPI,
procedure TForm1.Button1Click(Sender: TObject);
var
  TmpString: String;
  pSD : Pointer;
  NewDacl, OldDacl: PACl;
  EA: array [0..5] of EXPLICIT_ACCESS;
  ret : Cardinal;
begin
ret:= 1;
  TmpString := 'F:\TEST.txt';
  GetNamedSecurityInfo(PChar(TmpString), SE_FILE_OBJECT,
                DACL_SECURITY_INFORMATION, nil, nil, @OldDacl, nil, pSD);
  BuildExplicitAccessWithName(@EA, PChar('Everyone'), GENERIC_ALL,
                GRANT_ACCESS, SUB_CONTAINERS_AND_OBJECTS_INHERIT);
  SetEntriesInAcl(1, @EA, OldDacl, NewDacl);
  ret:= SetNamedSecurityInfo(PChar(TmpString), SE_FILE_OBJECT,
                DACL_SECURITY_INFORMATION, nil, nil, NewDacl, nil);

  if ret= ERROR_SUCCESS then
  ShowMessage('Bei diesem Objekt wurden keine Objekttypen zugeordnet.'+#13#10+
            'Achtung: Dies ist ein mögliches Sicherheitsrisiko, weil jeder,'+#13#10+
            'der Zugriff auf dieses Objekt hat, dieses besitzen kann.'+#13#10+
            'Der Besitzer dieses Objekts sollte so bald wie möglich'+#13#10+
            'Berechtigungen zuordnen.');
end;
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.960 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zugriffsrechte von Dateien ändern

  Alt 21. Jul 2015, 15:46
Man sollte damit allerdings vorsichtig sein. Solche Aktionen werden von einigen Virenscannern erkannt und Programme entsprechend per Verhaltensanalyse als Virus oder "potentiell unterwünschtes Programm" eingestuft. (Das haben wir selbst schon gehabt, in dem Fall bei den Zugriffsrechten auf einen Registry-Schlüssel.) Ausnahme sind dabei Setups, dabei werden solche Aktionen offenbar eher erwartet.

Deshalb haben wir dies mittlerweile auch anders gelöst. Bei uns war das nicht so einfach, aber gerade bei Einstellungen ist es in der Regel doch ohnehin nicht erwünscht, dass ein Benutzer die Einstellungen des anderen Benutzers kaputt macht?!
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
naht2k6

Registriert seit: 23. Apr 2015
11 Beiträge
 
#4

AW: Zugriffsrechte von Dateien ändern

  Alt 22. Jul 2015, 09:31
Danke für die Anteilnahme. Eure Bedenken nehme ich zur Kenntniss.

Zuerstmal. Recht haste @Dalai. Ich versuche "Jeder" zu vermeiden. Aber um den Fakt, dass jeder Benutzer auf dem PC Schreibrechte auf dieser Datei braucht, komm ich nicht rum. Es handelt sich um eine Software zum betreiben eines recht komplexen Systems. Verschiedene Einstellungen für verschiedene Nutzer würden zu einem extremen Durcheinander führen.

@P80286 Der ProgramData Ordner ist ja genau für sowas da. Wenn ich per Hand dort eine Datei erstelle, hat diese auch großzügige Zugriffrechte.
Nur wenn ich sie aus dem Programm erstelle, taucht das Problem auf. Ich habe nicht vor die Brechstange rauszuholen. Höchstens ganz kurz.

Über kurz oder lang wird das Problem hoffentlich mit dem Setup gelößt.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#5

AW: Zugriffsrechte von Dateien ändern

  Alt 22. Jul 2015, 13:02
Zuerstmal. Recht haste @Dalai. Ich versuche "Jeder" zu vermeiden. Aber um den Fakt, dass jeder Benutzer auf dem PC Schreibrechte auf dieser Datei braucht, komm ich nicht rum.
Dann beschränke dich auf "Ändern" oder gar nur "Schreiben". Was ist der Unterschied? "Vollzugriff" beinhaltet nicht nur Lesen und Schreiben sondern auch das Ändern von Zugriffsrechten! "Ändern" beinhaltet auch Löschen, während "Schreiben" nur bedeutet, existierende Dateien ändern zu können (und ggf. neue anlegen, das weiß ich grad nicht). Aber die genannten Zugriffsrechte sind nur die "groben Dinger", das kann man unter "Erweitert" noch viel detaillierter einstellen.

Will sagen: Beschäftige dich mit den Zugriffsrechten lieber etwas länger, bevor du Löcher aufreißt.

MfG Dalai
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz