Quels sont les paramètres de montage par défaut pour mount / fstab?

18

Quelles sont les options de montage par défaut pour une partition non root?

L'entrée homme pour la monture dit ...

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

... donc c'est peut-être ce que nous attendons. Mais, à moins que je manque quelque chose, ce n'est pas ce qui se passe.

J'ai une partition ext3 intitulée "NewHome20G" qui est considérée comme / dev / sdc6 par le système. Cela nous pouvons voir de ...

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

J'ai une entrée dans fstab comme suit ...

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

Notez les paramètres d'option qui sont spécifiés dans cette ligne fstab.

Maintenant, je regarde comment la partition est réellement montée après le démarrage ...

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

... donc, lorsque le système de fichiers est monté, les options exec & users que j'ai spécifiées semblent avoir été ignorées.

Juste pour être sûr, je démonte sdc6, le remonte et regarde à nouveau les options de montage ...

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]

.... même résultat

Maintenant, je démonte à nouveau la partition, la remonte en spécifiant l'option exec et regarde le résultat ...

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]

... et ici, l'option exec a finalement pris effet et le paramètre noexec a disparu.

Juste pour l'intérêt, je re-monte la partition avec l'option par défaut

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]

Le noexec est de retour, donc il ressemble beaucoup à rw, noexec, nosuid, nodev sont les options par défaut qui ne sont PAS ce que l'homme dit.

Pourquoi est-ce important?

J'ai un dossier plein de scripts utiles stockés sur un disque de données. Parce que ce disque est monté noexec, ces scripts ne fonctionneront pas, même s'ils ont tous été définis avec chmod 777. Je peux contourner cela de plusieurs manières, mais il est décevant que l'entrée man semble erronée.

Ai-je oublié quelque chose d'évident ici ou les options par défaut dans Ubuntu ont-elles changé par rapport à ce qu'elles étaient il y a quelques versions?

John Craick
la source

Réponses:

18

Le manuel est correct . Votre problème est que peut-être vous n'avez pas tenu compte de 3 détails importants:

  • users(et user) implique les options noexec, nosuidet nodev

  • Sauf si remplacé par les options suivantes

  • L' ordre des options compte;)

Ainsi, lorsque vous utilisez rw,nosuid,nodev,exec,usersdans votre fstab , la dernière option,, usersdéfinit noexec,nosuid,nodev, désactivant ainsi votre exec(et rendant également votre nosuid,nodevredondant).

Le résultat, comme prévu, est rw,noexec,nosuid,nodev.

Et non, usersn'a pas été ignoré, il n'apparaît généralement pas dans la mountliste des résultats. Mais tout utilisateur peut le démonter et le remonter. Essayez!

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

mountn'affichera quelque chose lié à l'utilisateur que si user( non users ) est utilisé, et un utilisateur ordinaire non root le monte, comme ceci:

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

Notez également que lors de l'utilisation usersans noauto, la partition sera montée automatiquement (par root) au démarrage. Donc jusqu'à ce que root le démonte, personne ne pourra démonter ou (re) monter.

Cela dit, je suppose que vous avez déjà trouvé votre solution: changez simplement l'ordre de vos options et tout fonctionnera bien:

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

Remarquez comment execc'est après users . Et rw,nosuid,nodevn'est pas non plus nécessaire. rwest déjà par défaut, et les autres sont automatiquement activés parusers

Et le résultat est:

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 ~ $

Cela signifie que n'importe quel utilisateur, root ou non root, peut le monter et le démonter, peu importe qui l'a déjà monté ou démonté. Et les exécutables fonctionnent aussi :)

MestreLion
la source
Vouliez-vous dire "... lors de l'utilisation usersans auto, la partition sera montée automatiquement ..."?
Andreas J.
@AndreasJ. Non, je voulais dire noauto. autoest déjà le comportement par défaut, donc sans noautoest le même qu'avec auto: la partition sera montée automatiquement.
MestreLion
Désolé, j'ai mal lu votre phrase. C'est parfaitement logique!
Andreas J.