Pourquoi Linux nécessite qu'un utilisateur root/en utilisant Sudo/spécifiquement autorisé par montage afin de monter quelque chose? Il semble que la décision de savoir si pour permettre à un utilisateur de monter quelque chose doit être fondée sur leurs droits d'accès au volume source/partage réseau et au point de montage. Quelques utilisations pour non-root de montage sont montage des images système de fichiers à une direction appartenant à l'utilisateur et le montage d'un partage réseau dans un répertoire appartenant à l'utilisateur. Il semble que si l'utilisateur a le contrôle sur les deux côtés de la montagne équation tout doit être cool.
clarification de restriction d'accès:
Je sens que je devrais être en mesure de monter tout ce que l'utilisateur aurait par ailleurs accès à un point de montage que l'utilisateur est le propriétaire de.
Par exemple, sur mon ordinateur/dev/sda1 appartient à l'utilisateur root et le disque de groupe avec des autorisations brw-rw----
. Par conséquent les utilisateurs non-root ne peut pas jouer avec/dev/sda1 et amplifieront ne devrait pas leur permettre de le monter. Toutefois, si l'utilisateur possède /home/my_user/my_imagefile.img et le point de montage/home/my_user/mon_image/pourquoi ne devraient-ils être en mesure de monter ce fichier image sur ce point de montage:
mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop
Comme Kormac a souligné qu'il ya un problème suid. Ainsi, certaines restrictions devraient être ajoutés pour empêcher suid d'être un problème, ainsi que potentiellement d'autres questions. Peut-être une façon de le faire serait de rendre le traitement OS tous les fichiers comme appartenant à l'utilisateur qui a fait le montage. Cependant, pour simple, lecture/écriture/exécution, je ne vois pas pourquoi ce serait un problème.
Cas d'utilisation:
Je possède un compte dans un laboratoire où mon espace domestique est limitée à 8 Go. C'est minuscule et très très ennuyeux. Je voudrais monter un volume nfs de mon serveur personnel pour augmenter sensiblement la quantité de chambre que j'ai. Cependant, parce que Linux ne permet pas de telles choses que je suis coincé avec des fichiers scp'ing avant et en arrière de rester sous la limite de 8 Go.
Si un utilisateur a un accès direct écriture à un périphérique de bloc, et peut monter ce dispositif de bloc, ils peuvent alors écrire un exécutable suid sur le dispositif de blocage, le monter, l'ordinateur et l'exécution de ce fichier, et donc Gagnez un accès racine au système. C'est pourquoi le montage est normalement limité à la racine.
Maintenant, la racine peut permettre aux utilisateurs normaux de monter avec des restrictions spécifiques, mais il doit s'assurer que si l'utilisateur dispose d'un accès en écriture sur le périphérique de bloc, le montage ignore le sudid, ainsi que des devnodes, qui ont un problème similaire (l'utilisateur peut créer Un devnode qui leur donne un accès en écriture à un appareil important qu'ils ne devraient pas avoir un accès en écriture).
Cela ne nécessite pas toujours de super privilies. De man mount
The non-superuser mounts.
Normally, only the superuser can mount filesystems. However,
when fstab contains the user option on a line, anybody can mount
the corresponding system.
Thus, given a line
/dev/cdrom /cd iso9660 ro,user,noauto,unhide
any user can mount the iso9660 filesystem found on his CDROM
using the command
mount /dev/cdrom
or
mount /cd
For more details, see fstab(5). Only the user that mounted a
filesystem can unmount it again. If any user should be able to
unmount, then use users instead of user in the fstab line. The
owner option is similar to the user option, with the restriction
that the user must be the owner of the special file. This may be
useful e.g. for /dev/fd if a login script makes the console user
owner of this device. The group option is similar, with the
restriction that the user must be member of the group of the
special file.
Kormac et d'autres ont indiqué que ce n'est pas le dilemme que vous présentez comme; Il me semble que cela revient à la philosophie de manière explicite accordant des privilèges d'utilisateurs Vs. Un système permettant à tous que tous les utilisateurs auraient le droit immuable pour monter un système de fichiers.
Gilles aborde certains des problèmes de sécurité associés aux systèmes de fichiers de montage. Je vais éviter de rétroactivement une discussion de prologue et tangelle sur les problèmes techniques potentiels liés à cela (voir les commentaires) mais je pense qu'il est juste que les utilisateurs non approuvés ne disposent pas d'un droit immutable de monter des disques durs.
La question en ce qui concerne les systèmes de fichiers virtuels et distants (ou systèmes de fichiers distants via des systèmes de fichiers virtuels, un fusible) est moins important, mais cela ne résout pas la question de la sécurité (bien que le fusible puisse résoudre votre problème). Il est également important de considérer que les données de ces systèmes de fichiers peuvent presque toujours être accessibles sans avoir à monter un dispositif, via le transfert de fichier ou les outils extrayant des images sans montage, donc un système qui ne vous permet pas de monter quelque chose Ne représentent pas un problème insurmontable en ce qui concerne l'accès aux données que vous avez bizarrement placées dans un fichier image ou (plus de manière compréhensible) veulent obtenir d'un système distant. Si vous avez une situation où ce n'est pas le cas, cela pourrait valoir la peine de demander:
Qu'est-ce que c'est exactement j'essaie de faire?
Où dois-je essayer de le faire?
Si l'administration du système est juste, alors # 2 explique pourquoi # 1 est impossible pour vous. Si l'administration du système n'est pas juste, c'est politique. La solution au problème, "mon administrateur SYS n'est pas juste" n'est pas de redéfinir le système d'exploitation afin que SYS administrateurs partout ne peut pas limiter les utilisateurs.
Le système permet au Super utilisateur de limiter vos activités, explicitement ou par omission ("nous ne fournissons pas de fusible", etc.). Les privilèges sont un mécanisme à la manière dont cela est accompli. Ce n'est peut-être pas agréable d'être dit: "Vous n'avez pas besoin de le faire", mais si c'est vrai ... que Sera ... vous n'avez pas besoin de faire cela. Utilisez FTP, etc. Si ce n'est pas vrai, vous devez pesser ces responsables.
FYI: Les plus récents noyaux ont un support "Espace de noms". Les utilisateurs ordinaires peuvent créer un espace de noms et dans cet espace de noms, deviennent root
et faire des trucs amusants comme le mont File-Systems.
Cela ne vous donne pas des autorisations de super-utilisateur "réelles". Vous ne pouvez faire que ce que vous êtes déjà autorisé à faire (c'est-à-dire que vous ne pouvez monter que des appareils que vous pouvez déjà lire).
Voir Espaces de noms en opération, Partie 1: Vue d'ensemble des espaces de noms , section 4.
Étant donné que les données sur le système de fichiers qu'ils ont l'intention de monter peuvent compromettre la sécurité du serveur ou même le crousser (s'il a été construit intentionnellement de cette façon).
Dans GNOME, GVFS ne nécessite pas de racine pour le montage du système de fichiers distant (FTP ou SSH) et le montage GNOME n'a également pas besoin de racine pour le montage du stockage externe (lecteur USB, CD/DVD, etc.).
La plupart des systèmes ne voudraient probablement pas avoir le gnome entier uniquement pour un montage à distance, puis vous pouvez utiliser LUF , SSHFS ou FTPFS .
gVFS, LUFS, SSHFS et FTPFS utilisent le fusible pour permettre aux utilisateurs non racinaux de monter du système de fichiers virtuels; et contrairement à la monture -o user
, Le fusible ne nécessite pas que la sysadmin pour organiser des montages spécifiques. Tant que vous avez le privilège pour le répertoire de montage et les ressources nécessaires pour construire le système de fichiers, vous pouvez créer un support de fusible.
Pourquoi le montage nécessite-t-il des privilèges root?
Parce que mount
est principalement destiné au système de fichiers local, qui implique presque toujours un matériel.