Comment définir un seul fichier .bashrc pour plusieurs utilisateurs?

24

Pendant mon travail, je dois constamment ajouter des commandes d'alias à bashrc, la plupart de ces commandes doivent être exécutées par d'autres utilisateurs. Y a-t-il un moyen d'ajouter des commandes d'alias à un bashrc provenant d'une source externe?

    
posée user309584 27.07.2014 - 08:31
la source

4 réponses

31

De nombreux fichiers de configuration dans le répertoire personnel des utilisateurs remplacent / ajoutent ceux de /etc - par exemple, les paramètres de GIMP dans la page d'accueil des utilisateurs sont dans ~/.gimp-2.* , ce qui ajoute /etc/gimp/2.0 .

Donc, pour ~/.bashrc , vous pouvez éditer les fichiers de configuration système /etc/bash.bashrc (pour fonctions / alias ) ou /etc/profile (pour environnement) - vous pouvez la liste complète de man bash :

FILES
       /bin/bash
              The bash executable
       /etc/profile
              The systemwide initialization file, executed for login shells
       /etc/bash.bash_logout
              The systemwide login shell cleanup file, executed when a login shell exits
       ~/.bash_profile
              The personal initialization file, executed for login shells
       ~/.bashrc
              The individual per-interactive-shell startup file
       ~/.bash_logout
              The individual login shell cleanup file, executed when a login shell exits
       ~/.inputrc
              Individual readline initialization file

Cet avertissement est donné pour quelques systèmes Linux dans les fichiers:

# 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.

Vous pouvez donc éditer ces fichiers, vous pouvez les sauvegarder d’abord ( cp /etc/bash.bashrc /etc/bash.bashrc-backup par exemple), ou créer un script shell dans /etc/profile.d - par exemple, vous pouvez en créer un avec ces commandes (avec sudo / en tant que root):

touch /etc/profile.d/custom.sh
chmod +x /etc/profile.d/custom.sh

Ensuite, ouvrez-le avec nano /etc/profile.d/custom.sh

#!/bin/sh
alias ls='ls -lah'

Et vérifiez si cela fonctionne en vérifiant si elle apparaît dans le résultat de alias - Notez que vous devrez peut-être vous déconnecter / vous connecter ou redémarrer pour voir toutes les modifications (si vous ne le souhaitez pas, exécutez source /etc/profile après tout changement pourrait fonctionner)

    
réponse donnée Wilf 27.07.2014 - 09:01
la source
6

Aller à /etc/bash.bashrc

  

vim /etc/bash.bashrc

et faites votre alias là.

ajoutez votre alias à la dernière ligne.

  

alias abc="peu importe"

Cet alias deviendra global pour tous les utilisateurs.

mais pour des raisons de sécurité, nous ne vous le recommandons pas.

il y a le répertoire profile.d qui contient les fichiers d'environnement utilisateur

aller à

  

cd /etc/profile.d /

     

alias vim

et ajoutez vos alias ici.

sans affecter vos fichiers système. C'est une façon sûre et correcte de travailler avec vos fichiers d'environnement.

    
réponse donnée Dishank Jindal 27.07.2014 - 09:01
la source
3

Il existe déjà une réponse acceptée ici, mais vous pouvez envisager d’utiliser des modules d’environnement pour gérer la configuration des environnements utilisateur au niveau du système plutôt que de manipuler les fichiers dans /etc/profile.d, etc. Ceci est particulièrement vrai si vous voulez gérer ce contrôle en un seul endroit sur de nombreux shells. Lmod (sous un développement très actif), C / Modules TCL (la solution classique) ou Cmod (léger).

    
réponse donnée Bill Barth 27.07.2014 - 16:14
la source
-1

Je suis vraiment nouveau sur le système d'exploitation Linux, mais j'ai fait un croquis d'un script bash qui permet de modifier tout le fichier .bashrc des utilisateurs et non le fichier /etc/.bashrc du fichier système.

#!/bin/bash

X=$( cat etc/passwd | cut -f1 -d: ) #All-users

For X in /home/*/.bashrc ; do 

echo "alias ls='ls -al'" >> $X

2>/dev/null

done

source $X

exit 0

Bon alors je sais que ce script fonctionne, mais je ne le fais pas si c'est sans faute :) De plus, vous pouvez le modifier pour ne pas impliquer tous les utilisateurs, peut-être créer un fichier pour tous les utilisateurs qui ont besoin de leur fichier .bashrc personnalisé.

    
réponse donnée Farhad Rahimi 04.12.2017 - 00:07
la source

Lire d'autres questions sur les étiquettes