Frage

Unsere App nutzen eine Komponente, die eine Lizenzdatei im Verzeichnis mit unserem ausführbaren erfordert, die eine .NET WinForms-Anwendung passiert sein, obwohl ich denke, dass es auf diese Frage unerheblich ist. Wenn auf einigen XP Pro-Rechnern installiert (nur drei von mehreren hundert bis jetzt), wirft die Komponente eine Lizenz Ausnahme. So regenerierte ich die Lizenzdatei und schickte es an den Anbieter von Komponenten (EMC Captiva), wenn der Verkäufer der Fehler behauptet, ist aufgrund der Tatsache, dass die Gruppe „Benutzer“ keine Leseberechtigungen für die Datei hat. Der Benutzer, der den Fehler trifft zufällig ein lokaler Administrator sein, aber das ist neben dem Punkt, als ich immer noch neugierig über die allgemeinere Frage bin.

Also meine Frage ist, ACLs in einer Datei gespeichert ist, so dass sie die Datei über das gesamte Leben folgen, vor allem, wenn die Lizenzdatei wurde auf meiner dev Maschine erzeugt (Maschine 1), gespeichert in Subversion (Maschine 2), ausgecheckt von Quellensteuerung durch Teamcity (Maschine 3), in ein Installationsprogramm durch Installshield (Maschine 4) verpackt ist, und schließlich an die Kundenmaschine im Einsatz (Maschine 5), wo es von einem Administrator installiert wurde? Was ist, wenn ich die Datei auf meiner Dev-Maschine (Maschine 1) erzeugen, laden Sie sie über ihre Support-Site an den Anbieter von Komponenten (Maschine 2), und die Unterstützung Person lädt zur Überprüfung ihrer Maschine (Maschine 3)?

Ich weiß, das nicht sicher (weshalb ich es hier bin zu fragen), aber ich nahm jeden Windows-Rechner speichert ACLs in einer zentralen Verzeichnis / Liste / Tabelle von NTFS verwaltet und nicht in der Datei gespeichert. Was passiert mit den ACL Originaldatei, wenn sie von einer Maschine zur anderen, gespeichert in Subversion, verpackt in ein MSI, etc kopiert wird? Kann mir jemand auf einige gute Referenzen zeigen, wo ich auf diese Zeilen lesen kann?

War es hilfreich?

Lösung

ACLs im Rahmen einer NTFS-Partition gespeichert sind, die alle den Hintergrund Sanitär tut -. Die MFT (Master File Table)

Die ACL folgt nicht einer Datei um, da sie nicht Teil der Datei ist (genau wie der Dateiname es Metadaten). Die Datei kann Partitionstyp Grenzen überschreiten (NTFS-> FAT), die ACL nicht.

Nun, wenn Sie Bewegung eine Datei innerhalb einer NTFS-Partition, könnte man den Eindruck bekommen, dass ACLs die Datei tatsächlich um folgen. Dies liegt daran, während einer Bewegung, nur der Dateiname in der MFT tatsächlich verändert. Alles andere bleibt gleich.

Wenn Sie eine Datei kopieren oder an einem anderen Partition oder Computer verschieben (was ist eigentlich eine Kopie + Löschoperation), die kopierte Datei standardmäßig erbt die Berechtigungen es neue Container ist (die vererbbar diejenigen nur, um genau zu sein) .

Allerdings gibt es Tools, die die Beibehaltung der ACL einer Datei nach einem Kopiervorgang können (indem sie einfach auf die gewünschte Datei nach dem Kopiervorgang neu zu erstellen) sogar über Partition oder Rechnergrenzen hinweg. xcopy kann das tun, unter anderem.

Da aber ein ACL-SIDs enthalten kann, die „Domain im Besitz“ sind, ein ACL-Eintrag möglicherweise nicht tatsächlich auf den Zielcomputer sinnvoll sein, die nicht Teil der gleichen Domäne ist (zum Beispiel, wenn zu Hause ein NTFS-formatierten USB-Laufwerk nehmen) . In diesem Fall wird der ACL-Eintrag keine Wirkung hat.

Andere SIDs sind "gut bekannt", wie das "SYSTEM" SID. Diese werden tatsächlich über Domänengrenzen hinweg erkannt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top