[geloest] Autovervollständiung in Bash als root einstellen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
synapsenstau
Beiträge: 172
Registriert: 08.10.2013 09:56:34
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Südharz

[geloest] Autovervollständiung in Bash als root einstellen

Beitrag von synapsenstau » 19.12.2013 10:53:41

Moinsen,

als langjähriger Kubuntu User war ich das arbeiten mit Sudo gewohnt und habe die Autovervollständigung via [Tab] liebgewonnen. Da ich mich gerade versuche an Su zu gewöhnen habe ich da leider festgestellt, das unter Su die Autovervollstänigung nicht so funktionier wie mit Kubuntu/Sudo, d.h. wenn ich apt-g[Tab] eingeben, wird ein apt-get daraus. Wenn ich nun apt-get ins[Tab] versuche, passiert nichts. Genauso fand ich es z.B. Praktisch, das man mit apt-get install kde[Tab] alle möglichen Installationkandidaten angezeigt wurden.
Wo muss man was eintragen damit ich das gewünschte Verhalten kriege oder spricht irgendwas dagegen?
Zuletzt geändert von synapsenstau am 19.12.2013 12:14:55, insgesamt 1-mal geändert.
..::: Intel® Core™ i5-6600 :::..::: 16 GB Ram :::..
..::: 1 TB Nvme :::..::: 1 TB SSD :::..::: NVIDIA GeForce GTX 1070 :::.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: Autovervollständiung in Bash als root einstellen

Beitrag von 4A4B » 19.12.2013 11:43:25

Als normaler User funktioniert die Completion?

Normalerweise sollte dir auch nach einem su die Bash-Completion zur Verfügung stehen.

Um sicherzugehen, dass root die bash als Shell hat - was wird ausgegeben, wenn du nach einem su folgendes eintippsts:

Code: Alles auswählen

echo $SHELL

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Autovervollständiung in Bash als root einstellen

Beitrag von cronoik » 19.12.2013 11:51:00

Hilf mit unser Wiki zu verbessern!

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Autovervollständiung in Bash als root einstellen

Beitrag von smutbert » 19.12.2013 11:53:08

Die etwas gefinkelteren Vervollständigungsfeatures sind für root (aus Sicherheitsgründen?) deaktiviert. Vergleiche einfach einmal die ~/.bashrc eines normalen Nutzers mit der von root. Das was du willst, erreicht wohl dieser Absatz in der ~/.bashrc

Code: Alles auswählen

# 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 [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Benutzeravatar
synapsenstau
Beiträge: 172
Registriert: 08.10.2013 09:56:34
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Südharz

Re: Autovervollständiung in Bash als root einstellen

Beitrag von synapsenstau » 19.12.2013 12:14:15

4A4B hat geschrieben:Als normaler User funktioniert die Completion?
Normalerweise sollte dir auch nach einem su die Bash-Completion zur Verfügung stehen.
Um sicherzugehen, dass root die bash als Shell hat - was wird ausgegeben, wenn du nach einem su folgendes eintippsts:

Code: Alles auswählen

echo $SHELL
Hat sie.

Code: Alles auswählen

root@xx:/home/xx# echo $SHELL
/bin/bash
Danke für den Link. Find dort auch die Tastenkominationen sehr intressant.
smutbert hat geschrieben:Die etwas gefinkelteren Vervollständigungsfeatures sind für root (aus Sicherheitsgründen?)deakiviert
Habe mir auch schon gedacht, das es dabei bestimmt um Sicherheit geht. Der Einbrecher soll ja ruhig selber herausfinden was alles auf dem System, :mrgreen:

Habe in der zwischenzeit mal meinen Benutzer der Gruppe Sudo hinzugefügt und somit habe ich das alte Verhalten von Kubuntu wieder hergestellt und kann jetzt auch Sudo benutzen oder nen neuen vollwertigen root account.

Danke euch
..::: Intel® Core™ i5-6600 :::..::: 16 GB Ram :::..
..::: 1 TB Nvme :::..::: 1 TB SSD :::..::: NVIDIA GeForce GTX 1070 :::.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: [geloest] Autovervollständiung in Bash als root einstell

Beitrag von 4A4B » 19.12.2013 17:43:20

Code: Alles auswählen

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi
Ich rätsel grad, warum ich als root die Completion habe, obwohl sich bei mir ein solcher Eintrag weder in /root/.bashrc noch in /etc/bash.bashrc findet (in letzterem nur auskommentiert).

Ist das Script /etc/profile.d/bash_completion.sh dafür vielleicht verantworlich (?):

Code: Alles auswählen

# Check for interactive bash and that we haven't already been sourced.
[ -z "$BASH_VERSION" -o -z "$PS1" -o -n "$BASH_COMPLETION_COMPAT_DIR" ] && return

# Check for recent enough version of bash.
bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
if [ $bmajor -gt 4 ] || [ $bmajor -eq 4 -a $bminor -ge 1 ]; then
    [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] && \
        . "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion"
    if shopt -q progcomp && [ -r /usr/share/bash-completion/bash_completion ]; then
        # Source completion code.
        . /usr/share/bash-completion/bash_completion
    fi
fi
unset bash bmajor bminor

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [geloest] Autovervollständiung in Bash als root einstell

Beitrag von smutbert » 19.12.2013 22:41:14

Nein, dieses Skript habe ich auch (Debianbash-completion) und trotzdem habe ich als root viel weniger Completion als als normaler Benutzer, wenn ich das einmal so laienhaft ausdrücken darf. /etc/profile und die Dateien in /etc/profile.d sollten aber tatsächlich für die normalen Nutzer und root gleichermaßen gelten.

(Dass es hier wirklich nur um die Vervollständigung von so Dingen wie Paketnamen bei apt-get und ähnlich ausgefeilte Completions geht und nicht einfach die Vervollständigung von Dateinamen, die so gut wie immer und überall funktioniert, ist aber klar, oder?)

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: [geloest] Autovervollständiung in Bash als root einstell

Beitrag von 4A4B » 19.12.2013 22:55:48

smutbert hat geschrieben:(Dass es hier wirklich nur um die Vervollständigung von so Dingen wie Paketnamen bei apt-get und ähnlich ausgefeilte Completions geht und nicht einfach die Vervollständigung von Dateinamen, die so gut wie immer und überall funktioniert, ist aber klar, oder?)
Ich hatte das Beispiel von synapsenstau probiert:
synapsenstau hat geschrieben:Wenn ich nun apt-get ins[Tab] versuche, passiert nichts.
Das funktioniert bei mir als root problemlos: die Shell ergänzt zu einem "apt-get install"

Auch Paketnamen werden nach dem "apt-get install" ergänzt.

Benutzeravatar
4A4B
Beiträge: 962
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: [geloest] Autovervollständiung in Bash als root einstell

Beitrag von 4A4B » 19.12.2013 23:02:41

Sorry, doofer Fehler von mir :?

Ich hatte das "apt-get ins[Tab]" in einer Umgebung getestet, wo statt des "su" ein "su -l" ausgeführt wird - sorry für die Verwirrung, die ich hier gestiftet habe :oops:

Antworten