Informationen zu einer Datei oder einem Verzeichnis

4
  1. In Linux werden die Informationen zu a Datei oder Verzeichnis ist in seiner gespeichert Inode. Ich habe mich gefragt, was das ist Datenstruktur für Informationen über eine Datei oder ein Verzeichnis in Windows 7?
  2. Wie erhalte ich Informationen über a Datei oder Verzeichnis in Linux und in Windows 7 in Terminal und Befehl Linienfenster?
  3. Ist der Besitzer einer Datei oder eines Verzeichnisses immer sein Schöpfer? Wird es möglich sein? wechseln?
  4. Gibt es einen Zeitstempel für die Erstellung eines Datei in Linux und in Windows 7? Wie man Kapiert?

Danke und Grüße!

Tim
quelle

Antworten:

2

In Linux werden die Informationen zu einer Datei oder einem Verzeichnis in ihrem Inode gespeichert. Ich habe mich gefragt, wie ist die Datenstruktur für Informationen zu einer Datei oder einem Verzeichnis in Windows 7?

In beiden Betriebssystemen hängt dies davon ab, welches Dateisystem verwendet wird.

Windows verwendet NTFS Standardmäßig hat das "Attributlisten" in seiner Master File Table. Es gibt einige Dokumentation in Wikipedia , beim NTFS.com und Linux NTFS .

Die älteren FAT32 Dateisystem (immer noch häufig in Wechseldatenträgern verwendet) ist viel einfacher und hält alles in einem Dateizuordnungstabelle .

Wie erhalte ich Informationen zu einer Datei oder einem Verzeichnis unter Linux und Windows 7 im Terminal- und Befehlszeilenfenster?

Verwenden Sie in Linux die stat Befehl.

Verwenden Sie in Windows PowerShell System.Io.FileInfo.

In Windows cmd.exe, Sie müssen entweder externe Tools verwenden oder mit verwirren dir.

Ist der Besitzer einer Datei oder eines Verzeichnisses immer der Ersteller? Wird es sich ändern können?

  • Unter Windows NT (einschließlich XP, 2003, Vista, 7 und zukünftigen Versionen) , neu erstellte Objekte 1 sind im Besitz ihres Schöpfers, es sei denn, jemand anderes übernimmt das Eigentum. (Administratoren können dies mit tun SeTakeOwnership Privileg; Nicht-Administratoren können den Besitz übernehmen, wenn die ACL des Objekts dies zulässt.)

    • Auf Server-Editionen von Windows NT können Administratoren dies tun zuordnen Objektbesitz für einen anderen Benutzer. Consumer-Editionen (wie Windows XP oder 7) sind nur zulässig nehmen Eigentum an sich selbst.

    • Wenn der Ersteller in Windows 2000 und früheren Versionen Mitglied der Gruppe Administratoren ist, gehören die von ihm erstellten Objekte den Administratoren und nicht dem Benutzer. Dies hat sich in Windows XP geändert , wo der Benutzer immer Objekte besitzt, die er erstellt.

    • Die FAT-Dateisysteme nicht unterstützen Dateieigentum.

  • Alles [Zitat benötigt] Unix-Systeme verwenden den Ersteller der Datei als Eigentümer.

    • root Kann benutzen chown den Besitzer wechseln.

Gibt es einen Erstellungszeitstempel für eine Datei in Linux und Windows 7? Wie bekomme ich es?

  • In Windows speichern FAT32 und NTFS einen Erstellungszeitstempel. Im cmd.exe. dir /tc wird es zeigen.

  • FreeBSD UFS2 speichert die Erstellungszeit als st_birthtime.

  • Unter Linux werden Erstellungszeiten von einigen Dateisystemen unterstützt (NTFS, möglicherweise Ext4), jedoch noch nicht vom Betriebssystem selbst . (Das stat Der Befehl zeigt bereits Geburtszeiten an, wenn dies durch den Syscall desselben Namens unterstützt wird.)

Hinweis: Unter Windows und FreeBSD kann die Erstellungszeit leicht geändert werden.


1 Dies gilt für viele andere Arten von Windows NT-Objekten, nicht nur für Dateien. Beispiele: Named Pipes, Registrierungsschlüssel, Prozesse, Services, Desktops, Geräte, Mutexe ...

grawity
quelle
Korrektur: In Unix-Systemen kann der Besitzer mit wechseln chown auch.
ulidtko
@ulidtko: Falsch. Sehen Linux ("Nur ein privilegierter Prozess (Linux: einer mit der Funktion CAP_CHOWN) kann den Besitzer einer Datei ändern."), BSD ("...die Veränderung Inhaber Fähigkeit ist auf den Super-User beschränkt ") ...
grawity
1
@ulidtko: ... und 7. Unix Edition ("Nur der Superbenutzer kann diesen Aufruf ausführen. Wenn Benutzer Dateien weitergeben könnten, könnten sie die (nicht vorhandenen) Dateibereichsabrechnungsverfahren außer Kraft setzen." // Das Gruppe , jedoch, können geändert werden - wenn der Benutzer Mitglied der Zielgruppe ist.
grawity
Richtig, ich habe mich geirrt.
ulidtko
2
@ulidtko: Und diese SU-Frage: superuser.com/questions/164526/…
Hello71
3

Ich kenne Windows 7 nicht, werde aber versuchen, Linux-Teile zu beantworten.

  1. True, außer Dateiname.
  2. Das stat(1) Dienstprogramm kann alle Informationen über einen Inode erhalten. Begleitender Syscall stat(2) kann in Ihren Programmen verwendet werden.
  3. Nein, der Besitzer einer Datei oder eines Verzeichnisses kann jederzeit geändert werden, siehe chown(8). Siehe auch klebriges Stückchen .
  4. Nein, unter Linux wird der Erstellungszeitstempel nicht gespeichert. Siehe die stat(2) Syscall, speziell die struct stat Definition. Letzte Zugriffszeit ( st_atimespec ), Änderungszeit ( st_mtimespec ) und Inode-Datenänderungszeit ( st_ctimespec ) stehen zur Verfügung.
ulidtko
quelle
Zu # 4 - es können gespeichert werden, ist es einfach nicht durch stat(2) (noch).
grawity
Bedeutet "(2)" in "stat (2)" die Kategorie der Manpage von "stat (2)"?
Tim
@ grawity Dies ist zwar keine Standardfunktion (nicht POSIX) und wird auf anderen Systemen sehr unwahrscheinlich sein. Verwenden Sie an Ihrem eigenen Mut.
ulidtko
@Tim ja. [Platzhalter]
ulidtko
@ulidtko: FreeBSD . OS X und NetBSD haben bereits (verschiedene) Implementierungen von st_birthtime. Ich habe auch Solaris gehört.
grawity