GNU/Linux >> Tutoriels Linux >  >> Linux

Comment un gestionnaire de fichiers peut-il monter un lecteur sans racine ?

Les utilisateurs opérant sur la console d'un poste de travail graphique ont noté que plusieurs programmes peuvent être exécutés sans avoir apparemment besoin d'une authentification root ni d'un mot de passe tel que reboot. Ce processus implique l'utilisation intelligente du programme SUID /usr/sbin/userhelper appliqué dans un contexte plus large que celui initialement conçu.

L'utilisateur graphique exécute un programme intermédiaire aliasé /usr/bin/consolehelper qui autorise les actions basées sur une configuration PAM (Programmable Authentication Modules) spécifique, puis envoie la commande à un programme SUID pour exécuter le programme utilisateur avec des privilèges. Si l'utilisateur ne dispose pas de l'autorisation appropriée, le programme demandé est exécuté sous l'environnement Linux de l'utilisateur.

Tel qu'il est actuellement déployé, le fichier de configuration PAM nécessaire au redémarrage contient des vérifications pour que l'utilisateur soit connecté à la console ou s'exécute actuellement sous l'environnement racine pour empêcher les demandes de mot de passe.


Il utilise des udisks. (FUSE est cependant utilisé dans le cas des systèmes de fichiers réseau). Des interfaces de ligne de commande vers les udisks sont disponibles pour votre expérimentation. Dans les versions récentes, il est livré avec l'interface de ligne de commande udisksctl .

udisksd s'exécute en tant que root et accepte les demandes des utilisateurs à l'aide de D-Bus.

udisksd utilise PolicyKit PolKit pour décider quelles requêtes sont autorisées. Certains peuvent nécessiter des privilèges supplémentaires, par ex. formatage des disques internes. Cela peut impliquer une étape d'authentification supplémentaire - similaire à l'invite UAC de Windows ou sudo sur la ligne de commande. Je ne sais pas exactement comment l'authentification supplémentaire est coordonnée.

Les requêtes via D-Bus sont actuellement effectuées à l'aide de sockets Unix à l'aide de SCM_CREDENTIALS, qui identifie le processus à l'origine de la requête.

L'un des facteurs utilisés dans les décisions est de savoir si l'utilisateur est connecté localement ou sur le réseau (par exemple, ssh ). Je crois que ces informations sont fournies par systemd-logind (en complot avec pam-systemd ).


Linux
  1. Comment masquer des fichiers et des dossiers dans le gestionnaire de fichiers sans les renommer

  2. Comment monter un fichier image sans root ?

  3. Comment monter un fichier iso sous Linux

  4. Comment puis-je lier symboliquement un fichier sous Linux?

  5. Comment fonctionnent les autorisations de fichiers pour l'utilisateur root ?

Comment le gestionnaire de fichiers monte-t-il un lecteur externe sans Sudo ?

Comment monter Google Drive localement en tant que système de fichiers virtuel sous Linux

Comment ouvrir le gestionnaire de fichiers Ubuntu en tant qu'utilisateur root

Comment l'utilisateur peut-il monter un conteneur de fichiers crypté dans Veracrypt ?

Comment limiter l'utilisateur root dans CentOS

Comment monter et afficher le fichier ISO en tant qu'utilisateur root et régulier sous Linux