o comando sudo não é mais preenchido automaticamente nos arquivos

2

Ubuntu 16.04.1 LTS

Eu não sei o que eu fiz, tudo estava funcionando bem, mas desde hoje o meu bash não preenche mais quando eu uso o sudo. Eu posso usar o autocompletar como usuário normal, eu posso usar autocompletar como root, eu posso usar autocompletar para diretórios com sudo, mas eu não posso usar autocompletar arquivos se eu usar sudo.

Se eu escrever:

$sudo vim /etc/ssm[TAB]

será preenchido automaticamente para:

$sudo vim /etc/ssmtp/

mas, se eu pressionar [TAB] novamente, até mesmo duas vezes, como eu costumava listar os arquivos no diretório, nada acontece. Eu já verifiquei e tenho o autocompletion habilitado no usuário .bashrc e também em /etc/bash.bashrc

    
por effemmeffe 20.01.2017 / 15:23

2 respostas

2

Tente em primeiro lugar reinstalar o pacote de conclusão do bash com:

  

sudo apt-get install --reinstale bash-completion

Em seguida, faça backup do arquivo .bashrc :

  

mv ~ / .bashrc ~ / .bashrc.bak

Por fim, substitua o arquivo .bashrc pelo padrão de /etc/skel/.bashrc usando:

  

cp /etc/skel/.bashrc ~ /

Isso garantirá que a seguinte configuração 'completa' seja restaurada no arquivo:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Verifique também se a pasta que contém e as permissões de arquivo de /etc/bash.bashrc e ~/.bashrc - ownership devem ser root: root e yourusername: yourusergroup, respectivamente. As permissões dos arquivos são importantes, pois o shell usa apenas seu próprio nível de privilégio para completar automaticamente os comandos. Permissões elevadas, como quando o sudo é chamado, são usadas apenas após o comando ser confirmado, pressionando enter.

    
por Sapient Saxon Saboo 20.01.2017 / 15:59
1

Descobri que o problema não era o autocomplete, mas apenas uma questão de permissões. A pasta é própria por root: mail em vez de root: root como a maioria dos diretórios em / etc e meu usuário não estava no grupo de email. Depois que adicionei o usuário ao grupo certo, funcionou. Eu só não entendo porque o comando com o sudo na frente dele não substituiu o grupo ...

    
por effemmeffe 23.01.2017 / 20:10