Comment changer l'invite Bash pour un groupe d'utilisateurs spécifique sous Linux
Nous avons déjà examiné comment personnaliser l'invite BASH par défaut sous Linux. Dans ce tutoriel, nous apprendrons comment changer l'invite Bash pour un groupe d'utilisateurs spécifique sous Linux et les systèmes de type Unix.
Avant de configurer des invites BASH personnalisées pour des groupes d'utilisateurs, il est important de comprendre les avantages et les inconvénients de cette approche.
Avantages et inconvénients de l'invite de commandes spécifique à un groupe
Utiliser un invite de commande spécifique à un groupe sous Linux peut être avantageux dans certains scénarios, mais cela comporte également certaines considérations. Voici les avantages et les inconvénients :
Avantages
1. Identification plus facile des rôles des utilisateurs:
- En personnalisant l'invite de commande en fonction de l'appartenance à un groupe, il devient plus facile d'identifier le rôle ou l'environnement dans lequel vous travaillez. Par exemple, une invite
developerinforme instantanément l'utilisateur qu'il appartient au groupe ou à l'environnement des développeurs.
2. Réduction des erreurs:
- Les invites personnalisées peuvent aider à réduire les erreurs, surtout dans les environnements où les utilisateurs passent d'un rôle ou d'un serveur à un autre. Par exemple, une invite distincte pour les utilisateurs
adminpeut leur rappeler le niveau de permissions plus élevé et encourager la prudence.
3. Expérience Utilisateur Améliorée:
- Pour les utilisateurs appartenant à plusieurs groupes, une invite personnalisée fournit une indication claire et visuelle de leur groupe actuel, améliorant ainsi l'expérience utilisateur en rendant le terminal plus informatif et convivial.
4. Utile dans les systèmes multi-utilisateurs :
- Sur les systèmes avec de nombreux utilisateurs, de telles personnalisations peuvent aider à identifier rapidement le type d'utilisateurs connectés et leurs niveaux d'accès, ce qui est bénéfique pour les administrateurs système.
Inconvénients
1. Complexité dans la gestion:
- La mise en œuvre et la gestion de invites personnalisées peuvent ajouter de la complexité, en particulier sur les systèmes avec un grand nombre d'utilisateurs ou de groupes. Cela nécessite des scripts et une configuration supplémentaires.
2. Potentiel de mauvaise configuration :
- Si elles ne sont pas correctement configurées, de tels scripts peuvent entraîner des erreurs de configuration. Par exemple, ajouter incorrectement à
.bashrcpeut provoquer des répétitions indésirables ou même des erreurs de syntaxe pouvant affecter l'environnement de l'utilisateur.
3. Considérations de sécurité:
- L'ajout automatique aux fichiers de configuration tels que
.bashrcpourrait représenter un risque de sécurité s'il n'est pas correctement géré. Il est important de s'assurer que de tels scripts n'ouvrent pas involontairement de vulnérabilités de sécurité.
4. Dépendance à l'égard de l'appartenance à un groupe:
- Cette méthode repose sur l'appartenance à un groupe de l'utilisateur, qui peut évoluer au fil du temps. Elle exige que les appartenances aux groupes soient correctement gérées et à jour.
5. Dépendance excessive aux indices visuels:
- Les utilisateurs pourraient devenir trop dépendants de ces indices visuels et faire des suppositions incorrectes sur leurs privilèges ou leur environnement uniquement en se basant sur l'invite, ce qui pourrait entraîner des erreurs, surtout si la configuration de l'invite présente des problèmes.
En résumé, personnaliser l'invite de commande en fonction de l'appartenance à un groupe peut être utile pour améliorer l'expérience utilisateur et réduire les erreurs dans un environnement multi-utilisateurs ou multi-rôles. Cependant, cela nécessite une mise en œuvre et une gestion soigneuses pour éviter la complexité, les erreurs de configuration et les problèmes de sécurité potentiels.
Allons-y et voyons comment changer l'invite de commande pour un groupe d'utilisateurs spécifique dans les systèmes Linux et similaires à Unix.
Les étapes suivantes ont été testées sur un système Ubuntu 22.04 LTS. Nous espérons que cette méthode pourrait également fonctionner sur d'autres distributions Linux.
Changer l'invite Bash pour un groupe d'utilisateurs spécifique
À des fins de démonstration, je vais créer un nouveau groupe appelé 'developers' et un nouvel utilisateur nommé 'senthil'. Ensuite, j'ajouterai l'utilisateur 'senthil' au groupe 'developers'.
En conséquence, chaque fois que l'utilisateur 'senthil' se connecte, son invite changera automatiquement en 'developer-senthil@ubuntu2204:~$'. Voyons comment le faire étape par étape.
Étape 1 - Créer un groupe dans Linux
Créer le Groupe:
Exécutez la commande suivante pour créer un nouveau groupe nommé developers :
$ sudo groupadd developersCette commande crée un nouveau groupe appelé developers. Il se peut que vous deviez entrer votre mot de passe si cela vous est demandé.
Étape 2 - Ajouter un nouvel utilisateur et l'assigner au groupe
Créer un nouvel utilisateur:
Pour créer un nouvel utilisateur nommé senthil, utilisez la commande :
$ sudo adduser senthilVous serez invité à définir un mot de passe pour le nouvel utilisateur et à remplir certaines informations facultatives sur l'utilisateur. Remplissez-les selon les besoins.
Ajouter l'utilisateur au groupe :
Pour ajouter senthil au groupe developers, utilisez :
$ sudo usermod -aG developers senthilL'option -aG ajoute l'utilisateur au groupe tout en conservant ses appartenances aux groupes existants.
Étape 3 - Définir une invite Bash personnalisée pour un groupe d'utilisateurs spécifique
Lorsque vous souhaitez modifier l'invite de commande pour les utilisateurs qui sont membres d'un groupe spécifique, vous avez deux options quant à l'endroit où placer le script qui vérifie le groupe de l'utilisateur et modifie l'invite. Le choix dépend de savoir si vous voulez que le changement s'applique à un seul utilisateur ou à plusieurs utilisateurs :
Fichier .bashrc de l'utilisateur individuel :
- Si vous voulez que la modification s'applique uniquement à un utilisateur spécifique, vous devez ajouter les lignes au fichier
.bashrcde cet utilisateur situé dans son répertoire personnel (~/.bashrc). - Cette approche est spécifique à l'utilisateur. Chaque utilisateur pour lequel vous souhaitez appliquer ce changement devra ajouter le script à son propre fichier
.bashrc. - Par exemple, si vous voulez que seul
senthilait une invite différente lorsqu'il fait partie du groupedevelopers, vous ajouteriez les lignes uniquement au fichier.bashrcdesenthil.
Fichier de configuration global /etc/bash.bashrc :
- Si vous voulez que ce changement s'applique à tous les utilisateurs du système, vous pouvez modifier le fichier global
/etc/bash.bashrc. - Cette méthode appliquera le changement à l'environnement de chaque utilisateur, mais le script ne changera l'invite que pour les utilisateurs qui font partie du groupe spécifié.
- Ceci est utile si vous avez plusieurs utilisateurs dans le groupe et que vous souhaitez le même comportement pour tous sans modifier chaque fichier
.bashrcindividuel.
Avant de faire des modifications dans le fichier local ~/.bashrc ou global /etc/bash.bashrc, je vous recommande vivement de les sauvegarder. Cela vous permet de restaurer les paramètres originaux si quelque chose tourne mal.
Pour sauvegarder le fichier ~/.bashrc de l'utilisateur, exécutez :
$ cp ~/.bashrc ~/.bashrc_backupPour sauvegarder le fichier global bashrc, exécutez :
$ sudo cp /etc/bash.bashrc /etc/bash.bashrc_backupAprès avoir sauvegardé le fichier bashrc approprié, ouvrez-le en utilisant votre éditeur préféré.
Ici, je vais appliquer cette méthode à tous les utilisateurs du système, donc je modifie le fichier global /etc/bash.bashrc.
$ sudo nano /etc/bash.bashrcAjoutez les lignes suivantes à la fin :
bashrc_file="/home/$(whoami)/.bashrc"
developer_prompt='PS1="developer-\u@\h:\w\$ "'
# Function to add or update PS1 in .bashrc
add_or_update_ps1() {
prompt_line=$1
grep -qF -- "$prompt_line" "$bashrc_file" || echo "$prompt_line" >> "$bashrc_file"
}
if id -nG "$(whoami)" | grep -qw "developers"; then
add_or_update_ps1 "$developer_prompt"
fiDécomposons le code ci-dessus et voyons ce que fait chaque option.
Définir les variables:
bashrc_filecontient le chemin vers le fichier.bashrcde l'utilisateur.developer_promptcontient les chaînes PS1 pour les utilisateurs appartenant au groupedevelopers.
Fonction add_or_update_ps1 :
- Cette fonction prend une ligne d'invite comme argument.
- Il utilise
grep -qFpour vérifier si la ligne d'invite exacte existe déjà dans.bashrc. - Le
--garantit que la chaîne suivante est traitée comme une littérale et non comme une option de commande. - S'il n'existe pas (
||), la ligne d'invite est ajoutée à.bashrc.
Vérifier l'appartenance au groupe et appliquer l'invite:
- Le script vérifie si l'utilisateur fait partie du groupe
developers. - Si l'utilisateur appartient au groupe
developers, il appelleadd_or_update_ps1avecdeveloper_prompt.
En résumé, ce script modifie l'invite de commande pour les utilisateurs appartenant au groupe developers en ajoutant une définition d'invite personnalisée à leur fichier .bashrc. Il s'assure que l'invite personnalisée n'est ajoutée qu'une seule fois pour éviter les doublons.
Appuyez sur CTRL+O suivi de CTRL+X pour enregistrer le fichier et quitter.
N'oubliez pas qu'après avoir modifié l'un ou l'autre fichier, les modifications ne prendront effet que lorsqu'une nouvelle session shell sera démarrée. Les utilisateurs peuvent soit se déconnecter puis se reconnecter, soit exécuter source ~/.bashrc dans leur session actuelle pour appliquer les modifications immédiatement.
Appliquez les modifications en utilisant la commande :
$ source /etc/bash.bashrcÉtape 4 - Vérifier l'invite Bash
Déconnectez-vous maintenant et reconnectez-vous en tant qu'utilisateur 'senthil'. Ouvrez votre Terminal et vous verrez que l'invite de l'utilisateur a changé pour ressembler à ceci :
Si votre système n'a pas d'interface graphique, vous pouvez le vérifier en vous connectant au système via SSH depuis d'autres systèmes.
developer-senthil@ubuntu2204:~$Tu vois ? L'invite Bash de l'utilisateur a été changée.
Changer l'invite Bash en fonction de l'appartenance au groupe Sudo
Vous pouvez modifier davantage ce script pour distinguer entre différents types d'utilisateurs.
Disons par exemple, vous pouvez distinguer les utilisateurs normaux et les utilisateurs administratifs qui appartiennent au groupe sudo sous Linux. Cela implique de modifier l'invite de commande en fonction de si l'utilisateur a des privilèges sudo.
Ajoutez les lignes suivantes au fichier global /etc/bash.bashrc ou au fichier .bashrc d'un utilisateur individuel :
bashrc_file="/home/$(whoami)/.bashrc"
sudo_prompt='PS1="sudouser-\u@\h:\w\$ "'
normal_prompt='PS1="normaluser-\u@\h:\w\$ "'
# Function to add or update PS1 in .bashrc
add_or_update_ps1() {
prompt_line=$1
grep -qF -- "$prompt_line" "$bashrc_file" || echo "$prompt_line" >> "$bashrc_file"
}
if id -nG "$(whoami)" | grep -qw "sudo"; then
add_or_update_ps1 "$sudo_prompt"
else
add_or_update_ps1 "$normal_prompt"
fiCe script changera l'invite en sudouser-<username>@hostname: ~$ pour les utilisateurs du groupe sudo et en normaluser-<username>@hostname: ~$ pour les utilisateurs n'appartenant pas au groupe sudo.
Est-ce une configuration recommandée ?
Que cette configuration soit recommandée dépend du contexte et des besoins du système :
Avantages:
- Identification claire des rôles : Semblable aux invites spécifiques à un groupe, cette configuration aide à identifier immédiatement si la session utilisateur actuelle dispose des privilèges sudo, ce qui peut être particulièrement utile dans les environnements multi-utilisateurs.
- Prévention des erreurs : Il agit comme un rappel constant des privilèges de l'utilisateur, ce qui peut potentiellement empêcher l'exécution accidentelle de commandes avec des privilèges élevés.
Inconvénients:
- Complexité et maintenance : Comme toute personnalisation, elle ajoute un niveau de complexité à la configuration du système et nécessite une maintenance appropriée.
- Faux sentiment de sécurité : Les utilisateurs pourraient développer un faux sentiment de sécurité ou de complaisance, en pensant que le changement d'invite reflète pleinement leurs privilèges. Cependant, les autorisations réelles sont plus nuancées et dépendent du contexte.
- Potentiel de mauvaise configuration : Mal implémenté, cela pourrait entraîner de la confusion ou une mauvaise configuration.
En résumé, personnaliser l'invite de commande pour distinguer les utilisateurs normaux des utilisateurs sudo peut être utile dans certains environnements, en particulier là où l'identification rapide des privilèges des utilisateurs est importante.
Cependant, ce n'est pas recommandé universellement, car cela ajoute de la complexité et dépend des besoins spécifiques et des capacités de gestion des administrateurs système.
Restaurer le fichier .bashrc aux paramètres par défaut
Si vous rencontrez des problèmes, vous pouvez annuler les modifications en restaurant le fichier .bashrc à partir de votre sauvegarde. Si vous n'avez pas fait de sauvegarde, vous pouvez soit modifier le fichier manuellement à nouveau et supprimer ou commenter le script personnalisé que vous avez ajouté lors des étapes précédentes.
De plus, il existe une version par défaut du fichier .bashrc dans le répertoire /etc/skel/ sur les systèmes Debian et Ubuntu.
$ ls -al /etc/skel/
total 32
drwxr-xr-x 2 root root 4096 Jan 8 18:02 .
drwxr-xr-x 138 root root 12288 Jan 8 17:55 ..
-rw-r--r-- 1 root root 220 Jan 6 2022 .bash_logout
-rw-r--r-- 1 root root 4116 Jan 8 18:00 .bashrc
-rw-r--r-- 1 root root 807 Jan 6 2022 .profileCopiez la version par défaut du fichier ~/.bashrc dans votre version actuelle comme suit :
$ cp /etc/skel/.bashrc ~/Enfin, exécutez la commande suivante pour mettre à jour les modifications.
$ source ~/.bashrcPour plus de détails, consultez le lien suivant :
Comment Restaurer le Fichier .bashrc aux Paramètres Par Défaut dans Ubuntu
Conclusion
Dans ce tutoriel, nous avons discuté de la manière de définir un invite bash personnalisé pour les utilisateurs d'un certain groupe, ainsi que des avantages et des inconvénients de la modification de l'invite de commande sous Linux avec des scripts d'exemple.
Bien que la modification des invites bash puisse être utile pour des besoins spécifiques dans certains environnements, elle n'est généralement pas recommandée pour les débutants.
Il est toujours bon de tester cette approche dans une machine virtuelle et de peser les avantages par rapport aux risques et complexités potentiels avant de mettre en œuvre ces changements.
Lecture connexe :
- Comment changer l'invite sudo sous Linux

