6 votes

Comment fonctionne la sécurité des utilisateurs et des groupes sous Linux ?

Par exemple, comment mont décide si l'utilisateur actuel a les droits pour monter un système de fichiers ? D'après ce que je sais, il vérifie le fstab et le groupe auquel l'utilisateur appartient (je pense à plugdev, au moins sur Ubuntu).

Ces paramètres sont-ils codés en dur dans le programme, ou comment les obtient-il ? Par exemple, si je veux donner aux utilisateurs d'un autre groupe la possibilité de monter un système de fichiers, comment faire ?

EDIT : Je cherche une description générale du fonctionnement de la sécurité. mont n'est qu'un exemple. Je sais plus ou moins comment fonctionnent les permissions du système de fichiers, mais il est clair qu'il y a autre chose qui se passe. Je suis particulièrement intéressé de savoir s'il existe une manière standard pour les programmes d'implémenter la sécurité ou si chacun le fait différemment.

0 votes

Pouvez-vous préciser. Cherchez-vous une description générale de la sécurité et des permissions de Linux ou des détails sur le montage ?

2voto

mcqwerty Points 2106

Selon le page de manuel il y a quelques options que vous pouvez mettre dans fstab pour contrôler qui a le droit de monter des systèmes de fichiers : " owner "pour que seul le propriétaire du périphérique de bloc puisse le monter, " group "pour permettre à toute personne du groupe de l'appareil de le monter, ou " user " ou " users "pour permettre à tout utilisateur ordinaire de le faire. Si aucune de ces options n'est spécifiée, la valeur par défaut est que seule l'option root peut monter le système de fichiers. Bien sûr, l'utilisateur qui effectue le montage doit avoir le droit d'exécuter le système de fichiers. mount Le programme lui-même.

Dans votre cas, je suppose que vous pourriez changer le groupe du périphérique de bloc pour n'importe quel groupe que vous voulez être en mesure de le monter et ajouter " group "dans les options de montage dans fstab . Cependant, cela ne vous permet de spécifier qu'un seul groupe capable de monter le système de fichiers, ce qui signifie que si vous faites cela, les personnes du groupe plugdev perdront probablement la capacité d'effectuer le montage (à moins qu'ils ne fassent également partie de l'autre groupe).

De plus, je ne suis pas sûr que toutes ces options existent sur tous les systèmes. Vous devriez vérifier man mount(8) sur votre propre système avant de faire tout cela.

0 votes

Les permissions sur le périphérique de bloc sont régies par udev lors de la création dudit périphérique.

2voto

David Locke Points 4419

Le mécanisme de sécurité dépend entièrement des permissions sur les fichiers et des programmes tels que nfsd qui s'exécutent en tant que root (en écrasant les permissions sur les fichiers) et maintiennent leurs propres mécanismes de sécurité. Les permissions sur les fichiers du périphérique de bloc déterminent si un utilisateur peut monter ce périphérique. Chaque fichier possède trois ensembles de permissions (lecture, écriture, exécution) pour trois classes d'utilisateurs (propriétaire, groupe, monde), plus une poignée de bits spéciaux discutés ci-dessous.

Dans la tradition Unix "tout est un fichier", les périphériques bruts et les volumes exportés apparaissent comme des fichiers spéciaux avec des permissions de système de fichiers. Le montage à distance de volumes distants est un peu plus complexe et est abordé ci-dessous.

Si l'utilisateur est connecté avec le même uid que le propriétaire du fichier, alors owner peuvent être utilisées. Chaque utilisateur a un groupe par défaut, et peut être ajouté à des entrées de groupe dans le fichier /etc/group fichier. Lorsqu'un utilisateur a accès à un groupe, les permissions du groupe sont utilisées. Dans le cas contraire, l'utilisateur a les droits du "monde". Les ACL (Access Control Lists) peuvent être utilisées pour accorder des permissions à des utilisateurs spécifiques lorsqu'elles sont disponibles.

Les programmes peuvent passer outre la sécurité au niveau de l'utilisateur en ayant l'option setuid activé sur leur entrée d'inode. Cela permet d'exécuter le programme avec les privilèges du propriétaire du binaire plutôt qu'avec les privilèges de l'utilisateur connecté. Des exemples de tels programmes sont nfsd , mount y sudo . Ces programmes ont leurs propres mécanismes de sécurité ; par exemple sudo a /etc/sudoers qui est utilisé pour régir les permissions.

mount y nfsd fonctionne sur la base de l'uid et du gid, qui doivent être synchronisés sur les deux machines (ce qui est souvent fait traditionnellement via NIS). nfsd possède un fichier appelé /etc/exports qui contient les systèmes de fichiers exportés et certaines données de permissions. mount et ses pilotes nfs présentent des informations d'identification que nfsd utilise pour authentifier le droit de l'utilisateur à monter le volume. Sur un volume local, mount utilise les permissions de fichier du périphérique bloc.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X