Honrar aliases ao usar o sudo?

1

Eu tenho dois aliases configurados no meu .bash_profile . Eu quero que sudo honre os dois:

$ cat ~/.bash_profile
export EDITOR=emacs
...
alias yum="dnf"
alias ssh="ssh -2"
...

Eu sei como dizer sudo para honrar meu ambiente ( -E ), mas não consigo encontrar a opção para aliases. A pesquisa na página do manual para alias resulta em Pattern not found .

Como posso dizer a sudo para homenagear meus aliases?

Obrigado antecipadamente.

Estou tentando evitar essas mensagens irritantes devido ao fato de o Fedora mudar os comandos:

$ sudo yum update
[sudo] password for: 
Yum command has been deprecated, redirecting to '/usr/bin/dnf update'.
See 'man dnf' and 'man yum2dnf' for more information.
...
    
por jww 03.10.2015 / 15:22

2 respostas

1

O sudo não pode realmente "honrar" os aliases, pois é um recurso específico do shell - a única maneira que o sudo poderia saber sobre eles se fosse ensinado como ler ~/.bashrc , ~/.zshrc , ~/.cshrc . .. por si só.

Para aliases comuns, você pode enganar o próprio shell para expandi-los quando seguido por sudo :

alias sudo="sudo "

(É uma espécie de documentado em algum lugar.)

Mas para funções, não há nada semelhante; você terá que usar o modo sudo -sE interativo.

    
por 03.10.2015 / 15:47
1

Outra possível solução para o seu problema é colocar seus aliases, como sempre, no seu arquivo /home/YourName/.bash_aliases , e depois vincular esse arquivo no diretório pessoal do root:

      sudo ln -s /home/YourName/.bash_aliases /root/.bash_aliases

Isso deve funcionar automaticamente porque a maioria das distros tem essas linhas no arquivo .bashrc que você recebe por padrão,

      if [ -f ~/.bash_aliases ]; then
          . ~/.bash_aliases
      fi

Se você não tiver, é fácil adicioná-los.

    
por 03.10.2015 / 16:32

Tags