GNU/Linux >> Tutoriels Linux >  >> Linux

Comment personnaliser les environnements utilisateur Linux

La sécurité du système est une préoccupation majeure. En tant qu'administrateur système, comme je l'ai déjà dit, c'est votre principale préoccupation. L'ajout d'utilisateurs à un système diminue la sécurité. Votre travail consiste à créer un environnement utilisable mais sécurisé pour vos utilisateurs. Vous avez des actifs d'entreprise à protéger, des systèmes à maintenir et des utilisateurs à satisfaire. Il y a souvent un conflit entre ces trois aspects de l'administration du système, comme vous le savez bien. Une façon de satisfaire les trois est de personnaliser les environnements de vos utilisateurs en mettant en œuvre et en appliquant une norme d'entreprise. Trouver un équilibre entre la productivité des utilisateurs et la sécurité du système n'est pas facile. Je ne peux pas rédiger de spécifications pour votre situation particulière, mais je peux vous montrer où apporter les modifications nécessaires pour que vous puissiez le faire.

Cet article couvre la personnalisation des environnements de votre utilisateur à l'aide de fichiers trouvés dans le /etc/skel et /etc/profile.d répertoires. Avec une nouvelle installation du système, vous trouverez trois fichiers sous /etc/skel : .bash_logout , .bash_profile , et .bashrc . Lorsque vous créez un nouveau compte utilisateur sur un système, ces trois fichiers sont copiés dans le répertoire personnel de l'utilisateur et appartiennent à l'utilisateur. Au cas où vous ne le sauriez pas, le soi-disant point les fichiers (ceux dont le nom est précédé d'un point (.) sont masqués dans les listes de fichiers standard. Pour les voir, vous devez utiliser le -a basculez avec la commande ls.

-rw-r--r--.  1 root root   18 Mar 31 21:17 .bash_logout
-rw-r--r--.  1 root root  193 Mar 31 21:17 .bash_profile
-rw-r--r--.  1 root root  231 Mar 31 21:17 .bashrc

Comme vous pouvez le voir, ces fichiers appartiennent à root et ne peuvent être modifiés ou modifiés que par l'utilisateur root.

.bash_profile

Le .bash_profile file est le plus important des trois fichiers répertoriés. C'est le plus important car c'est le seul fichier "requis" dans la liste. Il s'exécute à chaque fois que l'utilisateur se connecte à un système, il lance le .bashrc fichier, et définit et exporte la variable PATH. Ses paramètres par défaut sont simples.

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

Le .bash_profile peut également être utilisé pour définir une invite de shell personnalisée, définir l'éditeur de son choix ou tout autre élément que vous souhaitez placer dans le fichier pour l'utilisateur.

[ Vous pourriez également aimer : Trucs et astuces pour les variables d'environnement Linux ]

.bashrc

Le contenu du fichier .bashrc, par défaut, n'appelle que le /etc/bashrc dossier. Le /etc/bashrc Le fichier contient des paramètres qui peuvent être configurés pour tous les utilisateurs.

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

Vous pouvez également appeler d'autres fichiers configurés pour certains groupes d'utilisateurs. Par exemple, si un utilisateur est membre du groupe des finances, vous pouvez appeler un fichier pour configurer un ensemble particulier de variables pour tous les utilisateurs du groupe des finances.

/etc/bashrc et /etc/profile

La liste pour /etc/bashrc est beaucoup trop long pour ce lieu, mais vous pouvez le regarder et voir ce qu'il fait. Le /etc/bashrc le fichier fait référence au /etc/profile fichier pour plus de variables d'environnement et de paramètres. Les deux fichiers sont accompagnés de l'avertissement suivant.

# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

Donc, vous voyez, personnaliser un environnement utilisateur n'est pas aussi simple que vous le pensiez.

/etc/profile.d

Si vous listez les fichiers dans /etc/profile.d , vous verrez ce qui suit :

-rw-r--r--.  1 root root  771 Mar 31 21:50 256term.csh
-rw-r--r--.  1 root root  841 Mar 31 21:50 256term.sh
-rw-r--r--.  1 root root  196 Mar 24  2017 colorgrep.csh
-rw-r--r--.  1 root root  201 Mar 24  2017 colorgrep.sh
-rw-r--r--.  1 root root 1741 Aug  6  2019 colorls.csh
-rw-r--r--.  1 root root 1606 Aug  6  2019 colorls.sh
-rw-r--r--.  1 root root   80 Mar 31 23:29 csh.local
-rw-r--r--.  1 root root 1706 Mar 31 21:50 lang.csh
-rw-r--r--.  1 root root 2703 Mar 31 21:50 lang.sh
-rw-r--r--.  1 root root  123 Jul 30  2015 less.csh
-rw-r--r--.  1 root root  121 Jul 30  2015 less.sh
-rw-r--r--.  1 root root   81 Mar 31 23:29 sh.local
-rw-r--r--.  1 root root  164 Jan 27  2014 which2.csh
-rw-r--r--.  1 root root  169 Jan 27  2014 which2.sh

Vous pouvez voir que de nombreux fichiers sont destinés à être utilisés dans le shell C. Le fichier le plus important pour le focus de cet article est sh.local . Le contenu de sh.local est répertorié ci-dessous.

#Add any required envvar overrides to this file, it is sourced from /etc/profile

Comme vous pouvez le voir dans le message, si vous souhaitez remplacer toutes les entrées envvar (variables d'environnement) actuellement configurées par une norme d'entreprise, créez des entrées dans ce fichier pour le faire.

Mises en garde

Au fur et à mesure que les utilisateurs en apprendront davantage sur leur environnement et sur Google, ils personnaliseront le leur, souvent à leur détriment. Vous devez trouver un équilibre entre être un administrateur système de laisser-faire et un administrateur système dictateur autoritaire. Vous voulez que les utilisateurs soient productifs mais aient un contrôle limité sur leur propre environnement. Ma suggestion pour rendre les deux parties heureuses est de définir tous les paramètres d'environnement utilisateur standard de l'entreprise dans /etc/bashrc et dans /etc/profile.d/sh.local que vous ne voulez pas être modifié ou modifié.

Sachez que le /home/user/.bash_profile , .bashrc , et .bash_logout sont des fichiers modifiables par l'utilisateur. La seule solution consiste à modifier les autorisations sur ces fichiers avec un script utilisateur racine après avoir créé les comptes. En d'autres termes, exécutez un script après avoir créé un compte utilisateur pour modifier les autorisations sur /home/user/.bash* fichiers à root: rw-r--r-- . L'utilisateur ne pourra pas modifier les fichiers.

Si vous souhaitez verrouiller l'environnement en modifiant le .bash* fichiers à la propriété racine, vous pouvez créer un nouveau fichier dans /etc/skel comme un .user fichier que l'utilisateur peut modifier et l'inclure dans le .bash_profile fichier.

[ Vous voulez en savoir plus sur la sécurité ? Consultez la liste de vérification de la sécurité informatique et de la conformité. ] 

Récapitulez

La personnalisation de l'environnement d'un utilisateur peut améliorer la sécurité du système et standardiser ce que les utilisateurs voient et comment ils interagissent avec un système. L'octroi d'un accès shell à un système de production a ses propres implications, mais vous devez fournir des ressources à vos utilisateurs pour maximiser leur productivité et maximiser la sécurité du système. Si vous trouvez cet équilibre parfait, veuillez l'écrire dans un article pour Enable Sysadmin. D'après ma propre expérience, chaque utilisateur a le sentiment d'être l'exception à la norme d'entreprise et, très bientôt, vous aurez un tas d'exceptions et aucune norme d'entreprise du tout.


Linux
  1. Comment changer un nom d'utilisateur sous Linux

  2. Comment lister ou trier tous les fichiers par taille sous Linux

  3. Comment configurer les privilèges Sudo pour l'utilisateur sous Linux

  4. Comment ajouter un utilisateur à un groupe sous Linux

  5. Comment désactiver la connexion à distance pour l'utilisateur root sur une machine Linux

Mot de passe Linux oublié sur WSL ? Voici comment le réinitialiser facilement

Comment changer d'utilisateur sous Linux

Comment limiter l'utilisateur root dans CentOS

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?

Comment ajouter un utilisateur à un groupe sous Linux

Comment ajouter un utilisateur à un groupe Linux