Tab-Completion geht teilweise mit "sudo" nicht

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
lordnoxx
Beiträge: 105
Registriert: 25.05.2009 22:14:01

Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von lordnoxx » 18.10.2011 22:50:20

Hallo und guten Abend.
Habe eine aktuelle Wheezy hier mit KDE.

Mir ist aufgefallen, dass bei manchen Befehlen, mit vorangestelltem "sudo", bei der Übergabe der Argumente keine Tab-Completion mehr geht.

Beispiel:

Code: Alles auswählen

~/vpn$ ls
myClient.conf 

:~/vpn$sudo openvpn myC*TAB*    //geht nicht

Code: Alles auswählen

~/vpn$ ls
myClient.conf 

:~/vpn$openvpn myC*TAB*    //geht
Gleiches zum Beispiel auch bei "sudo hdparm" und der Übergabe eines Laufwerks als Parameter (/dev/sd*TAB* geht nicht). Ohne sudo gehts dann wieder.

Wasn da los? Kann mich leider nicht mehr erinnern, ob das mal ging, und ab wann es dann nicht mehr ging.

lordnoxx
Beiträge: 105
Registriert: 25.05.2009 22:14:01

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von lordnoxx » 19.10.2011 12:34:37

Komisch ist aber, dass es mit Folgendem geht:

Code: Alles auswählen

sudo dd if=/dev/s*TAB*TAB*
scd0      sda       sda2      sda4      sda6      sdb1      sdc1      sg1       sg3       shm/      snd/      sr0       stderr    stdout    
scd1      sda1      sda3      sda5      sdb       sdc       sg0       sg2       sg4       snapshot  sndstat   sr1       stdin 
Also irgendwie ist da der Wurm drin. Bei manchen Kommandos funktioniert es mit sudo und bei anderen nicht. Festhalten sollte man aber, dass dieses Nicht-vervollständigen nur bei Pfaden und Dateien in Erscheinung tritt. Kennt sonst noch jemand dieses Verhalten?

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von Cae » 20.10.2011 00:22:50

Irgendwo in der ~/.bashrc wird die Tab-Vervollständigung initialisiert. Vergleiche mal diese Dateien und die Shells beider Benutzer, also von root und dem, der sudo verwendet.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

deserteur

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von deserteur » 20.10.2011 13:27:33

Hi,

in der ~/.bashrc des jeweiligen Benutzer einfach die drei Auskommentierungen(#) unter completation entfernen.

lordnoxx
Beiträge: 105
Registriert: 25.05.2009 22:14:01

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von lordnoxx » 21.10.2011 15:50:28

deserteur hat geschrieben:Hi,

in der ~/.bashrc des jeweiligen Benutzer einfach die drei Auskommentierungen(#) unter completation entfernen.
Hallo und danke für die Antworten.

Der user root besitzt quasi keine bashrc. Sie ist zwar unter /root vorhanden, aber darin sind die paar Zeile die da sind alle auskommentiert.
Des Weiteren, ist in der ~/.bashrc des Users der sudo nutzt die Completion Sektion auch auskommentiert, weil ich die Bash-Completion über die /etc/bash.bashrc für alle User aktiviert habe.

deserteur

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von deserteur » 21.10.2011 16:11:45

Hi lordnoxx,

heißt das es funktioniert nun alles oder es funktioniert noch nicht?
Wenn alles funktioniert brauchst du nicht weiter lesen und markierst es einfach noch als gelöst.
Ansonsten bin mir nicht sicher ob du meinst was du schreibst :D .
Du hast geschrieben das fast alles auskommentiert ist. Vielleicht hast du mich falsch verstanden, damit es funktioniert hab ich geschrieben du sollst die Auskommentierungen entfernen.

lordnoxx
Beiträge: 105
Registriert: 25.05.2009 22:14:01

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von lordnoxx » 21.10.2011 17:48:20

du sollst die Auskommentierungen entfernen.
:D Ja ich weiß. Und sie sind auch entfernt. Allerdings in der /etc/bash.bashrc.

Und dennoch....es geht nicht so wie ich will. Im Grunde ist es so, dass die Bash-Completion funktioniert. Das tut sie zuverlässig für mich als normalen User, das tut sie für root, aber, und darum geht es hier, sie tut es nicht zuverlässig für einen Normalen User, welcher "sudo" nutzt.

"nicht zuverlässig" bedeutet, dass es Kommandos gibt, wo "sudo <command>*Tab* <args>*Tab*" problemlos funktioniert. Es gibt jedoch auch Kommandos, welche in Verbindung mit sudo nicht funktionieren. Da haut man dann bei den Argumenten wie ein Blöder auf der Tab-Taste rum, und es passiert nichts: <args>*Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab*--->nix :?

Siehe dazu bitte die Beispiele aus meinen vorherigen Posts.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von Cae » 21.10.2011 18:33:03

lordnoxx hat geschrieben:"nicht zuverlässig" bedeutet, dass es Kommandos gibt, wo "sudo <command>*Tab* <args>*Tab*" problemlos funktioniert. Es gibt jedoch auch Kommandos, welche in Verbindung mit sudo nicht funktionieren. Da haut man dann bei den Argumenten wie ein Blöder auf der Tab-Taste rum, und es passiert nichts: <args>*Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab**Tab*--->nix :?
Nehmen wir einmal an, wir wollten

Code: Alles auswählen

$ ls -l /root
als root ausführen. Wenn ich die Autovervollständigung richtig verstanden habe, ist sie vom ersten Wort abhängig. Nun ist sudo im Gegensatz zu ls eher weniger dazu gedacht, auf Dateipfaden zu arbeiten. Deswegen könnte es sein, dass

Code: Alles auswählen

$ sudo ls -l /ro*TAB*
eben nicht nach /root vervollständigt.

Demnach ist auch meine obige Argumentation mit .bashrc hinfällig, weil der Zielbenutzer root gar nicht angemeldet wird.
Mit anderen Worten: Du bekommst sudo nicht dazu (dies folgt unmittelbar daraus, natürlich kann es über andere Wege trotzdem funktionieren).

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

lordnoxx
Beiträge: 105
Registriert: 25.05.2009 22:14:01

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von lordnoxx » 21.10.2011 23:28:07

Mit anderen Worten: Du bekommst sudo nicht dazu
Gut, damit könnte ich mich abfinden, wenn es prinzipbedingt nicht geht.
(dies folgt unmittelbar daraus, natürlich kann es über andere Wege trotzdem funktionieren).
Tja, und ich weiß, dass es eben geht. Brauch nur mein EeePC mit frisch installiertem Squeeze als Anschauungsobjekt nehmen. Da kann sudo auch mit Pfaden und Dateien. So geht aufm EeePC...

Code: Alles auswählen

    ~/vpn$ ls
    myClient.conf

    :~/vpn$sudo openvpn myC*TAB*
...Problemlos.

deserteur

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von deserteur » 22.10.2011 14:29:12

Vielleicht ist es ein Problem in Wheezy?

lordnoxx
Beiträge: 105
Registriert: 25.05.2009 22:14:01

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von lordnoxx » 22.10.2011 18:42:52

deserteur hat geschrieben:Vielleicht ist es ein Problem in Wheezy?
Ja mag sein...kann das vielleicht mal jemand verifizieren?

deberik
Beiträge: 1177
Registriert: 30.09.2009 13:27:23

Re: Tab-Completion geht teilweise mit "sudo" nicht

Beitrag von deberik » 23.10.2011 03:56:06

lordnoxx hat geschrieben:
Tja, und ich weiß, dass es eben geht. Brauch nur mein EeePC mit frisch installiertem Squeeze als Anschauungsobjekt nehmen. Da kann sudo auch mit Pfaden und Dateien. So geht aufm EeePC...
/etc/bash_completion von Squeeze und Wheezy vergleichen? Wenn man die Datei in Wheezy nach sudo durchsucht findet man folgenden Kommentar
/etc/bash_completion hat geschrieben:# A meta-command completion function for commands like sudo(8), which need to
# first complete on a command, then complete according to that command's own
# completion definition - currently not quite foolproof (e.g. mount and umount
# don't work properly), but still quite useful.
Debians Paketbeschreibungen übersetzen? Hilf mit!

Antworten