¿Cuáles son las configuraciones de montaje predeterminadas para mount / fstab?

18

¿Cuáles son las opciones de montaje predeterminadas para una partición no root?

La entrada del hombre para el monte dice ...

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

... así que eso podría ser lo que esperamos ver. Pero, a menos que me falte algo, eso no es lo que sucede.

Tengo una partición ext3 etiquetada "NewHome20G" que es vista como / dev / sdc6 por el sistema. Esto lo podemos ver desde ...

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

Tengo una entrada en fstab de la siguiente manera ...

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

Tenga en cuenta la configuración de opciones que se especifica en esa línea fstab.

Ahora miro cómo se monta realmente la partición después del arranque ...

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

... entonces, cuando el sistema de archivos se monta, las opciones de exec y usuarios que especifiqué parecen haber sido ignoradas.

Solo para estar seguro, desmonto sdc6, lo vuelvo a montar y miro las opciones de montaje nuevamente ...

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]

.... mismo resultado

Ahora vuelvo a desmontar la partición, la vuelvo a montar especificando la opción de ejecución y miro el resultado ...

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]

... y aquí la opción exec finalmente entró en vigencia y la configuración noexec desapareció.

Solo por interés, vuelvo a montar la partición con la opción predeterminada

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]

El noexec está de vuelta, por lo que se ve muy parecido a rw, noexec, nosuid, nodev son las opciones predeterminadas, que NO es lo que el hombre dice.

¿Por qué importa esto?

Tengo una carpeta llena de scripts útiles almacenados en un disco de datos. Debido a que ese disco está montado noexec, esos scripts no se ejecutarán, a pesar de que todos se han configurado con chmod 777. Puedo solucionar esto de varias maneras, pero es decepcionante que la entrada man parezca estar equivocada.

¿Me he perdido algo obvio aquí o he cambiado las opciones predeterminadas en Ubuntu de lo que eran hace unas pocas versiones?

John Craick
fuente

Respuestas:

18

El manual es correcto . Su problema es que quizás no tuvo en cuenta 3 detalles importantes:

  • users(y user) implica las opciones noexec, nosuidy nodev

  • A menos que sea anulado por las opciones posteriores

  • El orden de opciones es importante;)

Entonces, cuando usa rw,nosuid,nodev,exec,usersen su fstab , la última opción users, establece noexec,nosuid,nodev, deshabilitando así exec(y también haciendo que sea nosuid,nodevredundante).

El resultado, como se esperaba, es rw,noexec,nosuid,nodev.

Y no, usersno se ignoró, simplemente no suele aparecer en la mountsalida de la lista. Pero cualquier usuario puede desmontarlo y volver a montarlo. ¡Intentalo!

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

mountsolo mostrará algo relacionado con el usuario si se usa user( no users ), y un usuario ordinario no root lo monta, de esta manera:

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

También tenga en cuenta que, cuando se usa usersin noauto, la partición se montará automáticamente (por raíz) en el arranque. Por lo tanto, hasta que root lo desmonte, nadie podrá desmontar o (re) montar.

Dicho esto, supongo que ya descubrió su solución: simplemente cambie el orden de sus opciones y todo funcionará bien:

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

Observe cómo execes después users . Y tampoco rw,nosuid,nodeves necesario. rwya es un valor predeterminado, y los demás se activan automáticamente porusers

Y el resultado es:

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

Es decir, cualquier usuario, root o no root, puede montarlo y desmontarlo, independientemente de quién lo haya montado o desmontado previamente. Y los ejecutables también funcionan :)

MestreLion
fuente
¿Querías decir "... cuando se usa usersin auto, la partición se montará automáticamente ..."?
Andreas J.
@AndreasJ. No, quise decir noauto. autoya es el comportamiento predeterminado, por lo que sin noautoes lo mismo que con auto: la partición se montará automáticamente.
MestreLion
Lo siento, leí mal tu oración. Tiene mucho sentido!
Andreas J.