Wie kann ich beim Mounten eines USB-Laufwerks unter Linux automatisch Schreibberechtigungen festlegen?

18

Wenn ich ein externes USB-Laufwerk unter Linux (CentOs4) einbinde, sind die Berechtigungen standardmäßig schreibgeschützt. Da sich auf dem Computer mehrere Benutzer befinden, die das externe Laufwerk verwenden müssen, möchte ich, dass jeder die rwBerechtigung für das gesamte Laufwerk hat. Ich möchte auch, dass sie das Laufwerk einbinden können, wenn der Computer versehentlich heruntergefahren wurde. Sie können sudo mountdas Laufwerk einbinden, aber dies gibt ihnen nur Leseberechtigung, und ich möchte es offensichtlich nicht zulassen sudo chmod.

Gibt es eine Standardeinstellung, die ich ändern kann, damit jede neue externe USB-Festplatte automatisch rwBerechtigungen erhält ?

Jonas
quelle

Antworten:

17

Der Schlüssel lautet umask = 0, um den Zugriff für alle Benutzer zu ermöglichen.

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask = 0 ist genug, uid und gid nur aus Gründen der Übersichtlichkeit, sodass Sie nicht mehr "root" -Besitzer als nötig sehen.


@ Toms Antwort (Schreiben von / etc / fstab) ermöglicht das Überspringen sudound wenn Sie dort umask = 0 als zusätzliche Option schreiben, erhalten Sie das Beste aus beiden Welten:

Mit diesem in / etc / fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

Damit können Sie einfach laufen

mount /dev/something

und jeder hat zugriff auf alle dateien.


Hier ist ein technischer Hinweis, wenn Sie Details wissen möchten:

Wie man mountgesagt, 'umask = 0' stellt sicher, dass keine zusätzlichen Regeln für den Dateizugriffsmodus gelten. Für FAT-Dateisysteme (die am häufigsten auf USB-Datenträgern verwendet werden) ist kein Zugriffsmodus gespeichert. In Ihrem aktuellen Prozess ist jedoch ein umask-Wert festgelegt. Sie können ihn sehen, wenn Sie nur umaskim Terminal ausgeführt werden. mountverwendet dies als Standard und entfernt den Zugriffsmodus Ihres umask-Werts aus allen Dateien auf der bereitgestellten Festplatte. Die am häufigsten verwendeten umask-Werte sind (oktal) 022 - keine Gruppen- und andere Schreibvorgänge und 027 - keine Gruppenschreibvorgänge, keine anderen Zugriffsvorgänge.

temoto
quelle
Ich erhalte eine Fehlermeldung mit 'Bad Option', wenn ich umask=0 0 0einen Eintrag in fstab hinzufüge . Muss der umask-Eintrag der letzte Eintrag sein? Was macht der managed=0 0 0Eintrag, der aktuell zuletzt ist?
Jonas
1
FWIW, die Option umask ist eine reine VFAT-Option, dh die Lösung hilft, solange der USB-Speicher das VFAT-Dateisystem verwendet (was nicht mein Fall war).
Tomislav Nakic-Alfirevic
2
Vielen Dank. Aber ich musste es ändern, damit es funktioniert: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhereEs funktioniert nur, ohne den gid-Parameter zu setzen.
Nippey
2

Fügen Sie einen Eintrag zu / etc / fstab hinzu. Hier ist ein Eintrag, den ich vor ein paar Stunden für mein Seagate-USB-Laufwerk hinzugefügt habe:

UUID = 4ACC734ECC733375 / media / Linux ext3 errors = remount-ro, Standardwerte, Benutzer, noatime, nodiratime 0 0

Der Schlüssel hier ist der "Benutzer" -Eintrag, mit dem Benutzer das Laufwerk aktivieren und deaktivieren können.

Bearbeiten: Dies funktioniert für bestimmte Laufwerke. Ich weiß nicht, ob es für alle Laufwerke mit einem Eintrag aktiviert werden kann .

Tom
quelle
Wenn ein Benutzer das Laufwerk aktiviert, erhalten dann auch alle anderen Benutzer die rwBerechtigung?
Jonas
1

Typ mount. Dies gibt den aktuellen Ort an, an dem es sich befindet. Hier ist meine Ausgabe.

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

Das letzte ist mein USB-Laufwerk, das von Linux Mint automouunted wurde.

Geben Sie jetzt ein

sudo umount /dev/sdf1

Dadurch wird das Laufwerk ausgehängt

jetzt wieder richtig montieren.

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
Rick
quelle