Was sind die Standard-Mount-Einstellungen für mount / fstab?

18

Was sind die Standardeinhängeoptionen für eine Nicht-Root-Partition?

Der Mann Eintrag für Berg sagt ...

defaults - use default options: rw, suid, dev, exec, auto, nouser, and async.

... so könnte es sein, was wir erwarten zu sehen. Aber wenn ich nichts vermisse, passiert das nicht.

Ich habe eine ext3-Partition mit der Bezeichnung "NewHome20G", die vom System als / dev / sdc6 angezeigt wird. Das können wir sehen aus ...

root@john-pc1204:~# blkid | grep NewHome20G
/dev/sdc6: LABEL="NewHome20G" UUID="d024bad5-906c-46c0-b7d4-812daf2c9628" TYPE="ext3" 

Ich habe einen Eintrag in fstab wie folgt ...

root@john-pc1204:~# cat /etc/fstab | grep NewHome
LABEL=NewHome20G        /media/NewHome20G        ext3         rw,nosuid,nodev,exec,users     0  2

Beachten Sie die Optionseinstellungen, die in dieser fstab-Zeile angegeben sind.

Jetzt schaue ich mir an, wie die Partition nach dem Booten tatsächlich gemountet wird ...

root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

... also, wenn das Dateisystem gemountet wird, scheinen die von mir angegebenen exec & users-Optionen ignoriert worden zu sein.

Nur um sicher zu gehen, hänge ich sdc6 aus, hänge es wieder ein und schaue mir die Einhängeoptionen noch einmal an ...

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

.... gleiches Ergebnis

Jetzt hänge ich die Partition wieder aus, hänge sie unter Angabe der exec-Option wieder ein und schaue mir das Ergebnis an ...

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6 -o exec
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,nosuid,nodev) [NewHome20G]

... und hier hat die exec-Option endlich Wirkung und die noexec-Einstellung ist verschwunden.

Aus Interesse habe ich die Partition mit der Standardoption neu gemountet

root@john-pc1204:~# umount /dev/sdc6
root@john-pc1204:~# mount /dev/sdc6 -o defaults
root@john-pc1204:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]

Das noexec ist zurück, also sieht es so aus, als ob rw, noexec, nosuid, nodev die Standardoptionen sind, was NICHT das ist, was man sagt.

Warum ist das wichtig?

Ich habe einen Ordner voller nützlicher Skripte auf einer Datendiskette gespeichert. Da diese Festplatte noexec gemountet ist, werden diese Skripte nicht ausgeführt, obwohl sie alle mit chmod 777 eingestellt wurden. Ich kann das auf verschiedene Arten umgehen, aber es ist enttäuschend, dass der man-Eintrag falsch zu sein scheint.

Habe ich hier etwas Offensichtliches verpasst oder haben sich die Standardoptionen in Ubuntu von denen vor einigen Versionen geändert?

John Craick
quelle

Antworten:

18

Das Handbuch ist korrekt . Ihr Problem ist, dass Sie möglicherweise drei wichtige Details nicht berücksichtigt haben:

  • users(und user) impliziert die Optionen noexec, nosuidund nodev

  • Sofern nicht durch nachfolgende Optionen überschrieben

  • Optionen auftragsangelegenheiten ;)

Also wenn Sie rw,nosuid,nodev,exec,usersin Ihrer fstab , die letzte Option, users, Sets noexec,nosuid,nodev, so deaktivieren Sie Ihre exec(und auch Ihre Herstellung nosuid,nodevredundant).

Das Ergebnis ist wie erwartet rw,noexec,nosuid,nodev.

Und nein, userswurde nicht ignoriert, es wird nur normalerweise nicht in mountder Ausgabe der Liste angezeigt. Jeder Benutzer kann es jedoch wieder aushängen und wieder einhängen. Versuch es!

rodrigo@desktop ~ $ mount /dev/sda6                     # ordinary user
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev)
rodrigo@desktop ~ $ /mnt/mint10/bin/echo it works       # noexec will deny this
bash: /mnt/mint10/bin/echo: Permission denied

mountZeigt nur etwas an, das mit dem Benutzer zusammenhängt, wenn user( nicht users ) verwendet wird, und ein gewöhnlicher Benutzer ohne Rootberechtigung stellt es wie folgt bereit:

rodrigo@desktop ~ $ mount /dev/sda6         # ordinary user
rodrigo@desktop ~ $ mount | grep /dev/sda6  # it will list current "owner"
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev,user=rodrigo)
rodrigo@desktop ~ $ umount /dev/sda6
rodrigo@desktop ~ $ sudo mount /dev/sda6
rodrigo@desktop ~ $ mount | grep /dev/sda6  # since owner=root, it won't show
/dev/sda6 on /mnt/mint10 type ext4 (rw,noexec,nosuid,nodev)
rodrigo@desktop ~ $ umount /dev/sda6        # only mounter can unmount
umount: only root can unmount LABEL=MINT10 from /mnt/mint10

Beachten Sie auch, dass bei Verwendung von userwithout noautodie Partition beim Booten automatisch (von root) gemountet wird. Solange Root die Bereitstellung nicht aufhebt, kann niemand die Bereitstellung aufheben oder sie (erneut) aktivieren.

Das heißt, ich denke, Sie haben bereits Ihre Lösung herausgefunden: Ändern Sie einfach die Reihenfolge Ihrer Optionen und alles wird gut funktionieren:

LABEL=NewHome20G  /media/NewHome20G  ext3  users,exec  0  2

Beachten Sie, wie execes danach ist users . Und rw,nosuid,nodevist auch nicht notwendig. rwist bereits eine Standardeinstellung, und die anderen werden automatisch von aktiviertusers

Und das Ergebnis ist:

rodrigo@desktop ~ $ mount /dev/sda6                  # user mount
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,nosuid,nodev)
rodrigo@desktop ~ $ /mnt/mint10/bin/echo it works    # exec works
it works
rodrigo@desktop ~ $ sudo umount /dev/sda6            # root unmount
rodrigo@desktop ~ $ sudo mount /dev/sda6             # root mount
rodrigo@desktop ~ $ mount | grep /dev/sda6
/dev/sda6 on /mnt/mint10 type ext4 (rw,nosuid,nodev)
rodrigo@desktop ~ $ umount /dev/sda6                 # user unmount
rodrigo@desktop ~ $

Dies bedeutet, dass jeder Benutzer (Root oder Nicht-Root) die Bereitstellung aktivieren und deaktivieren kann, unabhängig davon, wer sie zuvor aktiviert oder deaktiviert hat. Und ausführbare Dateien funktionieren auch :)

MestreLion
quelle
Meinten Sie "... bei Verwendung userohne autowird die Partition automatisch gemountet ..."?
Andreas J.
@AndreasJ. Nein, ich meinte noauto. autoist bereits das Standardverhalten, also ist without noautodasselbe wie with auto: Die Partition wird automatisch gemountet.
MestreLion
Entschuldigung, ich habe Ihren Satz falsch verstanden. Es macht vollkommen Sinn!
Andreas J.