Nach der Installation des FreeIPA-Servers und der Initialisierung des Kerberos-Tickets sollten Sie als Nächstes die Identitätsverwaltung durchführen, die mit dem Erstellen von Gruppen und Benutzern beginnt.
Voraussetzungen
Für diese Anleitung benötigen Sie einen funktionierenden Freeipa-Server. Sehen Sie sich diese Anleitungen zum Einrichten des Freeipa-Servers an:
- So installieren und konfigurieren Sie FreeIPA unter Rocky Linux/Centos 8
- So konfigurieren Sie die FreeIPA-Replikation unter Rocky Linux/Alma Linux/Centos 8
Oben fortfahren, Sie benötigen außerdem ein gültiges Kerberos-Ticket. Erstellen Sie ein Ticket für den Prinzipal mit:
kinit [principal]
Dies ist für meinen Admin-Benutzer:
$ kinit admin
Password for [email protected]:
Bestätigen Sie die Ticketvalidierung, indem Sie zwischengespeicherte Kerberos-Tickets mit diesem Befehl auflisten:
$ 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]
Die Standardlebensdauer des Tickets beträgt 24 Stunden
Verwandte Inhalte
- So installieren Sie den FreeIPA-Client unter Rocky Linux/Alma Linux/CentOS 8
- So installieren und konfigurieren Sie den FreeIPA-Client unter Ubuntu 20.04
- So installieren Sie den FreeIPA-Client auf Fedora 35
Gruppen in FreeIPA verwalten
In FreeIPA ist eine Benutzergruppe eine Gruppe von Benutzern mit gemeinsamen Kennwortrichtlinien, Berechtigungen und anderen Merkmalen. Eine Benutzergruppe kann enthalten:
- FreeIPA-Benutzer
- Andere Benutzergruppen
- Externe Nutzer , d. h. Benutzer, die außerhalb der FreeIPA-Domain existieren
Unterstützte Gruppentypen sind:
- POSIX-Gruppen – Dies ist der Standardtyp, der Linux-POSIX-Attribute für Gruppenmitglieder unterstützt. Gruppen, die mit Active Directory interagieren, können keine POSIX-Attribute verwenden (z. B. uidNumber und gidNumber )
- Nicht-POSIX-Gruppen – Diese unterstützen keine POSIX-Attribute. Beispielsweise haben sie keine GID.
- Externe Gruppen – Wird verwendet, um Gruppenmitglieder hinzuzufügen, die in einem Identitätsspeicher außerhalb der FreeIPA-Domäne vorhanden sind, z. B. [lokales System , Active Directory-Domain oder ein Verzeichnisse Service]. Diese Gruppen unterstützen keine POSIX-Attribute.
Die folgenden Gruppen werden standardmäßig bei der Installation und Konfiguration von FreeIPA Server erstellt:
- Administratoren – Bestehen aus allen Benutzern mit Administratorrechten, einschließlich des standardmäßigen Administrators Benutzer
- ipauser – Besteht aus allen FreeIPA-Benutzern
- Administratoren vertrauen – Benutzer mit Berechtigungen zum Verwalten der Active Directory-Vertrauensstellungen
Wenn ein Benutzer zu einer Benutzergruppe hinzugefügt wird, erhält der Benutzer die mit der Gruppe verbundenen Berechtigungen und Richtlinien
Benutzergruppe in FreeIPA hinzufügen
Verwenden Sie diesen Befehl, um eine Gruppe mit dem Namen qa
hinzuzufügen in FreeIPA
ipa group-add --desc='QA Engineers' qa
Dies ist die Ausgabe auf meinem Server
$ ipa group-add --desc='QA Engineers' qa
----------------
Added group "qa"
----------------
Group name: qa
Description: QA Engineers
GID: 1063800004
Standardmäßig fügt der obige Befehl eine POSIX-Benutzergruppe hinzu. Um einen anderen Gruppentyp anzugeben, fügen Sie dem Befehl als Option hinzu:
# Create an external group $ ipa group-add --external groupname # Create a non-POSIX group $ ipa group-add --nonposix groupname
Benutzerdefinierte Gruppen-ID verwenden
Um eine benutzerdefinierte Gruppen-ID (GID) anzugeben, verwenden Sie die Option gid=custom_GID
$ ipa group-add gid=custom_GID groupname
Aber Sie müssen vorsichtig sein, um ID-Konflikte zu vermeiden.
Nach Benutzergruppen suchen
Alle Benutzergruppen anzeigen:
$ 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 ----------------------------
Alle Nicht-POSIX-Gruppen anzeigen:
$ 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 ----------------------------
Alle POSIX-Gruppen anzeigen:
$ 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
----------------------------
Alle externen Gruppen anzeigen:
$ ipa group-find --external
----------------
0 groups matched
----------------
----------------------------
Number of entries returned 0
----------------------------
Suchen Sie nach FreeIPA-Gruppenkonten.
ipa group-find development
Sie können die Suchergebnisse auch auf Gruppen beschränken, die einen bestimmten Benutzer enthalten:
$ ipa group-find --user=user_name
Das Gegenteil gilt, wenn nach Gruppen gesucht wird, die keinen bestimmten Benutzer enthalten:
$ ipa group-find --no-user=user_name
Mitglieder zu einem FreeIPA-Gruppenkonto hinzufügen.
ipa group-add-member --users=jdoe qa
FreeIPA-Gruppe zur verschachtelten FreeIPA-Gruppe hinzufügen
ipa group-add-member --groups=development engineering
FreeIPA-Gruppenkonten entfernen.
ipa group-del qa
Benutzer in FreeIPA verwalten
Fügen Sie ein FreeIPA-Benutzerkonto hinzu
Die Befehlssyntax lautet:
$ ipa user-add
Dies sind die häufig verwendeten ipa user-add Befehlsoptionen:
- –first=STR – Vorname des Benutzers
- –last=STR – Nachname des Benutzers
- –cn=STR – Vollständiger Name des Benutzerkontos
- –homedir=STR – Heimatverzeichnis
- –shell=STR – Login-Shell
- –email=STR – E-Mail-Adresse
- –Passwort – Aufforderung, das Benutzerpasswort festzulegen
- –mobile=STR – Mobiltelefonnummer
Der Befehl führt ein Skript aus, in dem Sie grundlegende Daten hinzufügen können, die zum Erstellen eines Benutzerkontos erforderlich sind.
$ 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
Beim Erstellen des Benutzerkontos wird kein Benutzerkennwort festgelegt.
Um dem Benutzer ein Passwort zuzuweisen, verwenden Sie den ipa-Befehl, um den Benutzer mit der folgenden Option hinzuzufügen:
Löschen Sie zuerst den Benutzer
$ ipa user-del jdoe
-------------------
Deleted user "jdoe"
-------------------
Erstellen Sie dann einen Benutzer, der das Passwort angibt
$ 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
So ändern Sie das Passwort für ein FreeIPA-Benutzerkonto
$ ipa passwd jdoe
New Password:
Enter New Password again to verify:
-------------------------------------------
Changed password for "[email protected]"
-------------------------------------------
Benutzerkonto sperren
$ ipa user-disable jdoe
----------------------------
Disabled user account "jdoe"
----------------------------
Benutzerkonto entsperren
$ ipa user-enable jdoe
---------------------------
Enabled user account "jdoe"
---------------------------
FreeIPA-Benutzerkonten durchsuchen
$ 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
----------------------------
Rohbenutzer in Freeipa anzeigen
$ 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
Verwenden Sie zum Ändern der erstellten Benutzerinformationen die Befehlssyntax:
$ ipa [global-options] user-mod LOGIN
Passwort ändern
$ 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
FreeIPA-Benutzerkonten entfernen
ipa user-del jdowe
Fügen Sie ein Mitglied zu einer Benutzergruppe hinzu, indem Sie die Befehlssyntax verwenden:
ipa [global-options] group-add-member GROUP-NAME [options]
Allgemeine Optionen:
- –users=STR – Benutzer, die der Gruppe hinzugefügt werden sollen
- –groups=STR – Gruppen, die der benannten Gruppe hinzugefügt werden sollen
- –services=STR – Dienste, die der Gruppe hinzugefügt werden sollen
- –external=STR Mitglieder einer vertrauenswürdigen Domain im DOM\Name- oder [E-Mail-geschützten] Formular
Siehe untenstehende Beispiele zum Hinzufügen von Benutzern/Gruppen zu einer Gruppe
Fügen Sie den Benutzer jdoe hinzu als Mitgliedsmanager von qa :
$ ipa group-add-member qa --users=jdoe Group name: qa Description: QA Engineers GID: 1063800004 Member users: jdoe ------------------------- Number of members added 1 -------------------------
Hinzufügen eines Benutzers als Mitgliedsmanager zu einer Benutzergruppe
$ ipa group-add-member-manager developers --users=jdoe
Group name: developers
GID: 106380005
Membership managed by users: jdoe
-------------------------
Number of members added 1
-------------------------
Benutzer jdoe kann jetzt Mitglieder von Entwicklern verwalten .
Oder fügen Sie die Gruppe qa hinzu als Mitgliedsmanager von Entwicklern :
$ 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
Gruppe qa können dann Mitglieder von Entwicklern verwalten .
Hinzufügen als Mitglied einer anderen Gruppe hinzufügen
Fügen Sie group_b als Mitglied von group_a hinzu:
$ ipa group-add-member group_a --groups=group_b
Entfernen eines Mitglieds aus einer Benutzergruppe
Bestätigen Sie zunächst, dass die Gruppe das Mitglied enthält, das Sie entfernen möchten.
ipa group-show
Entfernen Sie ein Mitglied aus einer Benutzergruppe, indem Sie den ipa group-remove-member
verwenden Befehl, während Sie die zu entfernenden Mitglieder mit diesen Optionen angeben:
--users
entfernt einen FreeIPA-Benutzer--external
entfernt einen Nutzer, der außerhalb der FreeIPA-Domain existiert, im FormatDOMAIN\user_name
oder[email protected]
--groups
entfernt eine Benutzergruppe
Zum Beispiel, um jmutai zu entfernen aus einer Gruppe namens sysadmins :
$ ipa group-remove-member qa --users=jdoe
Group name: qa
GID: 320800003
---------------------------
Number of members removed 1
---------------------------
Entfernen Sie Nutzer1 , Benutzer2 und Gruppe1 aus einer Gruppe namens Gruppenname :
ipa group-remove-member group_name --users=user1 --users=user2 --groups=group1
Entfernen von Benutzern oder Gruppen als Mitgliedsmanager aus einer Benutzergruppe
Befehlssyntax:
ipa group-remove-member-manager GROUP-NAME [options]
zu verwendende Optionen:
- –users=STR Benutzer zu entfernen
- –groups=STR zu entfernende Gruppen
Zum Beispiel, um den Nutzer user1 zu entfernen als Mitgliedsmanager von Gruppe1 :
$ ipa group-remove-member-manager group1 --users=user1
Entfernen Sie die Gruppe sysadmins als Mitgliedsmanager von devops:
$ ipa group-remove-member-manager developers --groups=qa
Group name: developers
GID: 320800004
Membership managed by users: jdoe
---------------------------
Number of members removed 1
---------------------------
Die Gruppe und ihre Mitglieder können die Mitglieder der Entwicklergruppe nach dem Entfernen nicht mehr verwalten.
Vorhandene lokale Benutzer zum FreeIPA-Verzeichnis hinzufügen.
Legen Sie in diesem Beispiel dasselbe Passwort wie der Benutzername fest, aber es muss bei der ersten Anmeldung geändert werden
# 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