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.