Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Windows 7 Rechte für C:\Users\Public (https://www.delphipraxis.net/172417-windows-7-rechte-fuer-c-%5Cusers%5Cpublic.html)

Andidreas 2. Jan 2013 16:23

Windows 7 Rechte für C:\Users\Public
 
Hallo zusammen,

ich Entwickle gerade ein Programm welches in unseren PLV Partnerbetrieben zum Einsatz kommen soll.
Ich möchte hier eine SQLite DB zum Einsatz bringen in der die Daten gespeichert werden die mein Programm benötigt.
Um zu vermeiden das diese Datei manipuliert wird, möchte ich diese Datei nicht im Programm Verzeichnis des Programmes ablegen.

Meine Idee war nun die Datei unter C:\Users\Public\ abzulegen.
Für dieses Verzeichnis müssten doch normalerweise alle User eines PCs Schreibrechte haben oder?

Dalai 2. Jan 2013 16:39

AW: Windows 7 Rechte für C:\Users\Public
 
Zitat:

Zitat von Andidreas (Beitrag 1197379)
Um zu vermeiden das diese Datei manipuliert wird, möchte ich diese Datei nicht im Programm Verzeichnis des Programmes ablegen.

Meine Idee war nun die Datei unter C:\Users\Public\ abzulegen.

Um zu vermeiden, dass eine Datei deines Programms manipuliert wird, willst du sie da hinlegen, wo sie jeder schreiben (manipulieren) kann? Verstehe ich nicht.

Bedenke bitte, dass, sofern es sich um eine Software für den Unternehmenseinsatz handelt (so liest sich dein Eingangssatz), das Profil Public kein servergespeichertes Profil ist, also auch nicht auf irgendwelche Domain Controller synchronisiert wird.

Aber um deine Ausgangsfrage zu beantworten: Es sieht so aus, als hätte die "Well Known SID" namens "Interaktiv" Schreibrechte auf alle Unterverzeichnisse von Public.

MfG Dalai

p80286 2. Jan 2013 18:01

AW: Windows 7 Rechte für C:\Users\Public
 
Zitat:

Zitat von Andidreas (Beitrag 1197379)
Um zu vermeiden das diese Datei manipuliert wird,..
Für dieses Verzeichnis müssten doch normalerweise alle User eines PCs Schreibrechte haben oder?

Da gehe ich mal davon aus, daß du Dich vergallopiert hast.

Unter XPkönntest Du
c:\dokuments and settings\all users\application data\Myappname\......
nutzen, und nichts spricht dagegen die alten Dateiattribute (Archiv/System/Hidden.....) zu nutzen.
ebenso könntest Du die ADS-Berechtigungen manipulieren, aber wofür soll es gut sein?

Gruß
K-H

Popov 2. Jan 2013 20:55

AW: Windows 7 Rechte für C:\Users\Public
 
Zitat:

Zitat von Andidreas (Beitrag 1197379)
Um zu vermeiden das diese Datei manipuliert wird, möchte ich diese Datei nicht im Programm Verzeichnis des Programmes ablegen.

Ich gehe davon aus, dass du das Gegenteil meinst.

Also mit Windows 7 habe ich mich diesbezüglich noch nicht auseinandergesetzt, aber unter XP. Ich hab alles rauf und runter probiert und festgestellt, dass nichts geht. Es gibt keinen einzigen Standardort (ich nennt das jetzt mal so für Standardordner von Windows) in dem alle Benutzer eines Rechners (damit meine ich alle Benutzerkonten) alle gleiche Nutzungsrechte haben. Wenn, dann etwas eigenes, aber es gibt keinen echten Public Ordner. Oder wenn es nicht alle Konten haben müssen, dann unter Anwendungsdaten.

Morphie 3. Jan 2013 06:26

AW: Windows 7 Rechte für C:\Users\Public
 
Ich verstehe nicht, warum das immer so ein großes Thema ist...
Microsoft hat doch ganz deutlich gemacht, wo welche Daten abgespeichert werden sollen.

Dateien, die zur Lauffähigkeit des Programmes gehören (Exe, DLLs, ...) gehören in %ProgramFiles%\ProgramName
Daten, auf die das Programm von allen Benutzern aus zugreifen kann (Datenbanken, Konfigurationen, ...) gehören in %ProgramData%\ProgramName
Daten, die auf das Programm von nur einem bestimmten Benutzer aus zugreifen kann gehören in %AppData%\ProgramName

Für das Anlegen der Ordner und das Setzen der entsprechenden Rechte, ist normalerweise das Setup zuständig. Um das anschließende Löschen der Ordner ist der Uninstaller zuständig.

Popov 3. Jan 2013 07:12

AW: Windows 7 Rechte für C:\Users\Public
 
Das Problem ist der letzte Satz von Andidreas: "Für dieses Verzeichnis müssten doch normalerweise alle User eines PCs Schreibrechte haben oder?"

So wie ich es verstanden habe geht es drum eine Datei (Datenbank) so zu platzieren, dass sie von allen Usern eines Rechners von allen Konten genutzt werden kann. Und auch wenn es inzwischen paar Tage her ist wo ich mich selbst um das Problem bemüht habe, kann ich mich erinnern, dass es keinen Ort auf dem Rechner (bei NTFS) gibt, wo alle von Hause aus die nötigen Rechte hätten. Auf All Users mögen alle lesend zugreifen können, aber nicht schreibend, was wohl bei einer Datenbank seine Probleme mitbringen wird.

Ob Setup eine Möglichkeit bieten könnte, müsste man testen.

DeddyH 3. Jan 2013 07:18

AW: Windows 7 Rechte für C:\Users\Public
 
Z.B. InnoSetup kann das, siehe hier.

Morphie 3. Jan 2013 07:19

AW: Windows 7 Rechte für C:\Users\Public
 
Zitat:

Zitat von Popov (Beitrag 1197427)
Ob Setup eine Möglichkeit bieten könnte, müsste man testen.

Wie ich bereits geschrieben habe, ist genau das die Lösung.
Beim Verteilen von Software muss das Setup alle passenden Berechtigungen setzen.

Verbesserungsvorschlag:
Und da das Thema immer wieder auftritt, und aus diesem Grund die Kompatiblitätsprobleme zwischen XP (als Administrator) > Vista auftraten, wäre es vielleicht mal Sinnvoll, einen Sticky-Hilfethread hier ins Forum zu schreiben...

Dalai 3. Jan 2013 09:16

AW: Windows 7 Rechte für C:\Users\Public
 
Zitat:

Zitat von Popov (Beitrag 1197427)
[...] kann ich mich erinnern, dass es keinen Ort auf dem Rechner (bei NTFS) gibt, wo alle von Hause aus die nötigen Rechte hätten. Auf All Users mögen alle lesend zugreifen können, aber nicht schreibend, was wohl bei einer Datenbank seine Probleme mitbringen wird.

Dann mache ich wohl etwas anders als du. Sowohl in meiner Win7-VM als auch auf meinem Host mit Win7 kann ich auch als Benutzer in C:\Users\Public schreiben (auch in Dateien, die von einem Admin angelegt wurden). Selbst in C:\Users\All Users (das auf C:\ProgramData linkt) kann ich Dateien/Verzeichnisse anlegen (aber nicht von anderen angelegte Dateien ändern).

Auf XP trifft deine Aussage sicherlich zu, weil Benutzer dort nur Leserechte haben und der Pseudobenutzer "Interaktiv" nicht in der Rechteliste auftaucht. "Interaktiv" dürfte sogar Gäste mit einbeziehen, vermute ich mal.

MfG Dalai

Morphie 3. Jan 2013 09:28

AW: Windows 7 Rechte für C:\Users\Public
 
Zitat:

Zitat von Dalai (Beitrag 1197436)
Dann mache ich wohl etwas anders als du. Sowohl in meiner Win7-VM als auch auf meinem Host mit Win7 kann ich auch als Benutzer in C:\Users\Public schreiben (auch in Dateien, die von einem Admin angelegt wurden).

Dieses Verzeichnis ist aber für "End-User-Managed Data" da. Hier haben Datenbanken oder Einstellungsdateien nichts zu suchen. Hier werden normalerweise Dokumente, Bilder, MP3s usw., die für alle verfügbar sein sollen, abgelegt.

Zitat:

Zitat von Dalai (Beitrag 1197436)
Selbst in C:\Users\All Users (das auf C:\ProgramData linkt) kann ich Dateien/Verzeichnisse anlegen (aber nicht von anderen angelegte Dateien ändern).

Und genau das ist doch der Punkt. Genau hier gehören die Daten hin, allerdings muss man die Berechtigungen entsprechend anpassen, damit die Datenbank auch von allen Benutzern bearbeitet werden kann.

Hier mal das FileSystemNamespace-Guideline von Microsoft: http://www.microsoft.com/en-us/downl....aspx?id=22322


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 Uhr.
Seite 1 von 3  1 23      

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