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 ...

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

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

root@john-pc1204:~# 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 ...

root@john-pc1204:~# 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 ...

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]

.... mesmo resultado

Agora eu desmonto a partição novamente, remodela-a especificando a opção exec e vejo o 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]

... 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

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]
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!

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 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:

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

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 é:

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

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