GNU/Linux >> Tutoriels Linux >  >> Linux

Les effets de l'ajout d'utilisateurs à un système Linux

Cet article couvre mon parcours d'apprentissage de l'architecture du système de fichiers Linux et l'utilisation de mes connaissances pour écrire un script shell pour créer des utilisateurs Linux. Au cours de ma deuxième année d'université, j'ai découvert le système de fichiers Linux lorsque le concept d'utilisateurs m'est venu à l'esprit. J'ai essayé de créer des utilisateurs dans des systèmes d'exploitation basés sur Linux.

Le script est conçu pour les systèmes d'exploitation basés sur Red Hat et peut également être utilisé pour d'autres distributions Linux avec quelques légères modifications. Notez qu'il utilise ksh .

[ Vous pourriez également aimer : Linux Sysadmin Basics :User account management ]

L'accent est mis sur les fichiers situés dans le /etc répertoire, qui stocke les informations de configuration du système. Je montre comment travailler avec des fichiers système et créer un nouvel utilisateur. L'accès root est une exigence.

Voici les fichiers qui sont modifiés lors de la création d'un nouvel utilisateur sous Linux :

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

Le système renforce la sécurité du répertoire personnel et de la boîte aux lettres de l'utilisateur (USER) en définissant la propriété de l'utilisateur et du groupe de l'utilisateur.

/etc/passwd

Ce fichier stocke des informations sur l'utilisateur, telles que le nom d'utilisateur, l'ID utilisateur, l'ID de groupe, le nom complet (Commentaire) et le shell. Les données sont stockées au format suivant : UserName:Link:UserID:GroupID:Comment:HomeDirectory:Shell

Chaque ligne du fichier contient les informations suivantes sur les utilisateurs :

  • Nom d'utilisateur :désigne le nom d'utilisateur fourni à l'utilisateur pour un accès facile.
  • Lien :représente le mot de passe de l'utilisateur stocké dans /etc/shadow dossier. Si x est supprimé, le mot de passe ne sera pas vérifié et l'utilisateur ne pourra pas se connecter.
  • UserID :communément appelé UID et utilisé pour représenter de manière unique un utilisateur. Il va de 0 à 65 535.
    • UID =0 -> compte utilisateur racine
    • UID =1 000 à 60 000 -> Comptes non root/généraux
    • UID =1 à 999 et 60 001 à 65 535 -> Utilisateurs du système
  • GroupID :identique à UserID, mais utilisé pour représenter un groupe de manière unique.
  • Commentaire :informations supplémentaires sur l'utilisateur. Généralement, le nom complet de l'utilisateur.
  • HomeDirectory :emplacement du répertoire personnel de l'utilisateur.
  • Shell :shell par défaut de l'utilisateur.

/etc/ombre

Ce fichier stocke les informations sur le mot de passe de l'utilisateur et contient le mot de passe sous une forme cryptée.

Les données sont stockées au format suivant :

UserName :EncryptedPassword :LastPasswordChange :MinPwdAge :MaxPwdAge :WarningPeriod :InactivityPeriod :ExpirationDate :Inutilisé

  • Nom d'utilisateur :indique le nom d'utilisateur fourni à l'utilisateur.
  • Mot de passe crypté :le mot de passe est crypté à l'aide d'algorithmes de hachage tels que sha256, sha512, md5, etc., et stocké dans le fichier.
  • Dernier changement de mot de passe :stocke la date d'époque depuis la dernière modification du mot de passe.
  • Min Password Age :stocke le nombre de jours jusqu'au prochain changement de mot de passe.
    • Par défaut, 0 -> Pas d'âge minimum
  • Max Password Age :stocke le nombre maximal de jours après lesquels l'utilisateur doit changer de mot de passe.
    • Par défaut, 99 999 -> Pas d'âge maximum
  • Période d'avertissement :nombre de jours après lequel l'avertissement s'affiche pour modifier le mot de passe.
    • Par défaut, NULL
  • Période d'inactivité :il spécifie le nombre de jours après l'expiration du mot de passe de l'utilisateur avant que le compte ne soit désactivé.
  • Date d'expiration :date d'époque jusqu'à ce que le compte soit désactivé.
  • Inutilisé :réservé pour une utilisation future.

Autres fichiers

  • /etc/group et /etc/gshadow les fichiers sont destinés aux groupes sous Linux et stockent les données au format GroupName:Link:GroupID:MemberList et GroupName:Password:Reserved:MemberList respectivement.
  • Le répertoire personnel de l'utilisateur doit être créé dans le /home répertoire avec les données du /etc/skel dossier.
  • Boîte aux lettres créée dans le /var/spool/mail répertoire.

Le scénario

Voici le script shell que j'ai écrit pour créer de nouveaux utilisateurs divisé en plusieurs parties :

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

Tout d'abord, il vérifie si l'utilisateur existe déjà :

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

Si l'utilisateur existe déjà, quittez le programme ou créez l'utilisateur.

Le code complet est disponible publiquement sur GitHub.

Exécuter le script shell

[ Note de l'éditeur :Bien que ce script puisse sembler assez simple, assurez-vous toujours de comprendre et de faire confiance aux scripts que vous trouvez avant de les installer ou d'augmenter leurs autorisations sur votre système. ]

1) Placez le script shell dans le répertoire /usr/bin/ pour le rendre accessible en tant que commande.

2) Ajoutez une autorisation d'exécution pour l'utilisateur racine :

# chmod u+x /usr/bin/ksh_useradd

3) Exécutez la commande avec le nom d'utilisateur comme argument :

ksh_useradd USERNAME

4) Le script crée le compte utilisateur. Vous devez définir un mot de passe pour le nouvel utilisateur avant la première connexion.

[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ] 

Récapitulez

Ce script peut rendre le processus de création d'utilisateurs un peu plus facile que de se souvenir des commutateurs pour useradd commande. Bien sûr, vous pouvez utiliser le useradd commande pour créer des utilisateurs, définir des autorisations et créer la boîte aux lettres de l'utilisateur, mais ce script effectue les mêmes actions que useradd et vous aide à comprendre ce qui se passe dans les coulisses de votre système de fichiers. J'espère que les explications ci-dessus vous aideront à comprendre un peu plus clairement les fichiers de configuration liés à la création d'utilisateurs et leurs champs.


Linux
  1. Comment créer plusieurs comptes d'utilisateurs sous Linux

  2. Liste des utilisateurs sous Linux - Meilleure méthode

  3. Quel est le niveau d'exécution actuel du système Linux ?

  4. Affichage des utilisateurs système sous Linux

  5. Pourquoi l'utilisateur le plus puissant d'un système Unix/Linux s'appelle-t-il "root ?"

Comment limiter l'accès de l'utilisateur au système Linux

La commande supérieure de Linux

Comment utiliser la commande fd sur le système Linux

Comment connaître les groupes d'un utilisateur Linux

Ajout de nouveaux utilisateurs sous Linux avec la commande Useradd

Le guide ultime pour créer des utilisateurs sous Linux / Unix