Après avoir installé le serveur FreeIPA et initialisé le ticket kerberos, vous souhaiterez ensuite effectuer la gestion des identités, qui commence par la création de groupes et d'utilisateurs.
Prérequis
Pour ce guide, vous aurez besoin d'un serveur freeipa fonctionnel. Consultez ces guides pour savoir comment configurer le serveur freeipa :
- Comment installer et configurer FreeIPA sur Rocky Linux/Centos 8
- Comment configurer la réplication FreeIPA sur Rocky Linux/Alma Linux/Centos 8
Poursuivez, vous devez également disposer d'un ticket Kerberos valide. Générez un ticket pour le mandant en utilisant ceci :
kinit [principal]
Ceci est pour mon utilisateur administrateur :
$ kinit admin
Password for [email protected]:
Confirmez la validation du ticket en répertoriant les tickets Kerberos mis en cache à l'aide de cette commande :
$ klist
Ticket cache: KCM:1000
Default principal: [email protected]
Valid starting Expires Service principal
12/02/2021 21:38:40 12/03/2021 20:58:27 krbtgt/[email protected]
La durée de vie par défaut du ticket est 24 heures
Contenu associé
- Comment installer le client FreeIPA sur Rocky Linux/Alma Linux/CentOS 8
- Comment installer et configurer le client FreeIPA sur Ubuntu 20.04
- Comment installer le client FreeIPA sur Fedora 35
Gestion des groupes dans FreeIPA
Dans FreeIPA, un groupe d'utilisateurs est un ensemble d'utilisateurs avec des politiques de mot de passe communes, des privilèges et d'autres caractéristiques. Un groupe d'utilisateurs peut inclure :
- Utilisateurs FreeIPA
- Autres groupes d'utilisateurs
- Utilisateurs externes , c'est-à-dire les utilisateurs qui existent en dehors du domaine FreeIPA
Les types de groupes pris en charge sont :
- Groupes POSIX – Il s'agit du type par défaut qui prend en charge les attributs Linux POSIX pour les membres du groupe. Les groupes qui interagissent avec Active Directory ne peuvent pas utiliser les attributs POSIX (par exemple uidNumber et gidNumber )
- Groupes non POSIX – Ceux-ci ne prennent pas en charge les attributs POSIX. Par exemple, ils n'ont pas de GID.
- Groupes externes – Utilisé pour ajouter des membres de groupe qui existent dans un magasin d'identités en dehors du domaine FreeIPA, comme [système local , domaine Active Directory ou un répertoire se service]. Ces groupes ne prennent pas en charge les attributs POSIX.
Les groupes ci-dessous sont créés par défaut lors de l'installation et de la configuration de FreeIPA Server :
- administrateurs – Composé de tous les utilisateurs disposant de privilèges d'administration, y compris l'admin par défaut utilisateur
- utilisateurs ip – Composé de tous les utilisateurs de FreeIPA
- faire confiance aux administrateurs – Utilisateurs avec des privilèges pour gérer les approbations Active Directory
Lorsqu'un utilisateur est ajouté à un groupe d'utilisateurs, l'utilisateur obtient les privilèges et les politiques associés au groupe
Ajouter un groupe d'utilisateurs dans FreeIPA
Utilisez cette commande pour ajouter un groupe appelé qa
dans FreeIPA
ipa group-add --desc='QA Engineers' qa
Ceci est la sortie sur mon serveur
$ ipa group-add --desc='QA Engineers' qa
----------------
Added group "qa"
----------------
Group name: qa
Description: QA Engineers
GID: 1063800004
Par défaut, la commande ci-dessus ajoute un groupe d'utilisateurs POSIX. Pour spécifier un type de groupe différent, ajoutez en option à la commande :
# Create an external group $ ipa group-add --external groupname # Create a non-POSIX group $ ipa group-add --nonposix groupname
Utiliser l'ID de groupe personnalisé
Pour spécifier un ID de groupe (GID) personnalisé, utilisez l'option gid=custom_GID
$ ipa group-add gid=custom_GID groupname
Mais vous devrez faire attention à éviter les conflits d'ID.
Rechercher des groupes d'utilisateurs
Afficher tous les groupes d'utilisateurs :
$ ipa group-find ---------------- 5 groups matched ---------------- Group name: admins Description: Account administrators group GID: 1063800000 Group name: editors Description: Limited admins who can edit other users GID: 1063800002 Group name: ipausers Description: Default group for all users Group name: qa Description: QA Engineers GID: 1063800004 Group name: trust admins Description: Trusts administrators group ---------------------------- Number of entries returned 5 ----------------------------
Afficher tous les groupes non POSIX :
$ ipa group-find --nonposix ---------------- 2 groups matched ---------------- Group name: ipausers Description: Default group for all users Group name: trust admins Description: Trusts administrators group ---------------------------- Number of entries returned 2 ----------------------------
Afficher tous les groupes POSIX :
$ ipa group-find --posix
----------------
3 groups matched
----------------
Group name: admins
Description: Account administrators group
GID: 1063800000
Group name: editors
Description: Limited admins who can edit other users
GID: 1063800002
Group name: qa
Description: QA Engineers
GID: 1063800004
----------------------------
Number of entries returned 3
----------------------------
Afficher tous les groupes externes :
$ ipa group-find --external
----------------
0 groups matched
----------------
----------------------------
Number of entries returned 0
----------------------------
Rechercher des comptes de groupe FreeIPA.
ipa group-find development
Vous pouvez également limiter les résultats de la recherche aux groupes contenant un utilisateur particulier :
$ ipa group-find --user=user_name
L'inverse est vrai lors de la recherche de groupes qui ne contiennent pas un utilisateur particulier :
$ ipa group-find --no-user=user_name
Ajouter des membres à un compte de groupe FreeIPA.
ipa group-add-member --users=jdoe qa
Ajouter le groupe FreeIPA au groupe FreeIPA imbriqué
ipa group-add-member --groups=development engineering
Supprimer les comptes de groupe FreeIPA.
ipa group-del qa
Gestion des utilisateurs dans FreeIPA
Ajouter un compte utilisateur FreeIPA
La syntaxe de la commande est :
$ ipa user-add
Ce sont les ipa user-add couramment utilisés options de commande :
- –first=STR – Prénom de l'utilisateur
- –dernier=STR – Nom de famille de l'utilisateur
- –cn=STR – Nom complet du compte utilisateur
- –homedir=STR – Répertoire d'accueil
- –shell=STR – Shell de connexion
- –email=STR – Adresse e-mail
- –mot de passe – Invite à définir le mot de passe de l'utilisateur
- –mobile=STR – Numéro de téléphone portable
La commande exécute un script dans lequel vous pouvez ajouter les données de base nécessaires à la création d'un compte utilisateur.
$ ipa user-add
First name: John
Last name: Doe
User login [jdoe]: jdoe
-----------------
Added user "jdoe"
-----------------
User login: jdoe
First name: John
Last name: Doe
Full name: John Doe
Display name: John Doe
Initials: JD
Home directory: /home/jdoe
GECOS: John Doe
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
Email address: [email protected]
UID: 1063800005
GID: 1063800005
Password: False
Member of groups: ipausers
Kerberos keys available: False
Aucun mot de passe utilisateur n'est défini lors de la création du compte utilisateur.
Pour attribuer un mot de passe à l'utilisateur, utilisez la commande ipa pour ajouter l'utilisateur avec l'option ci-dessous :
Supprimez d'abord l'utilisateur
$ ipa user-del jdoe
-------------------
Deleted user "jdoe"
-------------------
Créez ensuite un utilisateur en spécifiant le mot de passe
$ ipa user-add --first=John --last=Doe --password jdoe
Password:
Enter Password again to verify:
-----------------
Added user "jdoe"
-----------------
User login: jdoe
First name: John
Last name: Doe
Full name: John Doe
Display name: John Doe
Initials: JD
Home directory: /home/jdoe
GECOS: John Doe
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
User password expiration: 20211202190348Z
Email address: [email protected]
UID: 1063800006
GID: 1063800006
Password: True
Member of groups: ipausers
Kerberos keys available: True
Pour changer le mot de passe d'un compte utilisateur FreeIPA
$ ipa passwd jdoe
New Password:
Enter New Password again to verify:
-------------------------------------------
Changed password for "[email protected]"
-------------------------------------------
Verrouiller le compte utilisateur
$ ipa user-disable jdoe
----------------------------
Disabled user account "jdoe"
----------------------------
Déverrouiller le compte utilisateur
$ ipa user-enable jdoe
---------------------------
Enabled user account "jdoe"
---------------------------
Rechercher des comptes d'utilisateurs FreeIPA
$ ipa user-find jdoe
--------------
1 user matched
--------------
User login: jdoe
First name: John
Last name: Doe
Home directory: /home/jdoe
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
Email address: [email protected]
UID: 1063800006
GID: 1063800006
Account disabled: False
----------------------------
Number of entries returned 1
----------------------------
Afficher l'utilisateur brut dans freeipa
$ ipa user-show --raw jdoe
uid: jdoe
givenname: John
sn: Doe
homedirectory: /home/jdoe
loginshell: /bin/bash
krbcanonicalname: [email protected]
krbprincipalname: [email protected]
mail: [email protected]
uidnumber: 1063800006
gidnumber: 1063800006
nsaccountlock: FALSE
has_password: TRUE
has_keytab: TRUE
Pour modifier les informations utilisateur créées, utilisez la syntaxe de commande :
$ ipa [global-options] user-mod LOGIN
Pour modifier le mot de passe
$ ipa user-mod --password jdoe
Password:
Enter Password again to verify:
--------------------
Modified user "jdoe"
--------------------
User login: jdoe
First name: John
Last name: Doe
Home directory: /home/jdoe
Login shell: /bin/bash
Principal name: [email protected]
Principal alias: [email protected]
Email address: [email protected]
UID: 1063800006
GID: 1063800006
Account disabled: False
Password: True
Member of groups: ipausers
Kerberos keys available: True
Supprimer les comptes d'utilisateurs FreeIPA
ipa user-del jdowe
Ajoutez un membre à un groupe d'utilisateurs en utilisant la syntaxe de commande :
ipa [global-options] group-add-member GROUP-NAME [options]
Options communes :
- –users=STR – Utilisateurs à ajouter au groupe
- –groups=STR – Groupes à ajouter au groupe nommé
- –services=STR – Services à ajouter au groupe
- –external=STR Membres d'un domaine de confiance dans DOM\nom ou formulaire [email protected]
Voir ci-dessous des exemples sur l'ajout d'un utilisateur/groupe à un groupe
Ajouter l'utilisateur jdoe en tant que membre responsable de qa :
$ ipa group-add-member qa --users=jdoe Group name: qa Description: QA Engineers GID: 1063800004 Member users: jdoe ------------------------- Number of members added 1 -------------------------
Ajouter un utilisateur en tant que gestionnaire de membres à un groupe d'utilisateurs
$ ipa group-add-member-manager developers --users=jdoe
Group name: developers
GID: 106380005
Membership managed by users: jdoe
-------------------------
Number of members added 1
-------------------------
Utilisateur jdoe peut désormais gérer les membres des développeurs .
Ou ajoutez le groupe qa en tant que membre responsable des développeurs :
$ ipa group-add-member-manager developers --groups=qa
Group name: developers
GID: 320800004
Membership managed by groups: qa
Membership managed by users: jdoe
-------------------------
Number of members added 1
-------------------------
$ ipa group-show devops
Group name: developers
GID: 320800004
Membership managed by groups: qa
Membership managed by users: jdoe
Groupe qa pourra alors gérer les membres des développeurs .
Ajouter en tant que membre d'un autre groupe
Ajouter ajouter group_b en tant que membre de group_a :
$ ipa group-add-member group_a --groups=group_b
Supprimer un membre d'un groupe d'utilisateurs
Confirmez d'abord que le groupe inclut le membre que vous souhaitez supprimer.
ipa group-show
Supprimer un membre d'un groupe d'utilisateurs à l'aide de ipa group-remove-member
commande tout en spécifiant les membres à supprimer à l'aide de ces options :
--users
supprime un utilisateur FreeIPA--external
supprime un utilisateur qui existe en dehors du domaine FreeIPA, au formatDOMAIN\user_name
ou[email protected]
--groups
supprime un groupe d'utilisateurs
Par exemple, pour supprimer jmutai d'un groupe appelé sysadmins :
$ ipa group-remove-member qa --users=jdoe
Group name: qa
GID: 320800003
---------------------------
Number of members removed 1
---------------------------
Supprimer user1 , utilisateur2 , et groupe1 d'un groupe appelé group_name :
ipa group-remove-member group_name --users=user1 --users=user2 --groups=group1
Supprimer des utilisateurs ou des groupes en tant que gestionnaires de membres d'un groupe d'utilisateurs
Syntaxe de la commande :
ipa group-remove-member-manager GROUP-NAME [options]
options à utiliser :
- –users=STR utilisateurs à supprimer
- –groups=STR groupes à supprimer
Par exemple, pour supprimer l'utilisateur user1 en tant qu'administrateur membre de group1 :
$ ipa group-remove-member-manager group1 --users=user1
Supprimez le groupe sysadmins en tant que membre gestionnaire de devops :
$ ipa group-remove-member-manager developers --groups=qa
Group name: developers
GID: 320800004
Membership managed by users: jdoe
---------------------------
Number of members removed 1
---------------------------
Le groupe et son membre ne pourront pas gérer les membres du groupe de développeurs après la suppression.
Ajouter des utilisateurs locaux existants à l'annuaire FreeIPA.
Définissez le même mot de passe avec le nom d'utilisateur sur cet exemple, mais il est nécessaire de le changer lors de la connexion initiale
# extract local users who have 1000-9999 digit UID
# this is an example
#!/bin/bash
for line in `grep "x:[1-9][0-9][0-9][0-9]:" /etc/passwd`
do
USER=`echo $line | cut -d: -f1`
FIRST=`echo $line | cut -d: -f5 | awk {'print $1'}`
LAST=`echo $line | cut -d: -f5 | awk {'print $2'}`
[ ! "$FIRST" ] && FIRST=$USER
[ ! "$LAST" ] && LAST=$USER
echo $USER | ipa user-add $USER --first=$FIRST --last=$LAST --password
done