web-dev-qa-db-fra.com

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

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

L'entrée homme pour mount dit ...

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

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

J'ai une partition ext3 appelée "NewHome20G" qui est considérée comme/dev/sdc6 par le système. On peut voir ça 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 spécifiés dans cette ligne fstab.

Maintenant, je regarde comment la partition est 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]

... ainsi, lorsque le système de fichiers est monté, les options de l'exécutif et des utilisateurs 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, je 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 votre 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, il ressemble donc beaucoup à rw, noexec, nosuid, nodev sont les options par défaut, ce qui n’EST 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é configurés avec chmod 777. Je peux résoudre ce problème de plusieurs manières, mais il est décevant que la saisie de l'homme semble être fausse.

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?

18
John Craick

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

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

  • Sauf indication contraire de ltérieurs options

  • Options ordre questions;)

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

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

Et non, users n'a pas été ignoré, il n'est généralement pas indiqué dans la sortie de la liste mount. Mais tout utilisateur peut le démonter et le remonter. Essayez le!

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

mount n'affichera quelque chose de lié à l'utilisateur que si user ( not = users) est utilisé et qu'un utilisateur ordinaire, non root, le monte, comme suit:

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, lorsque vous utilisez user sans noauto, la partition sera montée automatiquement (par la racine) au démarrage. Ainsi, jusqu'à ce que root le démonte, personne ne pourra démonter ou remonter.

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

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

Remarquez comment exec est après users. Et aussi rw,nosuid,nodev n'est pas nécessaire. rw est déjà un défaut et les autres sont automatiquement activés par users

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

Ce qui signifie que n'importe quel utilisateur, qu'il soit root ou non, peut le monter et le démonter, peu importe qui l'a précédemment monté ou démonté. Et les exécutables fonctionnent aussi :)

18
MestreLion