# Option de la commande mount: quelle différence entre un masque de droit et l'option noexec?

**URL:** <https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454>\
**Category:** Support Debian\
**Tags:** mount\
**Created:** [Octobre 3, 2021, 8:29 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454 "2021-10-03T20:29:24Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![petitchat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@petitchat](https://www.debian-fr.org/u/petitchat)\
**Post date:** [Octobre 3, 2021, 8:29 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/1 "2021-10-03T20:29:24Z")

</div>

Bonjour, merci d’avance pour vos réponse. Je cherche à monter un disque réseau cifs et j’ai remarque que la commande mount aime bien qu’on soit le plus précis possible. C’est un disque contenant de la data donc à interdire en exécution et en écriture, aussi j’ai configuré file\_mode=0444. En lisant la doc j’ai vu l’option «&nbsp;noexec&nbsp;» qui interdit aussi l’exécution des fichiers binaires sur le disque.  
Quelle est la différence entre un masque 0444 et «&nbsp;noexec&nbsp;» ?  
Merci d’avoir lu ce poste

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Octobre 4, 2021, 3:46 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/2 "2021-10-04T03:46:22Z")

</div>

Bonjour,

Si je comprends bien le manuel de `mount`, l’option `noexec` est l’option qui doit être disponible sur tous les systèmes de fichiers montables avec la commande `mount`.

```nohighlight
FILESYSTEM-INDEPENDENT MOUNT OPTIONS
[…]
       noexec Do not permit direct execution of any binaries on the mounted filesystem.

```

L’option `file_mode`, quant à elle, n’est pas dans les options génériques, c’est propres aux systèmes de fichiers qui ne gèrent pas les droits d’accès, comme `cifs` et `vfat`, par exemple.

---

<div class="post-metadata">

**Author:** ![petitchat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@petitchat](https://www.debian-fr.org/u/petitchat)\
**Post date:** [Octobre 4, 2021, 1:21 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/3 "2021-10-04T13:21:24Z")

</div>

Salut Almtesh, je te remercie vivement pour ta réponse claire et rapide et l’intérêt que tu as porté à ma question. Ok je comprends la différence maintenant, «&nbsp;noexec&nbsp;» est une option de mount qui fonctionne pour tout les systèmes de fichier tandis que File\_mode est spécifique au système cifs. Par contre je ne comprends pas si les options se «&nbsp;chevauchent&nbsp;», en d’autres termes, si j’ai déjà attribué un file\_mode=0222 par exemple, qui interdit l’exécution au niveau des droits, est-ce utile de spécifier en plus l’option «&nbsp;noexec&nbsp;» ?

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Octobre 4, 2021, 5:06 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/4 "2021-10-04T17:06:00Z")

</div>

À titre personnel, je te recommande de n’utiliser qu’une seule des deux options à la fois.  
En général, il vaut mieux éviter de « surdéfinir » un comportement, la duplication est à éviter au maximum, tu peux te retrouver avec un comportement innatendu en cas de modification ultérieure.  
Je te conseille aussi de faire au plus simple, si tu ne veux qu’empêcher l’exécution, préfère l’option `noexec`.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Octobre 4, 2021, 6:00 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/5 "2021-10-04T18:00:22Z")

</div>

Bonsoir,  
Almtesh a raison, mount n’a pour but que de qualifier les droits et options à minima, pas à maxima. c’est ensuite au niveau des droits sur les fichiers que le detail se fera.

---

<div class="post-metadata">

**Author:** ![petitchat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/b782af/32.png) [@petitchat](https://www.debian-fr.org/u/petitchat)\
**Post date:** [Octobre 5, 2021, 3:31 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/6 "2021-10-05T03:31:07Z")

</div>

Merci pour ces réponses claires.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Octobre 5, 2021, 7:44 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/7 "2021-10-05T07:44:56Z")

</div>

@Zargos : Je ne comprends pas ta réponse. Ces deux options ne font pas la même chose.  
«&nbsp;file\_mode&nbsp;» définit le «&nbsp;mode&nbsp;» (bits de «&nbsp;permission&nbsp;» Unix) apparent des fichiers, qui n’est qu’un élément parmi d’autres affectant les permissions effectives (l’option de montage «&nbsp;noexec&nbsp;» ou les ACL POSIX en sont d’autres). Ne pas oublier non plus que «&nbsp;file\_mode&nbsp;» définit le mode visible de tous les fichiers du montage CIFS et est transféré lors de la copie de ceux-ci. Il n’est pas forcément souhaitable que les fichiers de données apparaissent avec le bit exécutable. A noter que d’après la page de manuel de `mount.cifs`, l’option «&nbsp;file\_mode&nbsp;» n’a d’effet que si le serveur CIFS ne supporte pas les extensions Unix.

Il m’apparaît donc souhaitable d’utiliser à la fois «&nbsp;noexec&nbsp;» pour interdire l’exécution et «&nbsp;file\_mode&nbsp;» pour définir le mode visible des fichiers si le serveur ne supporte pas les extensions Unix.

---

<div class="post-metadata">

**Author:** ![nledez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/ea5d25/32.png) [@nledez](https://www.debian-fr.org/u/nledez)\
**Post date:** [Octobre 6, 2021, 8:02 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/8 "2021-10-06T08:02:18Z")

</div>

Pour compléter les explications de @PascalHambourg

Les options du type `file_mode` sont là pour les filesystems qui n’ont pas de possibilité d’avoir un système de droit «&nbsp;POSIX&nbsp;» user/group/other et RWX. Donc, on force des droits sur tout le système de fichier.

Par contre, l’option `no_exec` est plus là pour protéger votre système. Par exemple, je monte souvent mes `/tmp`, `/home` etc avec cette option. Cela permet de protéger votre système contre certaines attaques. On vous pose un binaire malveillant, puis on l’exécute. Bon, je mets de moins en moins cette option (cloud toussa). Et c’est relativement simple à contourner pour un attaquant «&nbsp;sérieux&nbsp;».

Mes 2 ¢

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Octobre 6, 2021, 6:53 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/9 "2021-10-06T18:53:28Z")

</div>

> [@nledez](#):
>
> Cela permet de protéger votre système contre certaines attaques.

effectivement c’est pas mal utilisé dans cette optique là; sachant que la sécurité d’un système ne dépend d’une application qui fait tout, mais de plein de petites actions, paramétrages qui permettent pas leur somme de contrer un certain nombre d’attaque ou de les ralentir. sachant que dans le pirate le temps est l’ennemi de la réussite

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Octobre 7, 2021, 9:43 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/10 "2021-10-07T09:43:42Z")

</div>

Il faudrait surtout préciser que l’absence du bit d’exécution sur un fichier n’empêche en rien son exécution par un utilisateur qui à les droits en lecture.

---

<div class="post-metadata">

**Author:** ![libresurf](https://www.debian-fr.org/user_avatar/www.debian-fr.org/libresurf/32/5259_2.png) [@libresurf](https://www.debian-fr.org/u/libresurf)\
**Post date:** [Octobre 11, 2021, 8:28 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/11 "2021-10-11T08:28:12Z")

</div>

Bonjour @anon70622873 ,  
Tu peux préciser comment cela est possible ?

---

<div class="post-metadata">

**Author:** ![anon96191775](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/71c47a/32.png) [@anon96191775](https://www.debian-fr.org/u/anon96191775)\
**Post date:** [Octobre 11, 2021, 8:37 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/12 "2021-10-11T08:37:22Z")

</div>

> [@libresurf](#):
>
> Tu peux préciser comment cela est possible ?

Par exemple dans le cas d’un script en le lançant via l’interpréteur :

```plaintext
python /tmp/machin-pas-exécutable.py

```

Ou simplement en copiant le fichier dans un autre chemin qui ne soit pas monté avec noexec :

```plaintext
cp /tmp/machin-pas-exécutable.py ~/bin/
chmod +x ~/bin/machin-pas-exécutable.py
~/bin/machin-pas-exécutable.py

```

Je n’ai pas testé, mais je me demande si le built-in shell `exec` ne peut pas aussi être utilisé pour contourner un montage en noexec :

```plaintext
exec /tmp/machin-pas-exécutable.py

```

---

<div class="post-metadata">

**Author:** ![anon70622873](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/278dde/32.png) [@anon70622873](https://www.debian-fr.org/u/anon70622873)\
**Post date:** [Octobre 11, 2021, 9:01 UTC](https://www.debian-fr.org/t/option-de-la-commande-mount-quelle-difference-entre-un-masque-de-droit-et-loption-noexec/85454/13 "2021-10-11T09:01:28Z")

</div>

Effectivement il suffit de connaître l’interpréteur à utiliser. Pour les fichiers en langage interprété (bash, python, php, etc.) c’est trivial.  
Autre exemple avec un binaire ELF :

```auto
$ sudo chmod -x /bin/ls

```

Je retire le bit d’exécution de la commande ls, conséquence :

```auto
$ ls
bash: /bin/ls: Permission non accordée

```

Je regarde de quel type de fichier il s’agit :

```auto
$ file /bin/ls
/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=2f15ad836be3339dec0e2e6a3c637e08e48aacbd, for GNU/Linux 3.2.0, stripped

```

Je connais maintenant l’interpréteur à utiliser :

```auto
$ /lib64/ld-linux-x86-64.so.2 /bin/ls /             
bin cdrom dev home lib lib64 media opt root sbin sys usr vmlinuz

```

On peut dire que le bit d’exécution sur les fichiers n’est là que pour des raisons de commodité. Par contre sur les dossiers son absence empêche d’y accéder.

Remarque : le _exec_ du shell remplace le shell courant par la commande spécifiée, ce n’est donc pas utilisable pour cela. cf `help exec`
