web-dev-qa-db-fra.com

Mont.Cifs avec KRB5 échoue sur 20,04 lts

J'ai une synologie NAS et plusieurs clients Ubuntu dans mon réseau. Je configurais l'intégration Active Directory sur les clients en suivant les instructions suivantes : https://ubuntu.com/server/docs/ Service-SSSD . Tout fonctionne splendide. Cependant, essayez de configurer une action de montage sur la connexion à la suite de ces instructions ci-dessous https://wiki.ubuntu.com/mountwindowssharespermaniquement Échec du support en utilisant Les instructions du chapitre "Montez des actions protégées par mot de passe à l'aide de libpam_mount (Ubuntu 9.04)". I Configuration du fichier .pam_mount.conf.xml et ajouté

<?xml version="1.0" encoding="utf-8" ?>
<pam_mount>
<volume options="uid=$USER,gid=100,dmask=0700" user="*" mountpoint="/mnt/shares/pictures" path="Pictures" server="serverIpAddress" >
</pam_mount>

Après la stratégie de débogage, j'ai essayé de tout monter manuellement pour voir où il se bloque. Je peux monter la part lorsque vous utilisez sudo et utiliser le type de sécurité par défaut avec l'utilisateur et le mot de passe.

Sudo mount -t cifs -ousername=myname //myserver/Pictures /media/shares/test

En essayant d'utiliser sec = krb5

Sudo mount -t cifs -osec=krb5 //myserver/Pictures /media/shares/test

il renvoie le message très utile Erreur de montage (2): Aucun fichier ou répertoire de ce type . Dmesg montre ceci

CIFS: VFS: Verify user has a krb5 ticket and keyutils is installed
CIFS: VFS: \\myserver Send error in SessSetup = -126
CIFS: VFS: cifs_mount failed w/return code = -2

Recherche sur le Web que je passe des heures à essayer de définir la version, GID, UID, Cruid dans la commande Mount, mais rien ne fonctionne. D'après ce que je peux voir, je reçois aussi un billet de Kerberos correct à l'aide de Klist. Certains post suggèrent ce chèque.

Ticket cache: FILE:/tmp/krb5cc_710201106_e2vIcu
Default principal: [email protected]

Valid starting       Expires              Service principal
12.04.2021 08:52:57  12.04.2021 18:52:57  krbtgt/[email protected]
renew until 13.04.2021 08:52:57

J'ai également vérifié avec SMBClient si je peux voir les actions de mon NAS à l'aide du billet Kerberos et qui fonctionne aussi bien.

smbclient -k -L myserver.mydomain.locale

Il y a une base similaire sur Ubuntu 18.04, j'utilise 20,04 lts, ​​ici Mount.Cifs avec KRB5 échoue pendant que SMBClient avec les mêmes travaux de KRB5-Ticket

J'ai vérifié que les keyutils sont installés mais ne savent pas comment mettre en œuvre cette réponse sur le fichier Te KeyTab et je ne sais pas les connaissances nécessaires pour juger si c'est en réalité le problème ("mont" a besoin d'une entrée correspondante dans le fichier KeyTab pointant vers Kerberos).

Merci pour toute suggestion qui pourrait aider à résoudre ce problème.

1
Cliffi

Enfin j'ai réussi à le faire fonctionner. Je ne sais pas si la configuration ci-dessous est le seul changement nécessaire. J'essayais beaucoup de choses différentes mais à la fin, j'ai réussi à monter la part avec PAM lors de la connexion à mon compte de domaine à partir du terminal.

Sudo login

Cela m'a donné les commentaires nécessaires dont j'avais besoin. Apparemment, les options "NODEV" et "NOSUID" sont nécessaires.

Mon enfin .pam_mount.conf.xml ressemble à ceci:

<?xml version="1.0" encoding="utf-8" ?>

<pam_mount>

<volume options="nodev,nosuid"
    fstype="cifs"
    server="servername.domainname"
    path="music"
    mountpoint="/home/user@domainname/shares/Music"
    cruid="user@domainname" />
</pam_mount>

où le nom de domaine est en syntaxe de nom.locale

Pour ceux qui ne savent pas ce que le Cruid est pour (de Mount Manpage): Cruid = arg définit l'UID du propriétaire du cache de références. Ceci est principalement utile avec sec = krb5. La valeur par défaut est la vraie UID du processus effectuant la monture. Réglage Ce paramètre dirige l'UPCALL pour rechercher un cache de références appartenant à cet utilisateur.

mise à jour le 10 mai, Répondre à la question de Serg: Je peux monter une part manuellement avec cette commande:

Sudo mount -t cifs -o user=$USER,domain=mydomain.locale,cruid=$USER,gid=xxx,uid=xxx,sec=krb5 //myserver/shareName/home /[email protected]/shares/shareName
enter code here

Pour des fins de test, j'ai ajouté le gid actuel et UID comme valeur numérique. Vous pouvez obtenir les deux valeurs lors de la frappe

id

Il ne comporte pas vraiment où le montez, mais j'ai utilisé un dossier dans mon annuaire de domicile pour exclure des problèmes d'autorisation supplémentaires.

1
Cliffi