Comprendre les fichiers d'initialisation du shell et les profils d'utilisateurs dans Linux

Comprendre les fichiers d'initialisation du shell et les profils d'utilisateurs dans Linux

Linux est un système de partage de temps multi-utilisateurs, ce qui implique que plus d'un utilisateur peut se connecter et utiliser un système. Et les administrateurs système ont la tâche de gérer divers aspects de la façon dont les différents utilisateurs peuvent utiliser un système en termes d'installation / mise à jour / supprimer des logiciels, des programmes qu'ils peuvent exécuter, des fichiers qu'ils peuvent afficher / modifier et ainsi de suite.

Linux permet également à l'environnement des utilisateurs d'être créé ou maintenu de deux manières principales: l'utilisation de configurations à l'échelle du système (globale) et spécifiques aux utilisateurs (personnelles). Normalement, la méthode de base pour travailler avec un système Linux est le shell, et le shell crée un environnement en fonction de certains fichiers qu'il lit lors de son initialisation après une connexion utilisateur réussie.

Lire suggérée: Comment définir des variables d'environnement dans Linux

Dans cet article, nous expliquerons les fichiers d'initialisation du shell en relation avec les profils d'utilisateurs pour la gestion locale des utilisateurs dans Linux. Nous vous ferons savoir où conserver les fonctions de shell personnalisées, les alias, les variables ainsi que les programmes de démarrage.

Important: Aux fins de cet article, nous nous concentrerons sur frapper, un shot Shell compatible qui est la coque la plus populaire / utilisée sur les systèmes Linux.

Si vous utilisez un programme de shell (Zsh, Ash, Fish, etc.) différent, lisez sa documentation pour en savoir plus sur certains des fichiers connexes dont nous parlerons ici.

Initialisation du shell dans Linux

Lorsque le shell est invoqué, il existe certains fichiers d'initialisation / de démarrage qu'il lit qui aident à configurer un environnement pour le shell lui-même et l'utilisateur du système; qui sont des fonctions, des variables, des alias prédéfinis (et personnalisés).

Il existe deux catégories de fichiers d'initialisation lus par le shell:

  • Fichiers de démarrage à l'échelle du système - Les thèses contiennent des configurations globales qui s'appliquent à tous les utilisateurs du système et sont généralement situés dans le /etc annuaire. Ils comprennent: / etc / Profils et / etc / bashrc ou / etc / bash.bashrc.
  • Fichiers de démarrage spécifiques à l'utilisateur - Ceux-ci stockent des configurations qui s'appliquent à un seul utilisateur sur le système et sont normalement situées dans le répertoire personnel des utilisateurs sous forme de fichiers DOT. Ils peuvent remplacer les configurations à l'échelle du système. Ils comprennent: .profils, .bash_profile, .bashrc et .bash_login.

Encore une fois, la coquille peut être invoquée en trois modes possibles:

1. Shell de connexion interactif

Le shell est invoqué après qu'un utilisateur se connecte avec succès dans le système, en utilisant / bac / connexion, Après avoir lu les références stockées dans le / etc / passwd déposer.

Lorsque le shell est démarré comme un shell de connexion interactif, il lit le / etc / profil et son équivalent spécifique à l'utilisateur ~ /.bash_profile.

Shel de connexion interactif Linux

2. Coquille interactive non d'enregistrement

Le shell est démarré en ligne de commande à l'aide d'un programme de shell par exemple $ / bin / bash ou $ / bin / zsh. Il peut également être démarré en exécutant le / bac / su commande.

De plus, une coquille interactive non d'enregistrement peut également être invoquée avec un programme terminal tel que konsole, Terminator ou xterm à partir d'un environnement graphique.

Lorsque le shell est démarré dans cet état, il copie l'environnement du shell parent et lit le ~ /.bashrc Fichier pour des instructions de configuration de démarrage supplémentaires.

$ su # ls -la 
Coquille interactive non d'enregistrement

3. Coquille non interactive

Le shell est invoqué lorsqu'un script shell est en cours d'exécution. Dans ce mode, il traite un script (ensemble de commandes / fonctions système génériques ou génériques) et ne nécessite pas une entrée de l'utilisateur entre les commandes, sauf contrainte. Il fonctionne en utilisant l'environnement hérité du shell parent.

Comprendre les fichiers de démarrage de shell à l'échelle du système

Dans cette section, nous allons faire plus de lumière sur les fichiers de démarrage de shell qui stockent des configurations pour tous les utilisateurs du système et incluent:

Le / etc / fichier de profil - Il stocke les configurations d'environnement à l'échelle du système et les programmes de démarrage pour la configuration de la connexion. Toutes les configurations que vous souhaitez appliquer à tous les environnements des utilisateurs du système doivent être ajoutées dans ce fichier.

Par exemple, vous pouvez définir votre variable Global Path Environment ici.

# chat / etc / profil 
Fichier de configuration à l'échelle du système

Note: Dans certains systèmes comme Rhel / centos 7, Vous obtiendrez des avertissements tels que «il n'est pas recommandé de modifier ce fichier à moins que vous ne sachiez ce que vous faites. Il vaut mieux créer une coutume .shot script shell dans / etc / profil.d/ Pour apporter des modifications personnalisées à votre environnement, car cela empêchera la nécessité de fusionner dans les futures mises à jour ».

Le / etc / profil.d/ Répertoire - stocke les scripts shell utilisés pour apporter des modifications personnalisées à votre environnement:

# CD / etc / profil.d / # ls -l 
Stocke des scripts de coquille personnalisés

Le / etc / bashrc ou / etc / bash.bashrc Fichier - contient des fonctions et des alias à l'échelle du système, y compris d'autres configurations qui s'appliquent à tous les utilisateurs du système.

Si votre système dispose de plusieurs types de shells, c'est une bonne idée de mettre des configurations spécifiques à Bash dans ce fichier.

# chat / etc / bashrc 
Fonctions et alias à l'échelle du système

Comprendre les fichiers de démarrage de shell spécifiques à l'utilisateur

Ensuite, nous expliquerons plus concernant les fichiers DOT de démarrage de shell spécifique à l'utilisateur (bash), qui stockent les configurations pour un utilisateur particulier sur le système, ils sont situés dans le répertoire personnel d'un utilisateur et incluent:

# LS -LA 
Fichiers de configuration spécifiques à l'utilisateur

Le ~ /.bash_profile Fichier - Cela stocke des configurations de programmes de programmes et de démarrages spécifiques aux utilisateurs. Vous pouvez définir votre variable d'environnement de chemin personnalisé ici, comme indiqué dans la capture d'écran ci-dessous:

# chat ~ /.bash_profile 
Profil de bash

Le ~ /.bashrc Fichier - Ce fichier stocke les alias et fonctions spécifiques aux utilisateurs.

# chat ~ /.bashrc 
Fichier Bashrc utilisateur

Le ~ /.bash_login Fichier - il contient des configurations spécifiques qui ne sont normalement exécutées que lorsque vous vous connectez au système. Quand le ~ /.bash_profile est absent, ce fichier sera lu par bash.

Le ~ /.profil Fichier - Ce fichier est lu en l'absence de ~ /.bash_profile et ~ /.bash_login; Il peut stocker les mêmes configurations, qui peuvent également être accessibles par d'autres shells du système. Parce que nous avons principalement parlé de Bash ici, notez que d'autres coquilles pourraient ne pas comprendre la syntaxe bash.

Ensuite, nous expliquerons également deux autres fichiers importants spécifiques à l'utilisateur qui ne sont pas nécessairement des fichiers d'initialisation:

Le ~ /.bash_history Fichier - Bash maintient un historique des commandes qui ont été entrées par un utilisateur sur le système. Cette liste de commandes est conservée dans le répertoire domestique d'un utilisateur dans le ~ /.bash_history déposer.

Pour afficher cette liste, tapez:

$ HISTORY OU $ HISTORY | moins 
Afficher les commandes exécutées dernière

Le ~ /.bash_logout Fichier - Il n'est pas utilisé pour le démarrage de Shell, mais stocke les instructions spécifiques à l'utilisateur pour la procédure de déconnexion. Il est lu et exécuté lorsqu'un utilisateur sort d'un shell de connexion interactif.

Un exemple pratique le ferait en effacer la fenêtre du terminal lors de la déconnexion. Ceci est important pour les connexions à distance, qui laisseront une fenêtre propre après les clôturer:

# chat bash_logout 
Effacer l'historique après la déconnexion

Pour des informations supplémentaires, consultez le contenu de ces fichiers d'initialisation de shell sur diverses distros Linux et lisez également la page Bash Man:

C'est tout pour le moment! Dans cet article, nous avons expliqué les fichiers de démarrage / initialisation shell dans Linux. Utilisez le formulaire de commentaire ci-dessous pour nous noter.