Quais são as configurações de montagem padrão para mount / fstab?

16

Quais são as opções de montagem padrão para uma partição não raiz?

A entrada do homem para montar diz ...

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

... então isso pode ser o que esperamos ver. Mas, a menos que eu esteja sentindo falta de algo, não é o que acontece.

Eu tenho uma partição ext3 chamada "NewHome20G" que é vista como / dev / sdc6 pelo sistema. Isso podemos ver de ...

[email protected]:~# blkid | grep NewHome20G
/dev/sdc6: LABEL="NewHome20G" UUID="d024bad5-906c-46c0-b7d4-812daf2c9628" TYPE="ext3" 

Eu tenho uma entrada no fstab da seguinte forma ...

[email protected]:~# cat /etc/fstab | grep NewHome
LABEL=NewHome20G        /media/NewHome20G        ext3         rw,nosuid,nodev,exec,users     0  2

Observe as configurações de opção especificadas nessa linha fstab.

Agora, vejo como a partição é montada após a inicialização ...

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

... assim, quando o sistema de arquivos é montado, o exec & amp; as opções de usuários que eu especifiquei parecem ter sido ignoradas.

Só para ter certeza, eu desmonto o sdc6, remonto e vejo novamente as opções de montagem ...

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

.... mesmo resultado

Agora eu desmonto a partição novamente, remodela-a especificando a opção exec e vejo o resultado ...

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

... e aqui a opção exec finalmente entrou em vigor e a configuração noexec desapareceu.

Apenas por interesse, montei novamente a partição com a opção de padrões

[email protected]:~# umount /dev/sdc6
[email protected]:~# mount /dev/sdc6 -o defaults
[email protected]:~# mount -l | grep sdc6
/dev/sdc6 on /media/NewHome20G type ext3 (rw,noexec,nosuid,nodev) [NewHome20G]
O noexec está de volta, então parece muito com rw, noexec, nosuid, nodev são as opções padrão que NÃO são o que o homem diz.

Por que isso importa?

Eu tenho uma pasta cheia de scripts úteis armazenados em um disco de dados. Porque esse disco está montado noexec esses scripts não serão executados, mesmo que tenham sido definidos com o chmod 777. Eu posso resolver isso de várias maneiras, mas é decepcionante que a entrada do cara pareça estar errada.

Eu perdi algo óbvio aqui ou as opções padrão no Ubuntu mudaram do que eram algumas versões atrás?

    
por John Craick 31.08.2012 / 17:38

1 resposta

16

O manual está correto . Seu problema é que talvez você não tenha explicado três detalhes importantes:

  • users (e user ) implica nas opções noexec , nosuid e nodev

  • A menos que seja substituído por subseqüentes opções

  • As opções order são importantes;)

Então, quando você usa rw,nosuid,nodev,exec,users em seu fstab , a última opção, users , define noexec,nosuid,nodev , desativando assim seu exec (e também tornando seu nosuid,nodev redundante) .

O resultado, como esperado, é rw,noexec,nosuid,nodev .

E não, users não foi ignorado, ele normalmente não é exibido na saída de listagem mount . Mas qualquer usuário pode desmontá-lo e montá-lo novamente. Experimente!

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

mount mostrará apenas algo relacionado ao usuário se user ( não users ) for usado e um usuário comum não-root o montar assim:

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

Observe também que, ao usar user sem noauto , a partição será montada automaticamente (por root) na inicialização. Então, até a raiz desmontar, ninguém será capaz de desmontar ou (re) montar.

Dito isso, eu acho que você já descobriu sua solução: simplesmente mude a ordem das suas opções e tudo funcionará bem:

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

Observe como exec é após users . E também rw,nosuid,nodev não é necessário. rw já é um padrão e os outros são ativados automaticamente por users

E o resultado é:

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

Qualquer usuário, raiz ou não-raiz, pode montá-lo e desmontá-lo, independentemente de quem o montou ou desmontou anteriormente. E executáveis também funcionam:)

    
por MestreLion 19.09.2012 / 23:21