Wie kann ich als normaler Benutzer ein Linux-Dateisystem manuell mit Lese- / Schreibzugriff bereitstellen?

19

Dies mag wie eine blöde Frage erscheinen, aber bei den meisten Linux-Sachen scheint es mir, dass viele triviale Dinge nicht dokumentiert sind.

Wie auch immer, ich möchte einfach ein ext4-Dateisystem auf einen normalen Einhängepunkt in Ubuntu (/ media / whereever) mounten, der für den aktuell angemeldeten Benutzer, dh für mich, lesbar und beschreibbar ist.

Ich möchte nichts in / etc / fstab einfügen, ich möchte es nur jetzt manuell tun. Ich benötige Super-User-Rechte, um ein Gerät zu mounten, aber dann kann nur root dieses Mounten lesen und schreiben. Ich habe verschiedene Mount-Optionen ausprobiert und in fstab hinzugefügt, aber ohne Glück.

nicodemus13
quelle
Gibt es einen Grund, warum Sie es nicht irgendwo in Ihrem Home-Verzeichnis mounten möchten?
Robert S Ciaccio

Antworten:

13

Auf einem ext4-Dateisystem (wie ext2, ext3 und den meisten anderen Dateisystemen mit Unix-Ursprung) hängen die effektiven Dateiberechtigungen nicht davon ab, wer das Dateisystem gemountet hat, oder von den Mount-Optionen, sondern nur von den im Dateisystem gespeicherten Metadaten.

In Ubuntu sollte das Mounten automatisch erfolgen, wenn Sie die Diskette einlegen, oder Sie sollten in der Lage sein, auf ein Symbol zu klicken, um es zu mounten. Sie können auch installieren pmount, um Dateisysteme als normaler Benutzer über die Befehlszeile einzuhängen.

Wenn Sie ein austauschbares Dateisystem haben, das andere Benutzer-IDs als Ihr System verwendet, können Sie bindfs(im gleichnamigen Ubuntu-Paket) eine Ansicht jedes Dateisystems mit unterschiedlichen Eigentümern oder Berechtigungen bereitstellen. Das Wechseldateisystem muss bereits gemountet sein, zB auf /media/disk9; Wenn Sie dann als Eigentümer aller Dateien angezeigt werden möchten, können Sie sie ausführen

mkdir ~/disk9
sudo bindfs -u $(id -u) -g $(id -g) /media/disk9 ~/disk9
Gilles 'SO - hör auf böse zu sein'
quelle
Vielen Dank! Das hat bei mir mit ext3 geklappt. Beachten Sie, dass ich zuerst das ext3-Dateisystem in ein Mount-Verzeichnis mounten und dieses Verzeichnis dann mit bindfs in das endgültige Verzeichnis mounten musste.
Ilari Kajaste
8

Wenn Sie das ext4-Dateisystem bereitstellen, verwendet es die Berechtigungen, die in dieses Dateisystem eingebettet sind. Wenn Sie diese überschreiben möchten, verwenden Sie Folgendes:
1. Suchen Sie die UID des Benutzers, als den Sie id <username>einbinden möchten: und suchen Sie nach UID = <Benutzer-ID> (<Benutzername>) GID = <Gruppen-ID> (<Gruppenname>) 2 .sudo mount -o nosuid,uid=<userid>,gid=<groupid> /dev/whatever /media/wherever

Dadurch wird das Dateisystem eingehängt und der angegebene Benutzer als Eigentümer aller Dateien und die angegebene Gruppe als Gruppe für alle Dateien markiert. nosuidist eine Sicherheitsmaßnahme, die den Benutzer daran hindert, suid-Programme aufzurufen und sie zu verwenden, um root-Zugriff auf das System zu erhalten (dh eine suid-Version von bash auf dem Dateisystem). Das Hinzufügen der noexecOption bietet zusätzliche Sicherheit, verhindert jedoch, dass der Benutzer Dateien auf dem Dateisystem ausführt.

Hinweis: Wenn Sie nur versuchen, selbst mit dem Dateisystem zu interagieren, sollten Sie entweder die Berechtigungen auf dem Gerät korrigieren oder als Root mit ihm interagieren, wenn es sich nur um eine temporäre Sache handelt (dh um die Wiederherstellung einer fehlerhaften Installation).

Wenn dies zum Einbinden eines USB-Sticks oder eines anderen austauschbaren externen Laufwerks dient, sollten Sie das pmountSystem überprüfen, das den Vorgang für Sie automatisieren kann, oder es zumindest erheblich vereinfachen (dh pmount <device>die Ordner für Sie erstellen, es als Benutzer einbinden , und erlauben Ihnen, es als Ihr Benutzer abzuhängen)

Darth Android
quelle
1
Irgendeine Idee, ob dies auch mit EXT3 funktionieren sollte? Ich komme EXT3-fs: Unrecognized mount option "uid=1000" or missing valuein dmesg, wenn ich es mit ext3 versuche.
Ilari Kajaste
@Ilari: Es wird weder mit ext3 noch mit ext4 funktionieren. Die meisten Linux-Treiber für Unix-Dateisysteme verfügen nicht über UID- und GID-Zuordnungsoptionen.
Gilles 'SO- hör auf böse zu sein'
-1 Funktioniert nicht.
Ilari Kajaste
2

Sie können verwenden:

mount -o user /dev/devicenameund useroption in deiner fstab.

Andrey Regentov
quelle
1

Wenn Sie nicht in der Stimmung sind, Ihre / etc / fstab-Datei manuell zu bearbeiten, sollten Sie PySDM ausprobieren , um die Regeln für das regelmäßige Mounten Ihres ext4-Dateisystems zu definieren. Sie können es installieren, indem Sie das "pysdm" -Paket in Synaptic installieren oder indem Sie im Ubuntu Software Center nach "pysdm" suchen. Nach der Installation ist es unter System -> Administration -> Storage Device Manager verfügbar.

PySDM in Aktion

Zoot
quelle
1

Habe erst nach dem Lesen des letzten Kommentars auf http://ubuntuforums.org/showthread.php?t=2142284 gemerkt, dass man nur a tun musssudo chown -Rvf <user>:<group> <mountpoint>

Das ist alles was benötigt wird ...

SACHIN GARG
quelle
2
Dies ist eine destruktive Operation. Wenn Sie dies vor dem Mounten tun, hat dies keinen Einfluss auf den Dateieigentum des gemounteten Laufwerks. Wenn Sie dies nach dem Mounten tun, werden alle Berechtigungen überschrieben. Wenn das Laufwerk eine Linux-Installation enthält, können Sie es nach dem Aufheben der Bereitstellung nicht mehr starten, wenn Sie die Berechtigungen auf diese Weise ändern.
Warbo