Forum Linux.débutant besoin d'aide pour écrire un pam_mount.conf.xml

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
17
sept.
2025

Bonjour,

suite du feuilleton (personnellement je ne m'en lasse pas même si je rame copieusement, mais si je pouvais avoir un peu d'aide pour avancer, ça m'arrangerait ;-) )

J'ai donc sur "mon" servuer w2016 des partages :

//SRV-PEDA/Homes$/Enseignants/toto pour les rep. perso des profs
//SRV-PEDA/Homes$/Eleves/tata pour les rep. perso des élèves
//SRV-PEDA/Echanges$ open bar
//SRV-PEDA/Classes$ avec des sous-rep. (mais ça osef un peu si j'ai bien compris, il suffit de monter le partage, NTFS fera le reste)

J'arrive à faire, manuellement un montage des partages :

# mount -o user=toto,rw //SRV-PEDA/Homes$/Enseignants/toto /tmp/perso
ou
# mount -o user=toto,rw //SRV-PEDA/Classes$ /tmp/classes

(demande de mot de passe de toto et ça monte)

ce que je n'arrive pas à faire (et à comprendre) c'est comment écrire le fichier /etc/security/pam_mount.conf.xml pour faire cela automatiquement après l'authentification par sddm (ça, c'est OK, ça fonctionne)

En tâtonnant (un peu au hasard, j'avoue) en m'inspirant d'exemple de-ci de-là j'arrive au mieux à ne rien monter du tout, au pire à bloquer le démarrage avant le display manager sddm qui ne s'affiche plus (curseur tout seul sur fond noir - > ctrl-alt-F3 pour essayer de réparer)

Je vois à peu près la structure globale du fichier, mais aucune idée précise des options et autres à indiquer, ni comment accéder et comprendre les infos de débug si <debug enable="1" />

Quelqu'un pourrait-il me guider un peu dans ce brouillard ou au moins m'indiquer une doc un peu plus clair que les pages man ?

  • # Doc

    Posté par  . Évalué à 3 (+1/-0).

    Je ne peux que te conseiller de consulter le Wiki d'ArchLinux sur le sujet en gardant un œil sur man pam_mount pour savoir comment utiliser les variables dans ce fichier (nom d'utilisateur, domaine, etc.)

    • [^] # Re: Doc

      Posté par  . Évalué à 2 (+0/-0).

      Merci, les man toutes seules c'est un peu indigeste, j'ai besoin d'être pris par la main encore !

      • [^] # Re: Doc

        Posté par  . Évalué à 7 (+4/-0).

        en general je vais directement voir les exemples à la fin du man

        dans ton cas un partage windows, donc protocole CIFS il te faudra alors faire des lignes de ce genre

        CIFS mounts

        <volume user="user" fstype="cifs" server="krueger" path="public" mountpoint="/home/user/krueger" />

        mais ca ne me semble pas pertinent car il faudrait alors lister TOUS les users et faire autant de ligne

        ensuite je remonte dans le man pour voir si on peut generaliser en utilisant des variables

        et on tombe sur

        Variables

        Within attributes and commands (see later section), specific placeholders or variables, identified by %(name) may be used. These are substituted at command invocation time.
        
        %(USER)
            Expands to the username of the user logging in.
        
        %(DOMAIN_NAME), %(DOMAIN_USER)
            Winbind has special UNIX usernames in the form of "domain\username", and 
        
        %(DOMAIN_NAME) and %(DOMAIN_USER) provide the split parts of it. This is useful when a sharename on an MSAD server is the same as the username, e.g. <volume fstype="cifs" server="fsbox" path="%(DOMAIN_USER)" />.
        
        %(USERUID), %(USERGID)
            The numeric UID and GID of the primary group of the user logging in. This is obtained via getpw*(), not getuid(). It is useful in conjunction with the uid= or gid= mount options, e.g. <volume options="uid=%(USERUID)" />. Note that you do not need to specify uid=%(USERUID) for smbfs or cifs mounts because this is already done automatically by pam_mount.
        
        %(GROUP)
            The name of the group for %(USERGID).

        qui devrait alors en une seule ligne de faire un truc qui match l'utilisateur, va prendre le partage sur le serveur/dossieruser et le monter dans /mnt/outuveux/dossieruser

        • [^] # Re: Doc

          Posté par  . Évalué à 3 (+1/-0).

          Merci, ça ma aidé à prendre confiance ;-)

  • # Ça avance (un peu)

    Posté par  . Évalué à 4 (+2/-0).

    J'ai un peu avancé… en lisant le man

    j'ai fait un fichier pam_mount.conf.xml, il manque encore le partage perso mais les deux autres ça semble OK

    <?xml version="1.0" encoding="utf-8" ?>
    <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
    
    <pam_mount>
    
    <debug enable="1" />
    
            <!-- Volume definitions -->
    <volume 
        user="*" 
        fstype="cifs" 
        server="SRV-PEDA"
        path="Classes$" 
        mountpoint="/mnt/classes" 
    />
    
    <volume 
            user="*" 
            fstype="cifs" 
            server="SRV-PEDA"
            path="Echanges$" 
            mountpoint="/mnt/echanges" 
    />
    
            <!-- pam_mount parameters: General tunables -->
    <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
    <!--
    <mntoptions deny="suid,dev" />
    <mntoptions allow="*" />
    <mntoptions deny="*" />
    -->
    <mntoptions require="nosuid,nodev" />
    
    <!-- requires ofl from hxtools to be present -->
    <logout wait="0" hup="no" term="no" kill="no" />
    
    
    <mkmountpoint enable="1" remove="true" />
    
    
    </pam_mount>
    

    En ligne de commande si je fais un su toto il me demande le mot de passe et les partages se montent comme il faut (au moins en apparence)

    Mais si je redémarre, ça bloque avant l'affichage de sddm écran noir avec le logo lubuntu, pointeur de souris et rien d'autre

    Pourquoi donc ?

    Je supprime le fichier, ça remarche comme avant !

  • # Commentaire supprimé

    Posté par  . Évalué à 1 (+0/-0). Dernière modification le 06 octobre 2025 à 10:34.

    Ce commentaire a été supprimé par l’équipe de modération.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.