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á.
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?
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á.
Adicione isto ao /etc/bash.bashrc:
if id -G | egrep "(^| )$(getent group wheel | cut -d: -f3)( |\$)" > /dev/null; then
# set your aliases here
fi
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:
# 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" Tags bash linux shell-script