GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die Auswirkungen des Hinzufügens von Benutzern zu einem Linux-System

Dieser Artikel behandelt meine Reise des Lernens über die Linux-Dateisystemarchitektur und die Nutzung meines Wissens zum Schreiben eines Shell-Skripts zum Erstellen von Linux-Benutzern. In meinem zweiten Studienjahr lernte ich das Linux-Dateisystem kennen, als mir das Konzept der Benutzer in den Sinn kam. Ich habe versucht, Benutzer in Linux-basierten Betriebssystemen zu erstellen.

Das Skript ist für die Red-Hat-basierten Betriebssysteme konzipiert und kann mit geringfügigen Modifikationen auch für andere Linux-Distributionen verwendet werden. Beachten Sie, dass es ksh verwendet .

[Das könnte Ihnen auch gefallen: Linux-Grundlagen für Systemadministratoren:Benutzerkontenverwaltung]

Der Fokus liegt auf Dateien, die sich in /etc befinden Verzeichnis, in dem die Systemkonfigurationsinformationen gespeichert sind. Ich zeige Ihnen, wie Sie mit Systemdateien arbeiten und einen neuen Nutzer erstellen. Root-Zugriff ist erforderlich.

Hier sind die Dateien, die beim Erstellen eines neuen Benutzers in Linux geändert werden:

  1. /etc/passwd
  2. /etc/shadow
  3. /etc/group
  4. /etc/gshadow
  5. /home/USER
  6. /var/spool/mail/USER

Das System erhöht die Sicherheit des Basisverzeichnisses und Postfachs des Nutzers (USER), indem es die Eigentümerschaft auf den Nutzer und die Gruppe des Nutzers festlegt.

/etc/passwd

Diese Datei speichert Informationen über den Benutzer, wie z. B. Benutzername, Benutzer-ID, Gruppen-ID, vollständiger Name (Kommentar) und Shell. Die Daten werden im folgenden Format gespeichert: UserName:Link:UserID:GroupID:Comment:HomeDirectory:Shell

Jede Zeile der Datei enthält die folgenden Informationen über die Benutzer:

  • Benutzername:Bezeichnet den Benutzernamen, der dem Benutzer für den einfachen Zugriff bereitgestellt wird.
  • Link:Stellt dar, dass das Passwort des Benutzers in /etc/shadow gespeichert ist Datei. Wenn x entfernt wird, wird das Passwort nicht überprüft und der Benutzer kann sich nicht anmelden.
  • Benutzer-ID:Allgemein als UID bekannt und zur eindeutigen Darstellung eines Benutzers verwendet. Er reicht von 0 bis 65.535.
    • UID =0 -> Root-Benutzerkonto
    • UID =1.000 bis 60.000 -> Nicht-Root-/allgemeine Konten
    • UID =1 bis 999 und 60.001 bis 65.535 -> Systembenutzer
  • Gruppen-ID:Gleich wie Benutzer-ID, aber verwendet, um eine Gruppe eindeutig darzustellen.
  • Kommentar:Zusätzliche Informationen zum Benutzer. Normalerweise der vollständige Name des Benutzers.
  • HomeDirectory:Speicherort des Home-Verzeichnisses des Benutzers.
  • Shell:Standard-Shell des Benutzers.

/etc/shadow

Diese Datei speichert die Informationen über das Passwort des Benutzers und enthält das Passwort in verschlüsselter Form.

Die Daten werden in folgendem Format gespeichert:

Benutzername:EncryptedPassword:LastPasswordChange:MinPwdAge:MaxPwdAge:WarningPeriod:InactivityPeriod:ExpirationDate:Unused

  • Benutzername:Bezeichnet den dem Benutzer bereitgestellten Benutzernamen.
  • Verschlüsseltes Passwort:Das Passwort wird mit Hash-Algorithmen wie sha256, sha512, md5 usw. verschlüsselt und in der Datei gespeichert.
  • Letzte Passwortänderung:Speichert das Epochendatum seit der letzten Passwortänderung.
  • Min. Passwortalter:Speichert die Anzahl der Tage bis zur nächsten Passwortänderung.
    • Standardmäßig 0 -> Kein Mindestalter
  • Max. Passwortalter:Speichert die maximale Anzahl von Tagen, nach denen der Benutzer das Passwort ändern muss.
    • Standardmäßig 99.999 -> kein Höchstalter
  • Warnzeitraum:Anzahl der Tage, nach denen die Warnung angezeigt wird, das Passwort zu ändern.
    • Standardmäßig NULL
  • Inaktivitätszeitraum:Gibt die Anzahl der Tage nach Ablauf des Benutzerkennworts an, bevor das Konto deaktiviert wird.
  • Ablaufdatum:Epochendatum bis zur Deaktivierung des Kontos.
  • Nicht verwendet:Reserviert für zukünftige Verwendung.

Andere Dateien

  • /etc/group und /etc/gshadow Dateien sind für Gruppen in Linux und speichern die Daten im Format GroupName:Link:GroupID:MemberList und Gruppenname:Passwort:Reserviert:Mitgliederliste bzw..
  • Das Home-Verzeichnis des Benutzers ist im Verzeichnis /home anzulegen Verzeichnis mit den Daten aus /etc/skel Ordner.
  • Mailbox erstellt in /var/spool/mail Verzeichnis.

Das Skript

Das Folgende ist das Shell-Skript, das ich geschrieben habe, um neue Benutzer zu erstellen, das in Teile aufgeschlüsselt ist:

uname=$1
 
id -u $uname&>/dev/null

Zuerst wird geprüft, ob der Nutzer bereits existiert:

if [ $? -ne 0 ]
then
for i in {1000..60000}
do 
id -u $i&>/dev/null & id -g $i&>/dev/null
if [ $? -ne 0 ]
then
break
fi
done
uid=$i
echo "$uname:x:$uid:$uid::/home/$uname:/bin/bash">>/etc/passwd
lastpwdchange=$(datediff 1970-01-01 `date +"%Y-%m-%d"`)
echo "$uname::$lastpwdchange:0:99999:7:::">>/etc/shadow
echo "$uname:x:$uid:">>/etc/group
echo "$uname:!::">>/etc/gshadow
mkdir /home/$uname
cp -a /etc/skel/. /home/$uname/
chown $uname:$uname /home/$uname/ -R
chmod 0700 /home/$uname/ -R
touch /var/spool/mail/$uname
chown $uname:$uname /var/spool/mail/$uname
 
echo "User successfully created"
else
echo "User already exists : try using a unique username">&2
fi

Wenn der Nutzer bereits vorhanden ist, beenden Sie das Programm oder erstellen Sie den Nutzer.

Der vollständige Code ist öffentlich auf GitHub verfügbar.

Führen Sie das Shell-Skript aus

[Anmerkung des Herausgebers:Auch wenn dieses Skript ziemlich einfach erscheinen mag, stellen Sie immer sicher, dass Sie alle Skripts, die Sie finden, verstehen und ihnen vertrauen, bevor Sie sie installieren oder ihre Berechtigungen auf Ihrem System eskalieren. ]

1) Legen Sie das Shell-Skript im Verzeichnis /usr/bin/ ab um es als Befehl zugänglich zu machen.

2) Ausführungsberechtigung für Root-Benutzer hinzufügen:

# chmod u+x /usr/bin/ksh_useradd

3) Führen Sie den Befehl mit dem Benutzernamen als Argument aus:

ksh_useradd USERNAME

4) Das Skript erstellt das Benutzerkonto. Sie müssen vor der ersten Anmeldung ein Passwort für den neuen Benutzer festlegen.

[ Kostenloser Online-Kurs:Technischer Überblick zu Red Hat Enterprise Linux. ] 

Abschluss

Dieses Skript kann das Erstellen von Benutzern ein wenig einfacher machen, als sich Schalter für useradd zu merken Befehl. Sicher, Sie können das useradd verwenden Befehl, um Benutzer zu erstellen, Berechtigungen festzulegen und das Postfach des Benutzers zu erstellen, aber dieses Skript führt die gleichen Aktionen aus wie useradd und hilft Ihnen zu erfahren, was mit Ihrem Dateisystem hinter den Kulissen vor sich geht. Ich hoffe, dass die obigen Erklärungen Ihnen helfen, die Konfigurationsdateien im Zusammenhang mit der Benutzererstellung und ihre Felder etwas klarer zu verstehen.


Linux
  1. So erstellen Sie mehrere Benutzerkonten in Linux

  2. Verwalten Sie Linux-Benutzer und Linux-Gruppen

  3. So ändern Sie die Identität eines Linux-Systems

  4. Was ist der aktuelle Runlevel des Linux-Systems?

  5. Warum heißt der mächtigste Benutzer auf einem Unix/Linux-System „root“?

So beschränken Sie den Zugriff des Benutzers auf das Linux-System

Der Linux-Top-Befehl

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie man die Gruppen eines Linux-Benutzers kennt

Hinzufügen neuer Benutzer in Linux mit dem Useradd-Befehl

Der ultimative Leitfaden zum Erstellen von Benutzern in Linux / Unix