Habilitar Bash-Completion para expandir os executáveis do Superusuário para o caminho completo

3

Estou executando o OpenSUSE 12.3 (e já vi o comportamento desde 11) e descobri que não posso chamar programas de Superusuário (por exemplo, desligamento, reinicialização) sem usar o caminho completo. Para mim, muitos desses executáveis vivem em /sbin , então, em vez de usar sudo reboot , preciso chamar sudo /sbin/reboot . Felizmente, ao usar sudo o shell do OpenSUSE ( bash ) expandirá esses caminhos quando eu pressionar a tecla Tab , então sudo rebo[Tab] resultará em sudo /sbin/reboot .

O OpenSUSE fornece um pacote com o nome de bash-completion que expande a funcionalidade de preenchimento automático de bash para incluir todos os tipos de outros contextos (por exemplo, gsettings ). Infelizmente, por padrão, este pacote não expande os executáveis do Superusuário para seus caminhos completos, mas apenas expande o nome do executável, portanto, sudo rebo[Tab] resultará em sudo reboot , o que levará a um erro sudo: reboot: command not found .

Como eu instalo / executo o bash-completion e garanto que o preenchimento automático dos executáveis do Superusuário se expande para o caminho completo?

    
por palswim 28.08.2013 / 01:19

2 respostas

0

Expandindo o comentário da @Gilles para uma resposta:

Esta pergunta foi feita sobre bash-completion expandindo /sbin executáveis para seus caminhos completos em Tab, mas eu atendi meus requisitos adicionando os diretórios Superusuário (por exemplo, /sbin , /usr/sbin , etc.) para o caminho de pesquisa sudo .

Para fazer isso, precisei adicionar a variável secure_path ao arquivo Sudoers (editar com visudo ), algo como a seguinte linha:

Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Se alguém fornecer uma solução para realmente expandir o caminho desses executáveis, consideraria a verdadeira resposta à pergunta, mas, novamente, essa solução satisfaz meus requisitos.

    
por 08.09.2014 / 21:30
1

Por que não apenas adicionar / sbin ao PATH var ?: export PATH=$PATH:/sbin

    
por 28.08.2013 / 09:25