Aliases para sysadmins apenas no script

1

Existem vários aliases / scripts que gostaria de ter disponíveis apenas para administradores de sistema. Eu sei que posso colocar os scripts em / usr / sbin. Quanto aos aliases, eu poderia adicioná-los depois de criar a conta de usuário manualmente:

#as root
adduser username
passwd username
usermod -aG wheel username
cd /home/username
nano .bashrc
if [ -f /path/to/file ]; then
  . /path/to/file
fi

Mas eu prefiro ter um arquivo com os aliases que serão originados no .bashrc do sysadmin sem que eu precise editar manualmente cada arquivo .bashrc. Sugestões, ou eu simplesmente preciso fazer a rota manual?

    
por Jordan 29.09.2018 / 01:51

3 respostas

2

Se você realmente quer que scripts sejam apenas executáveis por sysadmins, então o mais simples é criar um diretório que só é legível pelo grupo sysadmin, e colocar os segredos relevantes lá.

    
por 29.09.2018 / 03:22
1

Adicione isto ao /etc/bash.bashrc:

if id -G | egrep "(^| )$(getent group wheel | cut -d: -f3)( |\$)" > /dev/null; then
    # set your aliases here
fi
    
por 29.09.2018 / 03:24
1

Sua distribuição pode ter um / etc / profile que procura por arquivos em /etc/profile.d; se assim for, coloque um arquivo lá que configure os aliases para membros do grupo wheel. Em um sistema Debian, o código pertinente é:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

Para o bash, você só precisa nomeá-lo com uma extensão .sh ; por exemplo:

/etc/profile.d/admin-aliases.sh

# set up admin-only aliases if the user is a member of the wheel group
if id -Gnz "$LOGNAME" | grep -qxz wheel
then
  alias youralias=yourcommand
fi

A solução id | grep foi emprestada da solução de Stéphane Chazelas para Pesquisar membros específicos do grupo de usuários com uma correspondência exata . A ideia é ver se o usuário atual é membro do grupo wheel. id -Gnz solicita a lista de grupos ( -G ) por nome ( -n ) em uma lista separada por nulo. Isso é canalizado para grep , cujos flags são:

  • -q - não produza nenhuma correspondência, apenas defina o código de retorno para sucesso ou falha
  • -x - exige que a "linha" inteira corresponda, portanto, não obteremos um falso positivo se o usuário for membro de um grupo chamado flywheel
  • -z - interpreta a entrada como uma lista terminada em nulo de "linhas"
por 29.09.2018 / 03:26