Como posso definir um único arquivo .bashrc para vários usuários?

24

durante o meu trabalho eu preciso adicionar constantemente comandos de alias para bashrc, a maioria desses comandos precisa ser executada por outros usuários. Existe alguma maneira eu poderia adicionar comandos de alias para um bashrc de fonte externa?

    
por user309584 27.07.2014 / 08:31

4 respostas

31

Muitos arquivos de configuração no diretório inicial dos usuários simplesmente sobrescrevem / adicionam aos no /etc - por exemplo, as configurações do GIMP na página inicial dos usuários estão em ~/.gimp-2.* , o que é adicionado à configuração /etc/gimp/2.0 do sistema.

Portanto, para ~/.bashrc , você pode editar os arquivos de configuração do sistema /etc/bash.bashrc (para funções / aliases ) ou /etc/profile (para material do ambiente) - você pode a lista completa 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

Este aviso é dado para alguns sistemas Linux nos arquivos:

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

Para editar esses arquivos, você pode querer fazer o backup deles primeiro ( cp /etc/bash.bashrc /etc/bash.bashrc-backup , por exemplo) ou cria um script de shell em /etc/profile.d - por exemplo, você pode criar um com estes comandos (com sudo / as root):

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

Em seguida, abra-o com nano /etc/profile.d/custom.sh

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

E verifique se ele funciona, vendo se ele aparece na saída de alias - Observe que você pode precisar fazer logout / login ou reinicializar para ver as alterações (se não quiser, executando source /etc/profile após qualquer alteração pode funcionar)

    
por Wilf 27.07.2014 / 09:01
6

Ir para /etc/bash.bashrc

  

vim /etc/bash.bashrc

e faça seu alias lá.

adicione seu alias na última linha.

  

alias abc="whatever"

Esse alias se tornará global para todos os usuários.

mas por razões de segurança, não o recomendamos.

existe o diretório profile.d que contém arquivos do ambiente do usuário

vá para

  

cd /etc/profile.d /

     

aliases vim

e adicione seus aliases aqui.

sem afetar seus arquivos de sistema. É uma maneira segura e correta de trabalhar com seus arquivos de ambiente.

    
por Dishank Jindal 27.07.2014 / 09:01
3

Já existe uma resposta aceita aqui, mas você pode considerar o uso de alguma forma de módulos de ambiente para lidar com a configuração de ambientes de usuário em todo o sistema, em vez de mexer nos arquivos em /etc/profile.d etc. você quer gerenciar esse controle em um só lugar em vários shells. Lmod (sob desenvolvimento muito ativo), C / Módulos TCL (a solução clássica), ou Cmod (leve).

    
por Bill Barth 27.07.2014 / 16:14
-1

Sou muito novo no sistema operacional Linux, mas fiz um esboço de um script bash que funciona para modificar todos os arquivos .bashrc dos usuários e não o arquivo /etc/.bashrc do arquivo de sistema.

#!/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

Ok, então eu sei que esse script funciona, mas não sei se é livre de falhas :) Também vc pode modificá-lo para não envolver todos os usuários, talvez vc faça um arquivo para todos os usuários que precisam do seu arquivo .bashrc customizado.

    
por Farhad Rahimi 04.12.2017 / 00:07

Tags