GNU/Linux >> Tutoriels Linux >  >> Linux

Comment gérer les utilisateurs et les groupes dans FreeIPA Server

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 :

  1. Utilisateurs FreeIPA
  2. Autres groupes d'utilisateurs
  3. 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 localdomaine 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 format DOMAIN\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 user1utilisateur2 , 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


Linux
  1. Comment gérer et répertorier les services sous Linux

  2. Utilisateurs et groupes

  3. Comment travailler avec des utilisateurs et des groupes sous Linux

  4. Créer, gérer et supprimer des utilisateurs et des groupes dans Active Directory

  5. Comment puis-je trier les ls par propriétaire et groupe ?

Comment lister les groupes sous Linux

Utilisateurs et groupes LDAP

Comment répertorier les utilisateurs et les groupes sous Linux

Comment puis-je ajouter et gérer des utilisateurs FTP supplémentaires ?

Comment créer et gérer de nouveaux utilisateurs sous Linux

Comment créer des utilisateurs et des groupes dans CentOS7 ?