Каковы настройки монтирования по умолчанию для mount / fstab?

18

Каковы параметры монтирования по умолчанию для некорневого раздела?

Человек, входящий в "Маунт", говорит ...

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

... так что это может быть то, что мы ожидаем увидеть. Но, если я что-то упустил, это не то, что происходит.

У меня есть раздел ext3 с пометкой «NewHome20G», который система видит как / dev / sdc6. Это мы можем видеть из ...

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

У меня есть запись в fstab следующим образом ...

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

Обратите внимание на настройки параметров, которые указаны в этой строке fstab.

Теперь я смотрю, как раздел монтируется после загрузки ...

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

... поэтому, когда файловая система монтируется, указанные мной параметры exec & users, похоже, игнорируются.

Просто чтобы быть уверенным, я размонтирую sdc6, перемонтирую его и снова посмотрю на параметры монтирования ...

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]

.... тот же результат

Теперь я снова размонтирую раздел, перемонтирую его с указанием опции exec и посмотрю на результат ...

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]

... и здесь опция exec наконец вступила в силу, а настройка noexec исчезла.

Просто для интереса я перемонтирую раздел с опцией по умолчанию

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]

Noexec вернулся, поэтому он выглядит очень похоже на rw, noexec, nosuid, nodev - параметры по умолчанию, а НЕ то, что говорит человек.

Почему это важно?

У меня есть папка, полная полезных скриптов, хранящихся на диске с данными. Поскольку этот диск смонтирован noexec, эти сценарии не будут запускаться, даже если все они были установлены с помощью chmod 777. Я могу обойти это несколькими способами, но разочаровывает, что запись man кажется неправильной.

Я что-то упустил здесь очевидное или параметры Ubuntu по умолчанию изменились по сравнению с тем, что было несколько версий назад?

Джон Крейк
источник

Ответы:

18

Руководство правильное . Ваша проблема в том, что, возможно, вы не учли 3 важные детали:

  • usersuser) подразумевает варианты noexec, nosuidи nodev

  • Если не переопределено последующими опциями

  • Варианты заказа имеют значение;)

Поэтому, когда вы используете rw,nosuid,nodev,exec,usersв своем fstab , последний параметр, usersset noexec,nosuid,nodev, таким образом отключает ваш exec(а также делает ваш nosuid,nodevизбыточный).

Результат, как и ожидалось, есть rw,noexec,nosuid,nodev.

И нет, usersне был проигнорирован, он просто не отображается в mountвыводе списка. Но любой пользователь может размонтировать его и снова смонтировать. Попытайся!

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будет показывать только что-то, связанное с пользователем, если user( не users ) используется, и обычный пользователь без полномочий root монтирует это, например так:

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

Также обратите внимание, что при использовании userбез noauto, раздел будет автоматически монтироваться (с правами root) при загрузке. Таким образом, пока root не размонтирует его, никто не сможет размонтировать или (перемонтировать).

Тем не менее, я думаю, что вы уже нашли свое решение: просто измените порядок ваших опций, и все будет работать нормально:

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

Обратите внимание , как execэто после users . И тоже rw,nosuid,nodevне нужно. rwуже используется по умолчанию, а остальные автоматически включаютсяusers

И результат:

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

Это означает, что любой пользователь, root или не root, может подключить и отключить его независимо от того, кто ранее подключал или отключал его. И исполняемые файлы тоже работают :)

MestreLion
источник
Вы имели в виду "... при использовании userбез auto, раздел будет автоматически смонтирован ..."?
Андреас Дж.
@AndreasJ. Нет, я имел в виду noauto. autoэто уже поведение по умолчанию, так что без так noautoже, как с auto: раздел будет автоматически установлен.
MestreLion
Извините, я неправильно понял ваше предложение. Это имеет смысл!
Андреас Дж.