Quali sono le impostazioni di montaggio predefinite per mount / fstab?


18

Quali sono le opzioni di montaggio predefinite per una partizione non root?

La voce man per mount dice ...

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

... quindi potrebbe essere quello che ci aspettiamo di vedere. Ma, a meno che non mi manchi qualcosa, non è quello che succede.

Ho una partizione ext3 etichettata "NewHome20G" che viene vista come / dev / sdc6 dal sistema. Questo possiamo vedere da ...

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

Ho una voce in fstab come segue ...

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

Nota le impostazioni delle opzioni specificate in quella linea fstab.

Ora guardo come viene effettivamente montata la partizione dopo l'avvio ...

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

... quindi, quando viene montato il filesystem, le opzioni exec e users specificate sembrano essere state ignorate.

Giusto per essere sicuro, smonto sdc6, lo rimonto e guardo di nuovo le opzioni di montaggio ...

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]

.... stesso risultato

Ora smonto di nuovo la partizione, rimontalo specificando l'opzione exec e guardo il risultato ...

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 qui l'opzione exec ha finalmente avuto effetto e l'impostazione noexec è svanita.

Solo per interesse, rimonto la partizione con l'opzione predefinita

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]

Il noexec è tornato, quindi sembra che rw, noexec, nosuid, nodev siano le opzioni predefinite che NON è ciò che dice l'uomo.

Perché è importante?

Ho una cartella piena di script utili memorizzati su un disco dati. Poiché quel disco è montato noexec, quegli script non funzioneranno, anche se sono stati tutti impostati con chmod 777. Posso lavorare su questo in diversi modi, ma è deludente che la voce man sembri essere sbagliata.

Ho perso qualcosa di ovvio qui o le opzioni predefinite in Ubuntu sono cambiate rispetto a quelle che erano alcune versioni fa?

Risposte:


18

Il manuale è corretta . Il tuo problema è che forse non hai tenuto conto di 3 dettagli importanti:

  • users(e user) implica le opzioni noexec, nosuide nodev

  • A meno che non venga sovrascritto dalle opzioni successive

  • L' ordine delle opzioni è importante;)

Quindi, quando usi rw,nosuid,nodev,exec,usersin fstab , l'ultima opzione users, imposta noexec,nosuid,nodev, disabilitando così il tuo exec(e anche rendendo nosuid,nodevridondante).

Il risultato, come previsto, è rw,noexec,nosuid,nodev.

E no, usersnon è stato ignorato, di solito non viene visualizzato mountnell'elenco degli output. Ma qualsiasi utente può smontarlo e rimontarlo di nuovo. Provalo!

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

mountmostrerà qualcosa correlato all'utente se viene utilizzato user( non users ) e un normale utente non root lo monta, in questo modo:

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

Si noti inoltre che, quando si utilizza usersenza noauto, la partizione verrà montata automaticamente (per root) all'avvio. Quindi fino a quando root non lo smonta, nessuno sarà in grado di smontare o (ri) montare.

Detto questo, immagino tu abbia già capito la tua soluzione: basta cambiare l'ordine delle opzioni e tutto funzionerà bene:

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

Si noti come execè dopo users . E inoltre rw,nosuid,nodevnon è necessario.rwè già un valore predefinito e gli altri vengono automaticamente attivati ​​dausers

E il risultato è:

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

Significa che qualsiasi utente, root o non root, può montarlo e smontarlo, indipendentemente da chi lo ha precedentemente montato o smontato. E anche gli eseguibili :)


Intendevi "... quando si usa usersenza auto, la partizione verrà montata automaticamente ..."?
Andreas J.,

@AndreasJ. No, intendevo noauto. autoè già il comportamento predefinito, quindi senza noautoè lo stesso di auto: la partizione verrà montata automaticamente.
MestreLion,

Scusa, ho letto male la tua frase. Ha perfettamente senso!
Andreas J.,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.