Gestion de l'Active Directory en ligne de commande
Bien qu'il existe quelques restrictions, la majorité des opérations de gestion peuvent être réalisées en ligne de commande sur les modules Scribe, AmonEcole et Seth configurés en tant que contrôleur de domaine.
Les opérations présentées sont réalisables sur le serveur que le contrôleur de domaine soit déclaré comme additionnel ou non.
Attention
La synchronisation des données entre les différents DC n'est pas instantanée et peut prendre jusqu'à trois minutes.
Modules en mode conteneur
Sur les modules Scribe et AmonEcole, le contrôleur de domaine est la machine conteneur nommée addc
.
Les commandes doivent être exécutées dans ce conteneur.
Pour entrer dans le conteneur addc
sur un serveur Scribe ou AmonEcole, exécuter la commande suivante :
ssh addc
Sur le module Seth, le contrôleur de domaine est installé sur le maître.
Gestion des groupes et des utilisateurs
Lister les groupes
samba-tool group list
Lister les utilisateurs
samba-tool user list
Créer un utilisateur
samba-tool user create titi "Mot:DeP455"
Modifier le mot de passe d'un utilisateur
samba-tool user setpassword titi
ou (noter le "\n" entre les deux mots de passe)
echo -e "MotDePasse?\nMotDePasse?" | smbpasswd -s titi
Inscrire un utilisateur à un groupe
samba-tool group addmembers "Domain Admins" titi
Consulter les attributs d'un utilisateur
pdbedit -Lv titi
Paramétrer le répertoire personnel, la lettre de montage et le profil d'un utilisateur
pdbedit -h '\\file.ac-test.fr\titi' -D 'U:' -p '\\file.ac-test.fr\profiles\titi' titi
Supprimer un utilisateur
samba-tool user delete titi
Jetons Kerberos et fichiers keytab
Les fichiers keytab, abréviation de « key table » (table des clés), sont des fichiers qui contiennent une clé de chiffrement pour un service ou un hôte.
Ils sont utiles pour réaliser des opération d'administration qui nécessite l'utilisation d'un compte avec pouvoirs sans avoir à en saisir le mot de passe.
L'article suivant (en anglais) explique plutôt bien ce qu'est un keytab : https://social.technet.microsoft.com/wiki/contents/articles/36470.kerberos-keytabs-explained.aspx
Compte machine
Un keytab du compte machine du serveur est automatiquement généré dans le fichier /var/lib/samba/eole-ad-dc.keytab
.
Il est ainsi possible d'utiliser ce fichier dans des scripts, pour ajouter des entrées DNS, par exemple :
# initialisation d'un jeton Kerberos à l'aide du fichier keytab
kinit ADDC@AC-TEST.FR -k -t /var/lib/samba/eole-ad-dc.keytab
# ajout d'une entrée DNS locale
samba-tool dns add dc1.ac-test.fr ac-test.fr mac10 A 192.168.0.10 -k 1
# vérification de la résolution d'un nom par le DNS local
dig @localhost mac10.ac-test.fr +short
# suppression d'une entrée DNS locale
samba-tool dns delete dc1.ac-test.fr ac-test.fr mac10 A 192.168.0.10 -k 1
# destruction du jeton Kerberos
kdestroy
Truc & astuce
Compte utilisateur
De la même façon, il est possible de créer un fichier keytab pour des comptes utilisateur tels que admin
ou Administrator
:
root@dc1:~# samba-tool domain exportkeytab ~/administrator.keytab --principal=Administrator@AC-TEST.FR
Export one principal to admin.keytab
root@dc1:~# kinit Administrator@AC-TEST.FR -k -t ~/administrator.keytab
root@dc1:~# kdestroy
root@dc1:~# rm -f ~/administrator.keytab
Gestion des sites
Sur le contrôleur de domaine principal, la déclaration d'un site s'effectue facilement grâce à la fonction bash samba_update_site
:
. /usr/lib/eole/samba4.sh
samba_update_site monsite 10.1.1.0/24
Recherche avancée
La commande ldbsearch
permet d'effectuer des recherches dans l'annuaire Active Directory :
Initialisation de la variable LDB_URL, utilisée par la commande ldbsearch.
export LDB_URL=/var/lib/samba/private/sam.ldb
Rechercher les utilisateurs
ldbsearch -S '(objectclass=user)' cn
Afficher l'entrée d'un utilisateur
ldbsearch cn=admin
Afficher l'entrée correspondant au groupe
Administrators
ldbsearch '(&(objectclass=group)(cn=Administrators))' --cross-ncs
Afficher les entrées correspondant aux contrôleurs de domaine
ldbsearch '(invocationId=*)' --cross-ncs objectguid
Truc & astuce
ExempleAjouter une OU (Unité Organisationnelle) :
Générer le fichier ajouterOU.ldif :
dn: OU=etablissement1,DC=ac-test,DC=fr
changetype: add
objectClass: top
objectClass: organizationalunit
Ajouter la modification dans l'annuaire :
ldbadd ajouterOU.ldif