it-swarm.com.de

Wie erstelle ich ein ext4-formatiertes USB-Laufwerk mit vollen RW-Berechtigungen für einen Linux-Computer?

Ich möchte meinen USB-Stick auf ext4 Formatieren und wie jedes andere typische Laufwerk ohne Linux-Format verwenden (FAT32, exFAT, NTFS). .

Das heißt, ich möchte in der Lage sein, den USB-Stick an einen meiner Linux-Computer anzuschließen und darauf zu lesen/schreiben ohne die Berechtigungen anpassen zu müssen, wie bei chmod oder chown Zeug.

Ich würde lieber eine GUI-Partitionssoftware wie GParted als Befehlszeilenbefehle verwenden, obwohl ich jede Lösung begrüße!

Ich bin mir sicher, dass ein Beitrag wie dieser für einige ein doppelter Flaggenhimmel ist, aber nach dem Durchsuchen von 6 ~ 10 SO] und Forenbeiträgen von Google habe ich keine einfache Lösung für meine Frage gefunden Wie bei allem ging es darum, Berechtigungen auf Benutzerbasis anzupassen. Vielleicht können Sie ext4 - Laufwerke nicht mit dem gleichen hirnlosen Komfort wie NTFS verwenden.

14
Alnitak

Wie jedes Dateisystem im Unix-Stil enthält ext4 Standardkonventionen für den Besitz und die Berechtigung von Unix-Dateien. Das heißt, der Benutzer wird durch eine UID-Nummer identifiziert, und jeder Benutzer gehört zu einer oder mehreren Gruppen, wobei jede Gruppe durch seine GID-Nummer identifiziert wird. Jede Datei hat eine Eigentümer-UID und eine Gruppen-Eigentümer-GID. Die drei klassischen Unix-Dateiberechtigungssätze sind:

  • ein Satz von Berechtigungen für den Eigentümer, identifiziert durch die UID-Nummer des Eigentümers
  • ein Satz von Berechtigungen für den Gruppenbesitzer, identifiziert durch die GID-Nummer der Gruppe
  • eine Reihe von Berechtigungen für alle anderen

Um auf den Stick zugreifen zu können, ohne die Berechtigungen anpassen zu müssen, müssen Sie sicherstellen, dass alle auf dem Stick erstellten Dateien und Verzeichnisse automatisch über nicht einschränkende Berechtigungen verfügen. Das Problem ist, dass die Berechtigungen für neu erstellte Dateien durch den Wert umask gesteuert werden ... und Sie möchten ihn nicht wirklich in 000 Ändern, um Dateien auf dem USB-Stick und zu erstellen Zurück zum Standardwert (normalerweise 002 oder 022) für den normalen Gebrauch. Ein einzelner Fehler kann dazu führen, dass Sie eine wichtige Konfigurationsdatei mit weit geöffneten Berechtigungen erstellen, die die Sicherheit Ihres Benutzerkontos gefährden oder andere kleinere Probleme verursachen kann.

Wenn Sie sicherstellen können, dass die UID-Nummer Ihres normalen Benutzers auf allen Linux-Systemen gleich ist und Sie sich nur um den Zugriff für diesen einen Benutzer kümmern (natürlich plus root), können Sie den USB-Stick einfach auf ext4 formatieren. Mounten Sie es zum ersten Mal und weisen Sie Ihrem regulären Benutzerkonto den Besitz seines Stammverzeichnisses zu, bevor Sie das Dateisystem verwenden.

Angenommen, /dev/sdX1 Ist die USB-Stick-Partition, in der Sie das Dateisystem erstellen möchten, und <username> Ist Ihr Benutzername, können Sie dies tun, wenn Sie den USB-Stick für die Verwendung einrichten:

Sudo mkfs.ext4 /dev/sdX1
Sudo mount /dev/sdX1 /mnt
Sudo chown <username>: /mnt
Sudo umount /mnt

Wenn Sie jedoch nicht garantieren können, dass UID/GID-Nummern übereinstimmen, und/oder mehrere Benutzer den USB-Stick verwenden möchten, müssen Sie nach dem Erstellen von ext4 etwas komplizierteres, aber dennoch einmaliges ausführen Dateisystem auf dem Stick.

Wir müssen ein Standard-ACL im Stammverzeichnis des USB-Stick-Dateisystems festlegen, das jedem in jeder neuen Datei oder jedem neuen Verzeichnis vollen Zugriff zuweist. Um sicherzustellen, dass der Stick mit aktivierter ACL-Unterstützung gemountet wird, müssen wir tune2fs Verwenden, um die in den Metadaten des Dateisystems gespeicherten Standard-Mount-Optionen anzupassen.

Sudo mkfs.ext4 /dev/sdX1
Sudo tune2fs -o acl /dev/sdX1
Sudo mount /dev/sdX1 /mnt
Sudo chown <username>: /mnt
chmod 777 /mnt
setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /mnt
Sudo umount /mnt

Angenommen, alle Ihre Systeme unterstützen ACLs auf ext4-Dateisystemen und jedes von Ihnen verwendete Tool zum Mounten von Wechselmedien ignoriert die Mount-Option acl nicht. Sie sollten jetzt einen USB-Stick haben, auf dem alle Dateien erstellt wurden Es hat Berechtigungen -rw-rw-rw- und alle erstellten Unterverzeichnisse sind drwxrwxrwx+. Das Pluszeichen zeigt an, dass das Unterverzeichnis über eine ACL verfügt: Der für das Stammverzeichnis des Sticks konfigurierte benutzerdefinierte Standardberechtigungssatz wird auch von den Unterverzeichnissen geerbt und verhält sich gleich.

Die Eigentümer-UID/GID stimmt weiterhin mit der UID und der primären GID des Benutzers überein, der die Datei im Dateisystem erstellt hat. Aufgrund der entspannten Datei- und Verzeichnisberechtigungen sollte dies jedoch kein großes Problem darstellen.

Das einzige Problem, das ich erwarten könnte, ist, dass Kopieren Dateien auf den USB-Stick standardmäßig versuchen, die Dateiberechtigungen des Originals zu duplizieren, was Sie in diesem Fall nicht möchten.

Wenn Sie beispielsweise eine Datei auf System A mit den Berechtigungen -rw-r - r-- erstellen und auf den Stick kopieren, verschieben Sie den Stick mit nicht übereinstimmenden UID-Nummern nach System B. Sie können die Datei auf System B weiterhin lesen, sie jedoch nicht auf dem Stick überschreiben, ohne zuvor die Originaldatei explizit zu löschen oder umzubenennen. Sie können dies jedoch tun, solange Sie Schreibzugriff auf das Verzeichnis Verzeichnis, in dem sich die Datei befindet haben.

Dies kann tatsächlich eine nützliche Funktion sein: Wenn Sie dieselbe Datei auf mehreren Systemen ändern, werden Sie jedes Mal dazu gebracht, eine neue Version der Datei zu speichern, anstatt die One True File zu überschreiben ... und wenn die Datei wichtig ist, ist dies wichtig könnte tatsächlich eine gute Sache sein.

19
telcoM