У меня была такая же проблема с root, а не с автозаполнением. Я безуспешно пробовал пару других способов, включая возиться с .bashrc и установить пару пакетов. Что, наконец, сработало для меня, было так же просто, как просто запустить bash. Итак, вы делаете свои списки sudo su и tab только в /root)
root@xxxxxxxx:~# service<tab>
root@xxxxxxxx:~# service .<tab><tab>
./ .aptitude/ .bashrc .viminfo
../ .bash_history .profile
echo $SHELL отвечает /bin/bash, поэтому я запускаю bash, но он не работает. Теперь я запускаю bash, и моя оболочка выглядит одинаково.
root@xxxxxxxx:~# bash
root@xxxxxxxx:~# service <tab><tab>
acpid plymouth-upstart-bridge
apache2 portmap
apparmor portmap-wait
Теперь он работает. Просто имейте в виду, что вам придется удвоить выход, чтобы выйти из bash, который вы только что запустили, а затем выйти из сессии sudo su, чтобы вы не оставили открытый корневой терминал.
root@xxxxxxxx:~# uname -mrs
Linux 3.8.0-33-generic x86_64
root@xxxxxxxx:~# lsb_release -d
Description: Ubuntu 12.04.3 LTS