Obtendo o sudo para trabalhar com um alias

3

Eu instalei o Sublime Text 3 no Fedora 20 que tem GNOME, porque eu não consegui chamar do terminal. Eu criei um arquivo .bash_aliases que uma linha como esta:

alias sublime='sublime_text'

E também adicionamos o local do arquivo sublime_text ao PATH editando o .bashrc file adding:

export PATH=$PATH:/usr/local/share/applications/sublime-text-3/

No entanto, quando eu quiser editar qualquer arquivo para o qual eu possa ter privilégio sudo , primeiro eu quero fazer:

sudo sublime sudoLikelyFile

ou

sudo sublime_text sudoLikelyFile

No entanto, estou recebendo:

sudo: sublime: command not found

Como posso trabalhar para isso?

    
por diegoaguilar 17.01.2014 / 06:07

1 resposta

6

Existem dois problemas potenciais aqui.

Primeiramente, você precisa fazer com que o seu shell expanda aliases após sudo :

alias sudo='sudo '

De man bash :

If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion.

Em segundo lugar, em muitas distribuições, $PATH não é propagado para o novo shell pelo sudo. Você pode alterar manualmente secure_path para adicionar o diretório em que o executável sublime_text está:

Defaults secure_path = [...]:/usr/local/share/applications/sublime-text-3

... ou você pode desativar secure_path completamente (nota: secure_path garante que um invasor não possa alterar seu caminho e usá-lo para influenciar o comando que você executará como root, portanto, considere isso com cuidado):

Defaults !secure_path
    
por 17.01.2014 / 07:18