abonnel-siteweb/data/pages/informatique/linux/commandes/useradd.txt

109 lines
4.4 KiB
Plaintext
Raw Permalink Normal View History

2024-01-07 10:02:35 +01:00
====== useradd ======
{{ :dummy.png?75x75|Créer un nouveau compte utilisateur}}
La commande ''useradd'' est une commande sous Linux utilisée pour créer un nouveau compte utilisateur sur le système. Elle est généralement utilisée par les administrateurs système pour ajouter de nouveaux utilisateurs, tels que des utilisateurs réguliers ou des comptes de service, au système.
La syntaxe de base de la commande ''useradd'' est la suivante :
<code BASH>
useradd [options] nom_utilisateur
</code>
où ''nom_utilisateur'' est le nom du nouveau compte à créer, et ''[options]'' sont des options facultatives permettant de spécifier différents paramètres pour le nouveau compte. Parmi les options courantes, on trouve :
* ''-c'' commentaire : spécifie un commentaire pour le compte.
* ''-m'' : crée le répertoire personnel pour le compte s'il n'existe pas déjà.
* ''-s'' shell : spécifie le shell par défaut pour le compte.
* ''-g'' groupe : spécifie le groupe principal pour le compte.
* ''-G'' groupes : spécifie les groupes supplémentaires pour le compte (séparés par des virgules).
Par exemple, pour créer un nouveau compte utilisateur nommé [[informatique:linux:system:choix-du-nom-d-utilisateur#le-compte-alice|alice]] avec le shell Bash et le groupe principal ''users'', vous pouvez utiliser la commande suivante :
<code BASH>
useradd -m -s /bin/bash -g users alice
</code>
Il est important de noter que la commande ''useradd'' crée un compte utilisateur, mais ne définit pas de mot de passe pour ce compte. Il est donc recommandé de définir un mot de passe pour le compte dès que possible après sa création avec la commande [[.:passwd|passwd]].
===== Script de création de compte avancé =====
Voici un exemple de script Bash qui utilise la commande useradd pour créer un compte utilisateur nommé ''alice'' avec un mot de passe aléatoire et stocke l'adresse e-mail de l'utilisateur demandée au préalable, envoie un mail pour le mot de passe :
<code BASH>
#!/bin/bash
# Définition des couleurs pour l'affichage de messages
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
# Fonction pour afficher un message d'erreur
function print_error() {
echo -e "${RED}[ERROR] $1${NC}"
}
# Fonction pour afficher un message d'information
function print_info() {
echo -e "${YELLOW}[INFO] $1${NC}"
}
# Fonction pour afficher un message de succès
function print_success() {
echo -e "${GREEN}[SUCCESS] $1${NC}"
}
# Fonction pour ajouter un nouvel utilisateur avec la commande useradd
function add_user() {
local username=$1
local realname=$2
local homedir=$3
local shell=$4
local groups=$5
local email=$6
# Vérifier si l'utilisateur existe déjà
if id -u "$username" >/dev/null 2>&1; then
print_error "L'utilisateur $username existe déjà."
return 1
fi
# Créer un nouveau répertoire home pour l'utilisateur
if [ ! -d "$homedir" ]; then
mkdir -p "$homedir"
chmod 700 "$homedir"
chown "$username:$username" "$homedir"
fi
# Générer un mot de passe aléatoire
local password=$(pwgen -1 12)
# Envoyer le mot de passe à l'adresse e-mail de secours si fournie
if [ -n "$email" ]; then
echo "Le mot de passe pour l'utilisateur $username est : $password" | mail -s "Mot de passe utilisateur" "$email"
fi
# Stocker l'adresse e-mail de secours
echo "$email" > "$homedir/.email-secours"
# Ajouter l'utilisateur avec la commande useradd
useradd -c "$realname" -d "$homedir" -s "$shell" -G "$groups" -m "$username"
# Définir le mot de passe de l'utilisateur
echo "$username:$password" | chpasswd
# Inviter l'utilisateur à changer de mot de passe au prochain démarrage
passwd -e $username
print_success "L'utilisateur $username a été ajouté avec succès."
}
</code>
Ce script génère un mot de passe avec la commande ''pwgen'' qui peut générer des mots de passe aléatoires sécurisés, utilise la commande ''useradd'' pour créer un nouveau compte utilisateur nommé ''alice'' avec le mot de passe aléatoire et stocke l'adresse e-mail de secours de l'utilisateur dans le fichier ''.email-secours'' du répertoire de l'utilisateur, puis envoie le nouveau mot de passe par courrier électronique à l'adresse e-mail de l'utilisateur à l'aide de la commande ''mail''.
Exemple d'utilisation de la fonction ''add_user'' :
add_user "alice" "Alice Doe" "/home/alice" "/bin/bash" "sudo,www-data" "alice.doe@example.com"