Dateirechte einkapseln und wieder schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Es gibt Zip-Programme, die können beim Zippen sogar die exakten Dateirechte mit einkapseln. Beim Entpacken werden diese dann wieder 1:1 auf die Datei/den Ordner angewendet. Kenne das aktuell nur bei Windows NTFS-Rechten...

Kann man sowas auch mit Python-Bordmitteln machen? Also für Windows schließe ich da mal die win32 Extensions mit ein. Kann man die Dateirechte dann irgendwie pickeln, um sie später (z.B. nach dem Kopieren auf einen anderen Rechner) wieder anzuwenden? Bei Windows stelle ich mir das sehr schwierig vor, v.a. auch weil man Rechte vererben kann etc.

Bei Linux geht das noch solange einfach, wie keine ACLs im Spiel sind. Benutzer und Gruppe sind auslesbar... Rechte weiß ich nicht. Für den einfachen Fall könnte man sowas also in einer Textdatei festhalten. Bei ACLs geht das sicher nicht mehr so einfach.

Hat da jemand mehr Ahnung als ich?
lunar

droptix hat geschrieben:Bei Linux geht das noch solange einfach, wie keine ACLs im Spiel sind. Benutzer und Gruppe sind auslesbar... Rechte weiß ich nicht. Für den einfachen Fall könnte man sowas also in einer Textdatei festhalten. Bei ACLs geht das sicher nicht mehr so einfach.
tar unterstützt (zumindest unter Linux) das Archivierung von Rechten bei Dateien und Verzeichnissen. Dazu gibt es da tarfile Modul in der Standardbibliothek, dessen Dokumentation dieses Feature übrigens gleich am Anfang erwähnt.

Wie es unter Windows aussieht, weiß ich nicht.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Ich möchte kein Zip oder so erstellen, sondern nur die Funktion "Dateirechte speichern" umsetzen. Das Beispiel mit dem Zip war nur zur Verdeutlichung, um was es genau geht...

Mal Häppchenweise:

1) Kann ich unter Linux Dateirechte mit Python erfahren (ohne externe Commandline-Tools)? Also ganz einfach z.B. owner-read/write/execute, group-read/write/execute und public-read/write/execute?

2) Weiß jemand ob die win32 Extensions NTFS-Rechte auslesen können?
lunar

droptix hat geschrieben:Ich möchte kein Zip oder so erstellen, sondern nur die Funktion "Dateirechte speichern" umsetzen. Das Beispiel mit dem Zip war nur zur Verdeutlichung, um was es genau geht...

Mal Häppchenweise:

1) Kann ich unter Linux Dateirechte mit Python erfahren (ohne externe Commandline-Tools)? Also ganz einfach z.B. owner-read/write/execute, group-read/write/execute und public-read/write/execute?

Code: Alles auswählen

statres = os.stat('/home/lunar/signature.de')
# Berechtigungen
print statres.st_mode
# Eigentümer
print statres.st_uid
# Gruppe
print statres.st_gid
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Ah cool, genau das meinte ich... werde damit ein wenig rumspielen.

Unter Windows wird `st_mode` wohl nicht viel Sinnvolles ausspucken denke ich. Weiß jemand wie man die Dateirechte mit den win32 Extensions auslesen kann? Dort stell ich mir das wesentlich komplizierter vor...
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Antworten